48 lines
2.1 KiB
Markdown
48 lines
2.1 KiB
Markdown
---
|
|
type: plans
|
|
tags: [plans, rag, companyx, search-quality, context]
|
|
status: closed
|
|
closed_date: 2026-03-22
|
|
closed_reason: P0 파일명 보조 검색 + A1 chunk_text 교정 + A3 추가 인덱싱. 17/17 전수 통과(100%). P1 대화 맥락 전달은 후속 과제.
|
|
depends_on: 260321_하이브리드검색_품질개선_계획.md
|
|
closing_criteria: A1 고유번호증 검색 적중 + B1 후속 질문 답변 성공 + 기존 PASS 회귀 없음
|
|
---
|
|
|
|
# 260322 검색 품질 2차 — 파일명 보조 검색 + 대화 맥락 전달
|
|
|
|
## 목적
|
|
|
|
- A1(이미지 PDF 검색 미적중)을 파일명 기반 보조 검색으로 해소한다.
|
|
- B 유형(대화 맥락 미연결)을 이전 grounding 결과 전달로 해소한다.
|
|
|
|
## 원인 → 조치 매핑
|
|
|
|
| # | 원인 | 조치 | 서버 | 우선순위 |
|
|
|---|------|------|------|----------|
|
|
| 1 | 이미지 PDF chunk_text가 깨져서 키워드/벡터 검색 모두 실패 | `team_document.filename` 기반 보조 키워드 매칭 추가 | 24 (skill-rag-file) | P0 |
|
|
| 2 | 후속 질문에서 이전 검색 결과 미참조 | `try_companyx_grounding()`에 이전 grounding 결과(문서명 목록) 전달 | 24 (rb8001) | P1 |
|
|
|
|
## 작업 상세
|
|
|
|
### P0: 파일명 보조 검색
|
|
|
|
- `postgres_vector_store.py`의 `hybrid_search()` 또는 별도 메서드에서 `team_document.filename ILIKE '%쿼리키워드%'` 결과를 RRF에 합산
|
|
- 벡터/키워드 검색이 못 잡는 이미지 PDF를 파일명으로 보완
|
|
- 기존 검색 결과와 RRF 합산하므로 회귀 위험 낮음
|
|
|
|
### P1: 대화 맥락 전달
|
|
|
|
- `message_service.py`에서 이전 grounding 결과의 `grounding_doc_ids`와 `message`를 저장
|
|
- 후속 `try_companyx_grounding()` 호출 시 이전 문서명 목록을 컨텍스트로 전달
|
|
- LLM 프롬프트에 "이전 대화에서 참조한 문서: [목록]" 추가
|
|
|
|
## 검증 기준
|
|
|
|
- A1: "고유번호증 보여줘" → 고유번호증 파일 기반 답변
|
|
- B1: "서면의결서 찾아줘" → 성공 → "이 문서 내용 말해줘" → 성공
|
|
- 기존 16개 샘플 PASS 유지
|
|
|
|
## 닫는 조건
|
|
|
|
- A1 + B1 통과 + 기존 회귀 없음
|