DOCS/journey/research/rag/260322_검색미적중_PDF바이너리청크품질_대화맥락_리서치.md
2026-03-22 09:52:18 +09:00

2.7 KiB

type, tags, status, closed_date, closed_reason, research_target
type tags status closed_date closed_reason research_target
research
research
rag
companyx
search-quality
pdf
context
closed 2026-03-22 원인 3건 확정 + 조치 완료. A1 chunk_text 교정, A3 추가 인덱싱, 파일명 보조 검색. 17/17 전수 통과. B 유형(대화 맥락)은 후속 과제. A1/A3 검색 미적중 원인과 B 유형 대화 맥락 미연결 원인 확정

260322 검색 미적중·PDF 바이너리 청크 품질·대화 맥락 리서치

목적

  • 테스트셋 A1(고유번호증), A3(오늘전통 사업계획서) 검색 실패의 직접 원인을 확정한다.
  • B 유형(대화 맥락 미연결)의 구조적 원인을 확인한다.

사실 (Facts)

1. A1: 고유번호증 검색 미적중

  • 파일 고유번호증_컴퍼니엑스 IP 투자조합 9호.pdf는 인덱싱 완료 (doc_id 4aa6f0e8)
  • 검색 "컴퍼니엑스 IP 투자조합 9호 고유번호증"으로 top-5에 미등장
  • chunk_text 내용: OCR 깨진 문자열 (단 제 & 대표자 성명 er 피 발 급 사 유...)
  • 원인: PDF 바이너리 임베딩 경로에서 _build_preview_text()가 텍스트 추출 결과를 chunk_text에 넣는데, 이미지 PDF의 경우 OCR이 없어서 깨진 문자열이 들어감. 키워드 "고유번호증"이 tsv 토큰에 정상으로 안 들어가고, 임베딩도 깨진 텍스트 기반이라 쿼리와 거리가 멂.

2. A3: 오늘전통 사업계획서 검색 실패

  • companyx_todaytradition.pdf가 검색 1위로 잡히지만, 이 파일이 "오늘전통 6기 2차년도 사업계획서"인지 불명
  • 1_원차_사업계획서(예산수정)_260317.pdf가 5위에 잡히지만 파일명에 "오늘전통 6기"가 없음
  • 원인: 200개 파일에 "오늘전통 6기 사업계획서" 제목의 문서가 없거나, 있어도 파일명·내용이 다르게 인덱싱됨

3. B 유형: 대화 맥락 미연결

  • try_companyx_grounding(user_id, message)는 매번 message만 받음
  • 이전 대화의 검색 결과, 문서명, 답변 내용을 후속 호출에 전달하는 경로 없음
  • message_service.py에서 save_message_conversation()으로 대화를 저장하지만, 다음 grounding 호출에서 이전 대화를 읽지 않음

원인 요약

유형 직접 원인 해결 방향
A1 (검색 미적중) 이미지 PDF의 chunk_text가 OCR 깨진 문자열 OCR 보강 또는 파일명 기반 키워드 보조 검색
A3 (내용 불일치) 200개에 해당 문서 미포함 또는 파일명 불일치 인덱싱 범위 문제 (200개 한계)
B (맥락 미연결) grounding이 매번 독립 검색, 이전 대화 미참조 이전 grounding 결과를 후속 호출에 컨텍스트로 전달