# Company X 내부문서 RAG 근거응답 구현계획

**작성일**: 2026-03-12  
**상태**: 완료  
**목표**: Company X 소속 사용자의 내부 업무 질문에 대해, 로빙이 Company X 내부 문서를 우선 검색하고 `직접 답변 + 근거 문서` 형식으로 응답하도록 최소 운영 기준을 고정

**관련 문서**:
- [Company X 내부 문서 RAG 응답 아이디어](../ideas/260312_companyx_내부문서_rag_응답_아이디어.md)
- [Company X 내부 문서 근거응답 사용자 시나리오](../scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md)
- [Company X 내부문서 RAG 근거응답 현황 리서치](../research/260312_companyx_내부문서_rag_근거응답_현황_리서치.md)
- [Company X 내부문서 RAG 근거응답 1차 구현 및 부분 검증](../worklog/260312_companyx_내부문서_rag_근거응답_구현및시나리오검증.md)

---

## 1. 목표
- 대표 질문 `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?`에 대해 현재의 `찾아보겠습니다` 응답을 끝낸다.
- Company X 내부 문서 2,000개 내외의 쉬운 문서군을 먼저 인덱싱해, 실제 근거 검색이 되는 운영 후보를 만든다.
- 임베딩 모델은 우선 `384d 로컬`을 기본 경로로 사용하고, `1536d OpenAI`는 계속 비교군으로 유지한다.
- 답변 품질은 단순 생성문보다 `근거 문서 검색 품질 + 근거가 붙은 최종 답변` 기준으로 본다.

## 2. 범위
- 포함:
  - Company X 문서 1차 샘플셋 선정
  - `skill-rag-file` 인덱싱 경로를 Company X 문서에 연결
  - rb8001 질문 라우팅에서 Company X 내부 문서 검색 경로 추가
  - 답변 형식을 `직접 답변 + 근거 문서명 + 문단 요약 + 필요 시 위치 정보`로 고정
  - 답변 메타 평가용 최소 로그/피드백 연결
  - 로빙이 참조할 Company X RAG 스킬 사용설명서(`SKILL.md`) 위치와 역할 고정
- 제외:
  - 5만여 개 전체 문서 일괄 인덱싱
  - 비소속 사용자 공개 정책의 최종 법무 수준 확정
  - 전 문서군 OCR 고도화

## 3. 현상 요약
- 현재 질문은 `rb8001` 라우터에서 `UNKNOWN`으로 떨어져 내부 문서 검색 경로로 가지 않는다.
- `skill-rag-file` 인덱스에는 `오늘전통`, `옐로펀치` 관련 Company X 문서가 아직 들어가 있지 않다.
- 내부 NAS 원본에는 실제 근거 문서가 존재한다.
- 소규모 품질 비교 결과 `384d 로컬`과 `1536d OpenAI`는 현재 표본에서 동률이었으므로, 지금 당장 OpenAI로 전환할 근거는 없다.

## 4. 아키텍처 기준
- 문서 원본 기준 경로는 내부 NAS `/mnt/nas/workspace/6.Company X`를 사용한다.
- 인덱싱 저장은 기존 `skill-rag-file` 경로와 컬렉션 구조를 재사용하되, Company X 전용 team/collection 경계를 별도로 둔다.
- 답변 라우팅은 `rb8001`이 맡고, 검색 책임은 `skill-rag-file`이 맡는다.
- 임베딩 기본값은 `multilingual-MiniLM-L12-v2` `384d`로 유지한다.
- 메타 평가는 기존 `self_improvement_run + feedback` 구조를 재사용하되, RAG 전용 평가 필드를 추가한다.

## 5. 우선 고정 결정

### A. 1차 문서셋은 `2,000개 쉬운 문서`로 제한한다
- 대상 문서군:
  - 프로그램 소개서
  - 운영안/사업계획서
  - MOU/협력 문서
  - 보도자료 초안/대외 소개 문서
- 제외:
  - 이미지 위주 스캔본
  - 대용량 압축파일
  - 질문 빈도가 낮은 증빙성 문서

### B. 임베딩 기본 경로는 `384d 로컬`로 고정한다
- 이유:
  - 현재 표본에서 OpenAI 1536d 대비 품질 열세가 확인되지 않았다.
  - 문서 인덱싱 시간이 빠르고 외부 의존성이 적다.
- 단, OpenAI 1536d는 비교군으로 유지한다.

### C. 품질 평가는 `문서 수준 retrieval`을 먼저 본다
- 1차 지표:
  - `Top1`
  - `Top3`
  - `MRR`
- 2차 지표:
  - 근거 문단 사용 가능성
  - 최종 답변의 근거 포함 여부

### D. 질문셋은 `20~50개`로 먼저 고정한다
- 유형:
  - 설명형
  - 사실 확인형
  - 수치 확인형
  - 재정리형
- 각 질문마다 사람이 `정답 근거 문서`를 붙인다.

### E. 답변 형식은 아래 3단 구조로 고정한다
- 1문장: 질문에 대한 직접 답
- 2문장 이상: 근거 문서명 + 문단 요약
- 필요 시: 파일 경로 또는 페이지/섹션 위치

