250114 TIL OpenAI 기반 Query 분석 및 벡터스토어 설계

윤수용·2025년 1월 14일
0

TIL

목록 보기
101/113

1. 한 일

OpenAI 기반 Query 분석 및 벡터스토어 설계

  • Query 분석 로직 점검 및 수정:
    • ChatPromptTemplate에서 사용자 질문이 {user_query}로 제대로 치환되지 않는 문제 확인.
    • 템플릿과 변수 전달 방식 개선.
  • 벡터스토어 및 메타데이터 관리:
    • FAISS 기반 벡터스토어 생성 및 로드 로직 작성.
    • 메타데이터 파일(pickle)의 구조를 디버깅하여 데이터 일관성 확인.
  • 경로 설정 및 확인:
    - 상대 경로에서 발생하는 문제를 방지하기 위해 절대 경로로 변환하여 안정성 확보.
    - 벡터스토어 및 메타데이터 파일의 유효성 검사 코드 작성.




2. TroubleShooting

{user_query} 치환 문제

  • 문제:
    • ChatPromptTemplate에서 사용자 입력이 변수로 치환되지 않고 문자열 그대로 전달.
  • 해결:
    - chain.invoke 호출 시 올바르게 데이터를 전달하도록 수정.

too many values to unpack (expected 2)

  • 문제:
    • 벡터스토어 및 메타데이터 로드 중 예상하지 못한 데이터 구조로 인해 발생.
  • 해결:
    - pickle.loadFAISS.load_local의 반환값을 디버깅하여 데이터 구조 확인.
    - 벡터스토어 파일(index.faiss)과 메타데이터 파일의 경로 및 내용을 재확인.

FAISS 파일 경로 오류

  • 문제:
    • 벡터스토어 경로(VECTOR_STORE_PATH)와 메타데이터 경로(METADATA_PATH)가 상대 경로로 설정되어 로드 실패.
  • 해결:
    - 모든 경로를 절대 경로로 변환.
    - 경로와 파일 유효성을 검사하는 코드 추가.




3. 느낀 점

디버깅과 로깅의 중요성

  • 시스템 설계 과정에서 발생하는 오류는 대부분 입력 데이터 구조와 설정값의 불일치에서 비롯됨. 디버깅을 통해 문제를 빠르게 해결할 수 있었음.
  • 로깅을 적극적으로 활용해 파일 경로, 반환값, 변수 상태를 추적한 결과, 코드의 안정성을 높이는 데 큰 도움이 됨.

데이터 일관성 유지의 필요성

  • 벡터스토어와 메타데이터 관리의 핵심은 데이터 구조의 일관성. 데이터 생성 및 로드 과정을 투명하게 설계하는 것이 중요함.
  • 파일 손실 또는 손상에 대비해 재생성 로직을 포함시키는 것이 장기적으로 유용하다는 것을 깨달음.
profile
잘 먹고 잘 살자

0개의 댓글

관련 채용 정보