RAG2026-5일15차시 · 기본 RAG 앱 만들기12 / 19← 이전목차다음 →MetaContents

15차시. 기본 RAG 앱 만들기

9. 자주 겪는 문제

출처: 원본 PDF 15차시_기본RAG앱만들기.pdf 18쪽 · 쪽 그림 18쪽

증상원인과 해결
질문마다 인덱싱이 다시 돌아 매우 느림get_store()가 ask 함수 안에 있습니다. 모듈 최상단으로 빼세요
ImportError: cannot import name config실행 위치 문제입니다. 프로젝트 루트에서 실행하거나 Path를 쓰세요
FileNotFoundError: data/ / manual.pdfconfig에서 Path(__file__).parent 기반 절대 경로 를 쓰세요
Streamlit이 매번 인덱스를 다시 만듦@st.cache_resource 데코레이터로 감싸세요
에러가 나면 앱이 통째로 종료됨try-except로 감싸고 오류 메시지를 반환하세요
같은 페이지가 출처에 여러 번 표시됨set으로 중복을 제거하세요 (app.py 참고)

9-1) Streamlit 캐싱

Python
import streamlit as st

@st.cache_resource          # ★ 이 한 줄
def load_rag():
    from rag import ask
    return ask

ask = load_rag()

Streamlit은 사용자가 입력할 때마다 스크립트를 처음부터 다시 실행합니다.
캐싱을 안 하면 질문할 때마다 인덱스를 다시 불러옵니다.
@st.cache_resource를 붙이면 한 번만 실행되고 재사용됩니다.

← 이전 절15차시 · 8. 실습 ⑤ — Streamlit 웹 화면 (선택)다음 절 →15차시 · 10. 모듈 분리가 3부로 이어지는 방식