### F. 근거 부족 시 응답 원칙을 고정한다
- 추정해서 단정하지 않는다.
- `문서 없음`, `문서 간 불일치`, `최신 집계 미확인` 중 하나로 명시한다.

## 6. 작업 단계

### Phase 1: Company X 전용 샘플셋 준비
- `2,000개 쉬운 문서` 선정 기준 고정
- `오늘전통`, `옐로펀치`, `X-COURSE`, 프로그램 소개/운영 문서 우선 포함
- 샘플셋 목록 파일 생성

### Phase 2: Company X 전용 인덱싱 경로 연결
- Company X 전용 team/collection 식별자 결정
- `skill-rag-file` 업로드/인덱싱 스크립트 작성 또는 기존 경로 재사용
- 문서 2,000개 1차 인덱싱 실행

### Phase 3: retrieval 품질 비교
- 같은 질문셋으로 `384d 로컬`과 `1536d OpenAI` 비교
- `Top1/Top3/MRR` 측정
- 우세 모델이 아니라 `운영 기본 모델`을 결정

### Phase 4: rb8001 질문 라우팅 연결
- `근거 있어?`, `자료 기준으로`, `내부 문서 기준으로` 표현 우선 처리
- Company X 소속 사용자 질문이면 Company X 컬렉션 검색 우선
- 검색 결과를 포함한 답변 프롬프트/포맷 적용

### Phase 5: 메타 평가 연결
- `self_improvement_run.evaluate_snapshot`에 RAG 관련 최소 필드 추가
  - `rag_used`
  - `retrieval_hit_count`
  - `grounding_present`
  - `grounding_doc_ids`
- 사용자 좋아요/싫어요와 질문 유형을 같이 연결

### Phase 5-1: 스킬 사용설명서 고정
- 위치:
  - `robeing/DOCS/skills/companyx-rag/SKILL.md`
- 목적:
  - 로빙이 Company X 내부 문서를 언제 검색해야 하는지
  - 어떤 질문 유형을 Company X RAG로 보내야 하는지
  - 답변 형식과 금지 응답이 무엇인지
  - 권한 경계와 근거 부족 시 응답 원칙이 무엇인지
  를 상위 사용설명서로 고정한다.
- 원칙:
  - 단순 파일처리 설명이 아니라 `로빙의 Company X 근거응답 사용 규칙` 문서로 작성한다.
  - `skill-rag-file` 레포 내부 기능 README와 역할을 섞지 않는다.

### Phase 6: 대표 질문 닫기
- `오늘전통/옐로펀치` 질문군 5개 이상에서
  - 근거 문서 포함 답변
  - 근거 부족 시 추정 금지
  - 재질문 없이 근거 재정리 가능
  를 확인한다.

## 7. 테스트
- 인덱싱 테스트:
  - MOU 1건
  - 오늘전통 사업계획서 1건
  - 프로그램 소개 문서 1건
- retrieval 테스트:
  - 질문셋 `20~50개`
  - `384d` vs `1536d` 비교
- 응답 테스트:
  - 대표 질문 5개에 대해 `직접 답 + 근거 문서` 형식 검증
- 메타 평가 테스트:
  - `self_improvement_run`에 RAG 평가 필드 적재 확인
  - 사용자 피드백 저장 확인

## 8. 산출물
- Company X 샘플 문서셋 목록
- Company X 전용 인덱싱 경로/스크립트
- retrieval 품질 비교표
- rb8001 라우팅 규칙
- 근거 응답 형식 예시 세트
- 메타 평가 필드 정의

## 9. 리스크 및 대응
- 리스크: 문서군 오염으로 검색 품질 왜곡
  - 대응: 1차는 쉬운 문서군만 제한
- 리스크: Company X 전용 team/권한 경계 불명확
  - 대응: 초기에는 내부 검증용 식별자로 고정
- 리스크: OpenAI 품질 우위가 표본마다 흔들림
  - 대응: 운영 기본값은 384d 유지, 비교군은 병행
- 리스크: 답변은 생성되지만 근거가 약함
  - 대응: 생성 답변보다 retrieval 품질을 먼저 통과 조건으로 둠

## 10. 성공 판정
- 대표 질문군에서 `근거 문서 포함 답변`이 일관되게 나온다.
- `문서 없음/불일치` 상황에서 추정 단정이 사라진다.
- `384d` 기본 경로로도 Company X 질문 retrieval이 운영 후보 수준에 도달한다.
- 메타 평가 로그로 `RAG 사용 여부`와 `근거 포함 여부`를 추적할 수 있다.

## 11. 연결 문서
- [Company X 내부 문서 RAG 응답 아이디어](../ideas/260312_companyx_내부문서_rag_응답_아이디어.md)
- [Company X 내부 문서 근거응답 사용자 시나리오](../scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md)
- [Company X 내부문서 RAG 근거응답 현황 리서치](../research/260312_companyx_내부문서_rag_근거응답_현황_리서치.md)

## 12. 종료 메모
- 이 계획 문서는 `아이디어 출발 단계에서 필요한 최소 구현 경로를 고정했다`는 기준으로 완료 처리합니다.
- 이 문서는 여기서 닫습니다.
