10차시. 벡터저장소 이해
9. 자주 겪는 문제
출처: 원본 PDF 10차시_벡터저장소이해.pdf 19~20쪽 · 쪽 그림 19쪽 20쪽
| 증상 | 원인과 해결 |
|---|---|
| load_local에서 ValueError 발생 | allow_dangerous_deserialization=True 를 빠뜨렸습니다 |
| 불러왔는데 검색 결과가 이상함 | 인덱싱 때와 다른 임베딩 모델을 썼습니다. 모델명을 확인하세요 |
| 문서를 추가했는데 다음 실행에 없음 | add_documents 후 save_local을 안 했습니다 |
| 점수가 낮게 나와 관련 없다고 판단 | with_score는 '거리'입니다. relevance_scores를 쓰세요 |
| chunk_size를 바꿨는데 결과가 그대로 | 기존 인덱스를 불러왔기 때문입니다. rebuild=True로 재생성하세요 |
| 인덱스 폴더가 지워졌다 | 재생성하면 됩니다. 원본 문서만 있으면 언제든 복구 가능합니다 |
9-1) 인덱스와 설정을 함께 기록하기
시간이 지나면 "이 인덱스가 어떤 설정으로 만들어졌더라?"를 잊게 됩니다. 간단한 메모 파일을 함께 남기면 좋습니다.
import json, datetime
def save_with_meta(store, path, info):
store.save_local(path)
info["created_at"] = datetime.datetime.now().isoformat()
with open(f"{path}/build_info.json", "w", encoding="utf-8") as f:
json.dump(info, f, ensure_ascii=False, indent=2)
save_with_meta(store, "faiss_index", {
"source": DOC_PATH,
"embed_model": EMBED_MODEL,
"chunk_size": 500,
"chunk_overlap": 50,
"chunk_count": len(chunks),
})💡 이게 왜 중요한가
14차시에서 여러 설정으로 실험을 하게 됩니다.
인덱스가 여러 개 생기는데, 기록이 없으면
어느 게 어떤 설정인지 알 수 없습니다.
build_info.json 하나만 남겨도
나중에 큰 도움이 됩니다.