85 lines
4.9 KiB
Markdown
85 lines
4.9 KiB
Markdown
---
|
|
type: troubleshooting
|
|
tags: [companyx, rag, grounding, llm, context, rb8001]
|
|
status: closed
|
|
closed_date: 2026-03-22
|
|
closed_reason: A1 고유번호증 chunk_text 교정 + A3 오늘전통6기 추가 인덱싱 + 파일명 보조 검색 + LLM 프롬프트 힌트. 17/17 전수 통과(100%).
|
|
opened_date: 2026-03-22
|
|
severity: high
|
|
root_cause: A 유형은 LLM 과보수가 아니라 검색 미적중(고유번호증 top-5 미등장) + 파일명-질문 불일치. B 유형은 grounding이 매번 독립 검색이라 이전 대화 맥락 참조 불가.
|
|
---
|
|
|
|
# 260322 Company X RAG LLM 판단 과보수 + 대화 맥락 미연결
|
|
|
|
## 현상
|
|
|
|
1. **LLM 판단 과보수**: 검색에 관련 문서가 잡히는데 LLM이 "근거 없음"으로 판단
|
|
- 예: "컴퍼니엑스 IP 투자조합 9호 고유번호증 보여줘" → 고유번호증 문서가 검색 4위에 있지만 failure 응답
|
|
2. **대화 맥락 미연결**: 후속 질문에서 이전 검색 결과를 참조 못 함
|
|
- 예: "에프앤엘 서면의결서 찾아줘" → 성공 → "이 문서 내용을 말해줘" → failure
|
|
|
|
## 테스트 질문셋
|
|
|
|
### A. LLM 판단 과보수 (단일 질문, 검색은 되는데 failure)
|
|
|
|
| # | 질문 | 기대 | 비고 |
|
|
|---|------|------|------|
|
|
| A1 | 컴퍼니엑스 IP 투자조합 9호 고유번호증 보여줘 | 고유번호증 내용 답변 | 검색 4위에 문서 있음 |
|
|
| A2 | 다리마티 보통주 계약서 핵심 조건이 뭐야? | 계약 조건 요약 | 검색 1위에 문서 있음 |
|
|
| A3 | 오늘전통 6기 사업계획서 내용 요약해줘 | 사업계획서 요약 | 검색 1위에 문서 있음 |
|
|
| A4 | 컴퍼니엑스 IP 투자조합별 관리보수 자금계획 비교해줘 | 비교 답변 | 복수 문서 필요 |
|
|
| A5 | 앤션트투투데이 2025년 재무상태표 수치 알려줘 | 수치 답변 | 검색 1위에 문서 있음 |
|
|
|
|
### B. 대화 맥락 연결 (선행 질문 성공 후 후속 질문)
|
|
|
|
| # | 선행 질문 | 후속 질문 | 기대 |
|
|
|---|----------|----------|------|
|
|
| B1 | 에프앤엘 서면의결서 양식 찾아줘 | 이 문서 내용을 말해줘 | 서면의결서 내용 답변 |
|
|
| B2 | 오늘전통 AC 본점 이전 공문 내용이 뭐야? | 이걸 요약해줘 | 공문 요약 |
|
|
| B3 | 팁스 운영사 소재지 변경 공문 내용 요약해줘 | 발신일이 언제야? | 공문 날짜 답변 |
|
|
| B4 | 옐로펀치 컴퍼니엑스 협약 근거 있어? | 구체적으로 어떤 내용이야? | MOU 내용 상세 |
|
|
| B5 | 아크로셀 정기주총 서류 있어? | 몇 호 의안이 있어? | 의안 목록 답변 |
|
|
|
|
### C. 경계 케이스
|
|
|
|
| # | 질문 | 기대 | 비고 |
|
|
|---|------|------|------|
|
|
| C1 | 컴퍼니엑스 내부 휴가 규정이 뭐야? | 정상 failure | 200개에 없는 문서 |
|
|
| C2 | 점심 뭐 먹을까? | 일반 챗봇 응답 (grounding failure → fallback) | 라우팅 완화 후 경계 |
|
|
| C3 | 고유번호증이 뭐야? 일반적으로 설명해줘 | 일반 지식 답변 (grounding 아님) | 내부 문서 아닌 일반 질문 |
|
|
|
|
## 테스트 결과 (260322)
|
|
|
|
### A. LLM 판단 과보수
|
|
|
|
| # | 질문 | 결과 | 직접 원인 |
|
|
|---|------|------|----------|
|
|
| A1 | 고유번호증 보여줘 | **FAIL** | 고유번호증 파일이 검색 top-5에 미등장. LLM 문제가 아니라 검색 문제 |
|
|
| A2 | 다리마티 계약 조건 | **PASS** | |
|
|
| A3 | 오늘전통 사업계획서 요약 | **FAIL** | companyx_todaytradition.pdf가 잡히지만 "6기 사업계획서" 내용이 아님 |
|
|
| A4 | 관리보수 비교 | **PASS** | |
|
|
| A5 | 재무상태표 수치 | **PASS** | |
|
|
|
|
**A 유형 결론**: LLM이 과보수적인 게 아니라, 검색이 관련 문서를 못 찾거나 무관한 문서를 찾아주는 것. LLM은 제공된 컨텍스트 기준으로 올바르게 판단하고 있음.
|
|
|
|
### B. 대화 맥락 — 미테스트 (A 유형 원인 확정 후 별도 진행)
|
|
|
|
### C. 경계 — 미테스트
|
|
|
|
## 확정된 원인
|
|
|
|
1. **A1**: 고유번호증 PDF가 바이너리 임베딩 경로로 인덱싱되어 chunk_text가 OCR 깨진 문자열. 키워드 "고유번호증"이 tsv에 정상 토큰으로 안 들어감
|
|
2. **A3**: 검색은 되지만 파일명·내용이 질문과 불일치. "오늘전통 6기"를 특정하는 문서가 200개에 포함되어 있지 않을 가능성
|
|
3. **B 유형**: grounding이 `try_companyx_grounding()` 단일 호출로 매번 독립 검색. 이전 대화의 검색 결과·문서명을 후속 질문에 전달하는 경로 없음
|
|
|
|
## 관련 파일
|
|
|
|
- `rb8001/app/services/companyx_grounding_service.py`: `_call_llm_companyx_grounding()`, `_build_grounded_response()`
|
|
- `rb8001/app/services/message_service.py`: 대화 맥락 전달 경로
|
|
- `skill-rag-file/app/services/indexing_pipeline.py`: PDF 바이너리 임베딩 경로의 chunk_text 품질
|
|
|
|
## 관련 문서
|
|
|
|
- [260322 답변 품질 트러블 (닫힘)](./260322_companyx_rag_답변품질_장황_무관문서혼입_점수노출.md)
|
|
- [260321 하이브리드 검색 품질 개선 계획 (닫힘)](../plans/260321_하이브리드검색_품질개선_계획.md)
|