7.1 KiB
7.1 KiB
tags
| tags | ||||||
|---|---|---|---|---|---|---|
|
Company X RAG 답변합성 시나리오·트러블 동시종결 계획
작성일: 2026-03-15
상태: planned
목표: Company X 내부문서 근거응답 경로를 대표 질문 특례 처리에서 공통 계약 기반 답변합성 구조로 바꿔, 대응 troubleshooting 문서와 scenario 문서를 함께 닫습니다.
관련 문서
- Company X RAG 답변 합성 회귀
- Company X 내부 문서 근거응답 사용자 시나리오
- Company X RAG 답변합성 시나리오·트러블 동시종결 리서치
- Company X RAG 스킬 문서
1. 이번 계획의 결정
- 이 문제는
검색 인프라 확장보다답변 합성 계약 부재문제로 다룹니다. - 질문별
if분기, 질문별 direct answer, 질문별 프롬프트 추가로 닫지 않습니다. Company X grounding경로에 공통 계약 3개를 먼저 고정합니다.- 질문 유형 계약
- 근거 채택 계약
- 근거 부족 시 실패 계약
- 성공 기준은
검색 hit 존재가 아니라직접 답 + 질문 적합 근거 또는 명시적 부족 안내로 바꿉니다.
2. 범위
- 포함:
rb8001/app/services/companyx_grounding_service.py- Company X 재오픈 기준 질문 3개의 응답 계약
SKILL.md와 코드 계약 정합화- 테스트 보강
- 제외:
- Company X 전체 문서셋 대규모 확대
- 다른 RAG 경로 공통화
- Prompt DB 전면화
skill-rag-file자체 리팩토링
3. 공통 계약 고정안
A. 질문 유형 계약
- 최소 유형은 아래 4개로 고정합니다.
- 설명형
- 사실 확인형
- 수치 확인형
- 재정리형
- 판단 결과는 코드 내부 enum 또는 동등한 상수로 다룹니다.
- 질문별 문자열 특례가 아니라 유형별 처리로 묶습니다.
B. 근거 채택 계약
- 검색 결과가 있다고 바로 근거로 채택하지 않습니다.
- 채택 기준:
- 질문의 핵심 엔티티와 직접 관련이 있어야 합니다.
- 질문 유형에 맞는 문서여야 합니다.
- 상위 결과라도 질문과 무관하면 버립니다.
relevance_score는 후보 신호일 뿐, 최종 성공 판정 기준이 아닙니다.
C. 실패 계약
- 아래 경우는 성공처럼 반환하지 않습니다.
- 검색 결과 0개
- 검색 결과는 있으나 질문과 무관
- 수치/규정 질문인데 단정 가능한 근거가 없음
- 실패 응답은 아래 셋 중 하나로 고정합니다.
문서 없음질문과 맞는 문서 미확인내부 문서만으로는 단정 불가
4. 구현 원칙
SKILL.md의 답변 순서(direct answer -> evidence documents -> short evidence summary)를 코드 계약으로 내립니다.- 질문별 direct answer 하드코딩을 더 늘리지 않습니다.
- 질문 유형 판정과 근거 채택 판정은 별도 함수로 분리합니다.
검색됨과답할 수 있음을 같은 상태로 취급하지 않습니다.- 메타 대화(
어떤 부분이 더 필요하신지...)는 실패 기본 경로로 사용하지 않습니다.
5. 구현 단계
Phase 1. 구조 분리
companyx_grounding_service에서 아래 책임을 분리합니다.- 질문 유형 판정
- query candidate 생성
- retrieval 결과 수집
- 근거 채택 판정
- direct answer 생성
- failure answer 생성
- 목표:
- 현재 질문별 특례 분기와 generic fallback이 어디서 작동하는지 코드상 경계를 명확히 나눕니다.
Phase 2. 질문 유형 계약 도입
- 최소 4개 유형 분류 함수를 추가합니다.
- 재오픈 기준 질문 3개는 각 유형에 명시 매핑돼야 합니다.
컴퍼니엑스의 투자사는 몇개야?-> 수치 확인형그럼 컴퍼니엑스 내부 규정 상 휴가는 얼마나 쓸 수 있어?-> 사실 확인형 또는 규정 확인형 성격오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?-> 사실 확인형
Phase 3. 근거 채택 판정 추가
- 검색 결과를 그대로 상위 3개 노출하지 않습니다.
- 질문 유형에 맞지 않는 청크는 버립니다.
- 필요 최소 판정:
- 엔티티 일치 여부
- 문서 성격 일치 여부
- 답변 가능 근거인지 여부
휴가질문에todaytradition청크가 잡히는 경우는무관한 결과로 실패 처리해야 합니다.
Phase 4. direct/failure 응답 계약 재구성
- direct answer는 유형별 템플릿과 채택된 근거 상태를 바탕으로 생성합니다.
- 질문별 하드코딩 문장을 추가하지 않습니다.
- failure answer는
문서 없음 / 문서 미확인 / 단정 불가중 하나로 분명히 떨어져야 합니다.
Phase 5. 테스트 고정
- 최소 테스트:
- 대표 성공 질문은 계속 성공
- 투자사 질문은 generic 문장 금지
- 휴가 질문은 무관한 청크 반환 금지
- 근거 부족 시 명시적 실패 응답
- 재정리형 질문은 근거 목록 재사용 또는 재구성
- 테스트는 질문별 예외 성공이 아니라 공통 계약 준수 여부를 검증해야 합니다.
6. 검증 기준
- 재오픈 기준 질문 3개에서 아래가 확인돼야 합니다.
- 직접 답이 먼저 나온다.
- 질문과 맞는 근거만 붙는다.
- 근거가 부족하면 명시적으로 부족하다고 답한다.
검색 hit 있음 = success경로가 제거돼야 합니다.- 질문별 특례 추가 없이도 재오픈 질문셋이 통과해야 합니다.
SKILL.md요구사항과 실제 응답 형식이 일치해야 합니다.
7. 완료 판정 기준
- 260312_companyx_rag_answer_composition_regression.md에서 정의한 재현 질문셋이 더 이상 회귀하지 않습니다.
- 260312_companyx_내부문서_근거응답_사용자시나리오.md의 재오픈 기준 질문 3개가 기대 결과를 만족합니다.
companyx_grounding_service에 질문별 direct answer 특례를 추가하지 않고 공통 계약 구조로 바뀝니다.- 테스트가 추가되고 통과합니다.
- 실행 결과는
worklog 1건으로 마감하고, 시나리오/트러블 문서와 양방향 링크를 연결합니다.
8. 후속 경계
- 이 계획이 닫혀도 Company X 전체 문서군 확대나 범용 RAG 정책 공통화는 별도 계획으로 다룹니다.
Prompt DB나 전역 오케스트레이션 구조 변경은 이번 계획 범위 밖입니다.
한 줄 결론
- 이번 계획은
대표 질문 특례 처리 제거자체가 아니라, Company X 근거응답을질문 유형 계약 + 근거 채택 계약 + 실패 계약으로 재구성해 시나리오와 트러블을 함께 닫는 작업입니다.