RAG2026-5일10차시 · 벡터저장소 이해12 / 19← 이전목차다음 →MetaContents

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) 인덱스와 설정을 함께 기록하기

시간이 지나면 "이 인덱스가 어떤 설정으로 만들어졌더라?"를 잊게 됩니다. 간단한 메모 파일을 함께 남기면 좋습니다.

Python
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 하나만 남겨도
나중에 큰 도움이 됩니다.

← 이전 절10차시 · 8. 실습 ⑤ — 8차시 코드 개선하기다음 절 →10차시 · 10. 정리 — 인덱싱 흐름 한눈에