15차시. 기본 RAG 앱 만들기
9. 자주 겪는 문제
출처: 원본 PDF 15차시_기본RAG앱만들기.pdf 18쪽 · 쪽 그림 18쪽
| 증상 | 원인과 해결 |
|---|---|
| 질문마다 인덱싱이 다시 돌아 매우 느림 | get_store()가 ask 함수 안에 있습니다. 모듈 최상단으로 빼세요 |
| ImportError: cannot import name config | 실행 위치 문제입니다. 프로젝트 루트에서 실행하거나 Path를 쓰세요 |
| FileNotFoundError: data/ / manual.pdf | config에서 Path(__file__).parent 기반 절대 경로 를 쓰세요 |
| Streamlit이 매번 인덱스를 다시 만듦 | @st.cache_resource 데코레이터로 감싸세요 |
| 에러가 나면 앱이 통째로 종료됨 | try-except로 감싸고 오류 메시지를 반환하세요 |
| 같은 페이지가 출처에 여러 번 표시됨 | set으로 중복을 제거하세요 (app.py 참고) |
9-1) Streamlit 캐싱
import streamlit as st
@st.cache_resource # ★ 이 한 줄
def load_rag():
from rag import ask
return ask
ask = load_rag()Streamlit은 사용자가 입력할 때마다 스크립트를 처음부터 다시 실행합니다.
캐싱을 안 하면 질문할 때마다 인덱스를 다시 불러옵니다.
@st.cache_resource를 붙이면 한 번만 실행되고 재사용됩니다.