1. 한 일
RAG 챗봇 시스템 설계
- FAISS DB를 이용해 문서 임베딩을 저장하고 검색하는 RAG(참조에 기반한 생성) 챗봇 시스템 설계.
- 임베딩 벡터를 서버에 저장하는 방안을 학습:
- FAISS의
write_index
와 read_index
를 통해 인덱스를 디스크에 저장 및 로드.
- 벡터와 메타데이터(문서 ID, 텍스트)를 분리 관리하는 방법 익힘.
2. TroubleShooting
JSON 문자열 처리 문제
- 오류:
Invalid \escape: line 1 column ...
- 원인: JSON 문자열에 역슬래시(
\
)가 적절히 이스케이프 처리되지 않음.
- 해결:
- JSON 문자열 생성 시
json.dumps
를 활용해 안전하게 직렬화.
- 원시 문자열(
rf
)을 사용하더라도 역슬래시가 포함된 경우 .replace("\\", "\\\\")
로 추가 처리.
3. 느낀 점
데이터 직렬화
json.dumps
사용의 필요성: JSON 문자열 생성 시 에러를 방지하기 위해 Python 제공 도구를 사용하는 것이 안정적임.
RAG 설계의 핵심
- 임베딩 품질과 검색 정확도가 시스템 성능에 크게 영향을 미침.
- FAISS와 같은 벡터 검색 도구의 효율적인 활용은 챗봇의 반응 속도와 컨텍스트 정확성에 직접적으로 기여.