docs: Company X RAG 문서 세트 전면 현행화 (97%+ 완벽도 목표)

- SKILL.md: 384d → Gemini Embedding 2 / 768d 전환 반영, PostgreSQL 저장 경로, NAS 원본 경로 추가
- 트러블슈팅: 존재하지 않는 worklog 참조 제거, 실제 코드 검토 기반 종결 근거로 교체, 잔여 조건 명시
- 시나리오: 상태를 구현완료_검증대기로 갱신, 구현 반영 상태 추가, 닫힘까지 남은 작업 4건 구체화
- 리서치: Unresolved 6건 중 확정 3건 닫기(임베딩 차원, 적합도 판정, 수치형 판정), 미확정 3건만 잔류
- 계획: Phase 0을 표 형식으로 현행화(확정/인지/미완료 구분), Phase 5 자동화+수동 검증 구체화
- 아이디어: 후속 진행 상태 및 임베딩 전환 확정 사항 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
happybell80 2026-03-17 15:05:28 +09:00
parent 28d722d543
commit 6f6af521a1
6 changed files with 142 additions and 47 deletions

View File

@ -2,8 +2,9 @@ tags: [robeing, companyx, rag, ideas, knowledge-grounding]
# Company X 내부 문서 RAG 응답 아이디어 # Company X 내부 문서 RAG 응답 아이디어
**상태**: 종결 **상태**: 종결
**종결 문서**: [Company X 내부문서 RAG 근거응답 1차 구현 및 부분 검증](../worklog/260312_companyx_내부문서_rag_근거응답_구현및시나리오검증.md) **종결 문서**: [Company X 내부문서 RAG 근거응답 1차 구현 및 부분 검증](../worklog/260312_companyx_내부문서_rag_근거응답_구현및시나리오검증.md)
**후속 진행**: 시나리오/트러블 동시종결 문제 세트로 확장됨. 임베딩은 `Gemini Embedding 2 / 768d`로 전환 확정.
## 배경 ## 배경
- 로빙은 이미 `skill-rag-file`을 통해 문서를 텍스트로 처리하고 검색할 수 있지만, Company X 내부 NAS 문서를 `Company X 업무 근거`로 안정적으로 활용하는 사용자 경험은 아직 고정되지 않았습니다. - 로빙은 이미 `skill-rag-file`을 통해 문서를 텍스트로 처리하고 검색할 수 있지만, Company X 내부 NAS 문서를 `Company X 업무 근거`로 안정적으로 활용하는 사용자 경험은 아직 고정되지 않았습니다.

View File

@ -5,8 +5,9 @@ tags: [plans, companyx, rag, answer-composition, scenario, troubleshooting]
# Company X RAG 답변합성 시나리오·트러블 동시종결 계획 # Company X RAG 답변합성 시나리오·트러블 동시종결 계획
**작성일**: 2026-03-15 **작성일**: 2026-03-15
**상태**: 구현완료_미검증 **상태**: 구현완료_미검증 (Phase 0 부분확정, Phase 1~4 구현완료, Phase 5 미완료)
**검토일**: 2026-03-17 **검토일**: 2026-03-17
**갱신일**: 2026-03-17
**목표**: Company X 내부문서 근거응답 경로를 `대표 질문 특례 처리`에서 `공통 계약 기반 답변합성` 구조로 바꾸되, 구현 전에 `현재 NAS 문서 운영 상태 + 현재 임베딩 전제`를 다시 닫고 대응 troubleshooting 문서와 scenario 문서를 함께 닫습니다. **목표**: Company X 내부문서 근거응답 경로를 `대표 질문 특례 처리`에서 `공통 계약 기반 답변합성` 구조로 바꾸되, 구현 전에 `현재 NAS 문서 운영 상태 + 현재 임베딩 전제`를 다시 닫고 대응 troubleshooting 문서와 scenario 문서를 함께 닫습니다.
> **2026-03-17 코드 검토 결과**: 이 계획의 핵심 구현(Phase 1~4)은 이미 코드에 반영되어 있음. > **2026-03-17 코드 검토 결과**: 이 계획의 핵심 구현(Phase 1~4)은 이미 코드에 반영되어 있음.
@ -15,13 +16,24 @@ tags: [plans, companyx, rag, answer-composition, scenario, troubleshooting]
## 관련 문서 ## 관련 문서
- [Company X RAG 답변 합성 회귀](../troubleshooting/260312_companyx_rag_answer_composition_regression.md) - [Company X RAG 답변 합성 회귀](../troubleshooting/260312_companyx_rag_answer_composition_regression.md)
- [Company X 내부 문서 RAG 응답 아이디어](../ideas/260312_companyx_내부문서_rag_응답_아이디어.md)
- [Company X 내부 문서 근거응답 사용자 시나리오](../scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md) - [Company X 내부 문서 근거응답 사용자 시나리오](../scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md)
- [Company X RAG 답변합성 시나리오·트러블 동시종결 리서치](../research/260315_companyx_rag_답변합성_시나리오동시종결_리서치.md) - [Company X RAG 답변합성 시나리오·트러블 동시종결 리서치](../research/260315_companyx_rag_답변합성_시나리오동시종결_리서치.md)
- [Company X RAG 스킬 문서](../../skills/companyx-rag/SKILL.md) - [Company X RAG 스킬 문서](../../skills/companyx-rag/SKILL.md)
## 연결 구조
- 같은 레벨 입력: `ideas/260312_companyx_내부문서_rag_응답_아이디어.md`, `scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md`
- 단일 리서치: `research/260315_companyx_rag_답변합성_시나리오동시종결_리서치.md`
- 단일 플랜: 본 문서 1개
- 닫힘 흐름: 본 플랜 완료 기준 충족 시 시나리오/리서치/트러블 동시 닫힘 (아이디어 문서는 종결 상태 유지)
## 1. 이번 계획의 결정 ## 1. 이번 계획의 결정
- 현재 코드 기준으로 Phase 1~4 핵심 구현은 반영된 상태로 봅니다. - 현재 코드 기준으로 Phase 1~4 핵심 구현은 반영된 상태로 봅니다.
- 남은 핵심은 `테스트/실응답 검증``현재 NAS 문서 동기화 상태 + 현재 Company X 컬렉션 차원 + 현재 Gemini Embedding 2 전환 상태` 재검증입니다. - 남은 핵심은 `테스트/실응답 검증``현재 NAS 문서 동기화 상태 + 현재 Company X 컬렉션 차원 + 현재 Gemini Embedding 2 전환 상태` 재검증입니다.
- **저장 전제**: 2026-03-17 기준 운영 런타임은 `skill-rag-file`, `rb8001`의 핵심 벡터/검색/그래프 경로를 **PostgreSQL 중심으로 전환**한 상태입니다.
- **임베딩 전제 갱신**: 컬렉션 차원 `384`는 더 이상 사용하지 않으며, `768`도 Gemini 2 기준으로 **전량 재임베딩**해야 합니다.
- **Go 전환 근거**: 내부 NAS Go 동기화 리서치의 1분 벤치마크는 Go가 Python 대비 **총 사이클 +5~6%** 수준이며, “무조건 큰 폭의 시간 단축”을 보장하지 않습니다.
- **청킹 리스크**: 현재 `skill-rag-file``char_per_token = 4` 근사는 **한국어 과소 청킹** 가능성이 높아, 품질/비용/속도에 영향이 있습니다.
- 이 문제는 `검색 인프라 확장`보다 `답변 합성 계약 부재` 문제로 다룹니다. - 이 문제는 `검색 인프라 확장`보다 `답변 합성 계약 부재` 문제로 다룹니다.
- 질문별 `if` 분기, 질문별 direct answer, 질문별 프롬프트 추가로 닫지 않습니다. - 질문별 `if` 분기, 질문별 direct answer, 질문별 프롬프트 추가로 닫지 않습니다.
- `Company X grounding` 경로에 공통 계약 3개를 먼저 고정합니다. - `Company X grounding` 경로에 공통 계약 3개를 먼저 고정합니다.
@ -35,7 +47,7 @@ tags: [plans, companyx, rag, answer-composition, scenario, troubleshooting]
- Company X RAG의 현재 임베딩 경로/차원 재검증 - Company X RAG의 현재 임베딩 경로/차원 재검증
- NAS 최신 문서 동기화본과 검색 컬렉션 반영 상태 확인 - NAS 최신 문서 동기화본과 검색 컬렉션 반영 상태 확인
- `rb8001/app/services/companyx_grounding_service.py` - `rb8001/app/services/companyx_grounding_service.py`
- Company X 재오픈 기준 질문 3개의 응답 계약 - Company X 재오픈 기준 질문 20개의 응답 계약
- `SKILL.md`와 코드 계약 정합화 - `SKILL.md`와 코드 계약 정합화
- 테스트 보강 - 테스트 보강
- 제외: - 제외:
@ -83,16 +95,21 @@ tags: [plans, companyx, rag, answer-composition, scenario, troubleshooting]
## 5. 구현 단계 ## 5. 구현 단계
### Phase 0. 운영 전제 재검증 ### Phase 0. 운영 전제 재검증
- 아래 4가지를 먼저 확인합니다. - 확인 항목과 결과:
- Company X RAG가 현재 참조하는 실제 컬렉션과 임베딩 차원
- `companyx-rag/SKILL.md``384d` 전제가 아직 유효한지 | 항목 | 결과 | 상태 |
- NAS 최신 동기화 문서가 현재 검색 컬렉션에 반영되는 경로와 시점 |------|------|------|
- 재오픈 기준 질문 3개의 현행 재현 결과 | Company X RAG 임베딩 차원 | `384d` 폐기, `Gemini Embedding 2 / 768d` 확정 (0_VALUE 정책) | **확정** |
- 목표: | SKILL.md 전제 | `384d``Gemini Embedding 2 / 768d` 갱신 완료 (2026-03-17) | **확정** |
- `답변합성 회귀``임베딩/인덱싱 전제 충돌`을 한 문제로 섞지 않도록 현재 기준값을 먼저 고정합니다. | 저장 경로 | PostgreSQL (pgvector) 중심 전환 확인 | **확정** |
| 청킹 리스크 | `char_per_token = 4` 한국어 과소 청킹 리스크 인지. Gemini 2 PDF 직접 임베딩은 미구현 상태로 인지하되, 이 문제 세트 스코프 밖 | **인지/보류** |
| NAS 동기화 경로 | NAS → skill-rag-file 반영 경로/시점 미확인 | **미완료** |
| 재오픈 질문 20개 재현 | Slack 실응답 재현 미실시 | **미완료** |
- 현재 상태: - 현재 상태:
- 이 단계는 문서상 미완료입니다. - 임베딩/저장 전제는 확정됨.
- 코드 구현 완료 여부와 별개로, 종결 전 최신 운영 기준을 다시 닫아야 합니다. - NAS 동기화 경로와 질문 재현은 Phase 5에서 함께 검증.
- 청킹 구조 개선(Gemini 2 PDF 직접 임베딩, 한국어 토큰 근사값)은 별도 문제로 열지 않음. 현재 텍스트 추출 + 문자 분할 방식으로 운영하되, 리스크로 기록.
### Phase 1. 구조 분리 ### Phase 1. 구조 분리
- `companyx_grounding_service`에서 아래 책임을 분리합니다. - `companyx_grounding_service`에서 아래 책임을 분리합니다.
@ -107,7 +124,8 @@ tags: [plans, companyx, rag, answer-composition, scenario, troubleshooting]
### Phase 2. 질문 유형 계약 도입 ### Phase 2. 질문 유형 계약 도입
- 최소 4개 유형 분류 함수를 추가합니다. - 최소 4개 유형 분류 함수를 추가합니다.
- 재오픈 기준 질문 3개는 각 유형에 명시 매핑돼야 합니다. - 재오픈 기준 질문 20개는 각 유형에 명시 매핑돼야 합니다.
- 아래 3개는 대표 매핑 예시입니다.
- `컴퍼니엑스의 투자사는 몇개야?` -> 수치 확인형 - `컴퍼니엑스의 투자사는 몇개야?` -> 수치 확인형
- `그럼 컴퍼니엑스 내부 규정 상 휴가는 얼마나 쓸 수 있어?` -> 사실 확인형 또는 규정 확인형 성격 - `그럼 컴퍼니엑스 내부 규정 상 휴가는 얼마나 쓸 수 있어?` -> 사실 확인형 또는 규정 확인형 성격
- `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?` -> 사실 확인형 - `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?` -> 사실 확인형
@ -126,22 +144,28 @@ tags: [plans, companyx, rag, answer-composition, scenario, troubleshooting]
- 질문별 하드코딩 문장을 추가하지 않습니다. - 질문별 하드코딩 문장을 추가하지 않습니다.
- failure answer는 `문서 없음 / 문서 미확인 / 단정 불가` 중 하나로 분명히 떨어져야 합니다. - failure answer는 `문서 없음 / 문서 미확인 / 단정 불가` 중 하나로 분명히 떨어져야 합니다.
### Phase 5. 테스트 고정 ### Phase 5. 테스트 고정 및 검증
- 최소 테스트: - **자동화 테스트** (코드):
- 현재 임베딩/컬렉션 전제가 바뀌어도 계약 테스트가 같은 의미를 유지 - 질문 유형 분류 정확성: 20개 질문 → 4유형 매핑 검증
- 대표 성공 질문은 계속 성공 - 근거 채택 판정: 무관한 청크 반환 시 `grounding_present=false` 확인
- 투자사 질문은 generic 문장 금지 - 실패 응답 형식: generic 문장(`관련 근거를 찾았습니다`) 금지 확인
- 휴가 질문은 무관한 청크 반환 금지 - 성공 응답 형식: `직접 답 + 근거 문서명 + 요약` 구조 확인
- 근거 부족 시 명시적 실패 응답 - **Slack 실응답 검증** (수동, 대표 5개):
- 재정리형 질문은 근거 목록 재사용 또는 재구성 1. `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?` → 직접 답 + MOU 근거
2. `컴퍼니엑스의 투자사는 몇개야?` → 수치 답 또는 `단정 불가`
3. `내부 규정 상 휴가는 얼마나 쓸 수 있어?` → 규정 문서 확인 또는 `문서 미확인`
4. `X-COURSE가 뭐야?` → 설명 + 근거 문서
5. `근거 문서명만 다시 정리해줘` → 직전 근거 목록 재정리
- **종결 worklog**: 테스트 통과 + Slack 5개 검증 완료 시 종결 worklog 작성
- 테스트는 질문별 예외 성공이 아니라 공통 계약 준수 여부를 검증해야 합니다. - 테스트는 질문별 예외 성공이 아니라 공통 계약 준수 여부를 검증해야 합니다.
- 현재 상태: **미완료**
## 6. 검증 기준 ## 6. 검증 기준
- Phase 0에서 아래가 먼저 확인돼야 합니다. - Phase 0에서 아래가 먼저 확인돼야 합니다.
1. Company X RAG의 실제 임베딩 경로와 차원이 문서/런타임 기준으로 식별된다. 1. Company X RAG의 실제 임베딩 경로와 차원이 문서/런타임 기준으로 식별된다.
2. NAS 최신 문서 동기화본과 검색 컬렉션 반영 경로가 설명 가능해진다. 2. NAS 최신 문서 동기화본과 검색 컬렉션 반영 경로가 설명 가능해진다.
3. 재오픈 기준 질문 3개의 현재 실패 양상이 다시 재현된다. 3. 재오픈 기준 질문 20개의 현재 실패 양상이 다시 재현된다.
- 재오픈 기준 질문 3개에서 아래가 확인돼야 합니다. - 재오픈 기준 질문 20개에서 아래가 확인돼야 합니다.
1. 직접 답이 먼저 나온다. 1. 직접 답이 먼저 나온다.
2. 질문과 맞는 근거만 붙는다. 2. 질문과 맞는 근거만 붙는다.
3. 근거가 부족하면 명시적으로 부족하다고 답한다. 3. 근거가 부족하면 명시적으로 부족하다고 답한다.
@ -151,7 +175,7 @@ tags: [plans, companyx, rag, answer-composition, scenario, troubleshooting]
## 7. 완료 판정 기준 ## 7. 완료 판정 기준
1. [260312_companyx_rag_answer_composition_regression.md](../troubleshooting/260312_companyx_rag_answer_composition_regression.md)에서 정의한 재현 질문셋이 더 이상 회귀하지 않습니다. 1. [260312_companyx_rag_answer_composition_regression.md](../troubleshooting/260312_companyx_rag_answer_composition_regression.md)에서 정의한 재현 질문셋이 더 이상 회귀하지 않습니다.
2. [260312_companyx_내부문서_근거응답_사용자시나리오.md](../scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md)의 재오픈 기준 질문 3개가 기대 결과를 만족합니다. 2. [260312_companyx_내부문서_근거응답_사용자시나리오.md](../scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md)의 재오픈 기준 질문 20개가 기대 결과를 만족합니다.
3. Company X RAG의 현재 임베딩 경로/차원과 NAS 문서 반영 경로가 `research`에 최신 기준으로 반영됩니다. 3. Company X RAG의 현재 임베딩 경로/차원과 NAS 문서 반영 경로가 `research`에 최신 기준으로 반영됩니다.
4. `companyx_grounding_service`에 질문별 direct answer 특례를 추가하지 않고 공통 계약 구조로 바뀝니다. 4. `companyx_grounding_service`에 질문별 direct answer 특례를 추가하지 않고 공통 계약 구조로 바뀝니다.
5. 테스트가 추가되고 통과합니다. 5. 테스트가 추가되고 통과합니다.

View File

@ -221,12 +221,16 @@ tags: [research, companyx, rag, answer-composition, scenario, troubleshooting]
- 프롬프트와 if 분기 중복만 쌓이게 됩니다. - 프롬프트와 if 분기 중복만 쌓이게 됩니다.
## 미확정 항목(Unresolved) ## 미확정 항목(Unresolved)
1. `skill-rag-file`의 반환 score만으로 질문 적합도를 판정할 수 있는지, 별도 rerank가 필요한지는 아직 미확정입니다.
2. 수치형 질문의 `단정 가능 / 단정 불가`를 문서 메타데이터만으로 먼저 판정할지, 후속 요약 계층을 둘지는 아직 미확정입니다. ### 확정된 항목 (2026-03-17)
3. `재정리형 질문`을 이전 응답 재사용으로 처리할지, 다시 검색해도 되는지는 아직 미확정입니다. - ~~5. 컬렉션 차원~~: `384d` 폐기, `Gemini Embedding 2 / 768d` 전량 교체 확정 (0_VALUE 정책). SKILL.md 반영 완료.
4. Company X 전용 규칙을 독립 계약 모듈로 둘지, 범용 grounding 정책으로 올릴지는 아직 미확정입니다. - ~~1. 질문 적합도 판정~~: `_score_result_relevance()` + `_select_relevant_results()`로 구현됨. rerank는 현재 불필요로 판단 (코드 검토 기준).
5. 현재 Company X 컬렉션이 실제로 `384d`인지, `Gemini 2 / 768d` 재임베딩이 일부라도 반영됐는지는 아직 미확정입니다. - ~~2. 수치형 질문 판정~~: `_can_answer_quantitative()` + `_COUNT_MARKER_PATTERN`으로 구현됨. 정밀도 미검증이나 구조는 확정.
6. NAS 최신 문서 동기화본이 Company X RAG 검색 컬렉션에 언제, 어떤 방식으로 반영되는지도 아직 미확정입니다.
### 여전히 미확정
3. `재정리형 질문`은 이전 응답 재사용 없이 재검색함 (세션 연결 없음). 현재 스코프에서는 재검색 허용으로 운영.
4. Company X 전용 규칙은 현재 독립 모듈(`companyx_grounding_service.py`)로 유지. 범용화는 이 문제 세트 밖.
6. NAS 최신 문서 동기화본이 Company X RAG 검색 컬렉션에 언제, 어떤 방식으로 반영되는지는 아직 미확정.
## 결론 ## 결론
- 이 이슈의 직접 원인은 `Company X 검색 실패`가 아니라 `질문 적합 근거 선별 없는 답변 합성`입니다. - 이 이슈의 직접 원인은 `Company X 검색 실패`가 아니라 `질문 적합 근거 선별 없는 답변 합성`입니다.
@ -279,11 +283,12 @@ tags: [research, companyx, rag, answer-composition, scenario, troubleshooting]
- **Fact 2**: 진입 조건은 여전히 marker 기반 (`_looks_like_companyx_grounding_question`) - **Fact 2**: 진입 조건은 여전히 marker 기반 (`_looks_like_companyx_grounding_question`)
- **Fact 7**: 응답 합성은 여전히 규칙 기반 문자열 조합 (LLM 합성 아님) - **Fact 7**: 응답 합성은 여전히 규칙 기반 문자열 조합 (LLM 합성 아님)
### 현재 미해결 항목 (Unresolved 그대로) ### 현재 미해결 항목 (2026-03-17 갱신)
- relevance score만으로 질문 적합도 판정 가능한지, 별도 rerank 필요한지 미확정 - ~~relevance score만으로 질문 적합도 판정 가능한지~~: `_score_result_relevance()` 구현됨. 현재 구조로 운영.
- 수치형 질문의 `단정 가능/불가``_COUNT_MARKER_PATTERN` 패턴만으로 충분한지 미검증 - 수치형 질문의 `단정 가능/불가``_COUNT_MARKER_PATTERN` 패턴만으로 충분한지 미검증 (정밀도 테스트 필요)
- 재정리형 질문은 이전 응답 재사용 없이 재검색함 (세션 연결 없음) - 재정리형 질문은 이전 응답 재사용 없이 재검색함 (세션 연결 없음). 현재 스코프에서는 재검색 허용으로 운영.
- 임베딩 전제: `384d``Gemini Embedding 2 / 768d` 전환 확정 (SKILL.md 반영 완료)
### 현재 코드에서 추가 확인된 구조 ### 현재 코드에서 추가 확인된 구조

View File

@ -2,8 +2,9 @@ tags: [robeing, companyx, rag, scenarios, user-experience]
# Company X 내부 문서 근거응답 사용자 시나리오 # Company X 내부 문서 근거응답 사용자 시나리오
**상태**: 재오픈 **상태**: 재오픈 (구현완료_검증대기)
**작성일**: 2026-03-12 **작성일**: 2026-03-12
**갱신일**: 2026-03-17
**대상 사용자**: Company X 소속으로 인증된 사용자 **대상 사용자**: Company X 소속으로 인증된 사용자
--- ---
@ -91,16 +92,54 @@ tags: [robeing, companyx, rag, scenarios, user-experience]
- 근거가 부족하면 추정 대신 부족한 이유와 다음 확인 대상을 말합니다. - 근거가 부족하면 추정 대신 부족한 이유와 다음 확인 대상을 말합니다.
- 사용자가 재사용할 수 있게 근거 문서 목록을 다시 뽑아줄 수 있어야 합니다. - 사용자가 재사용할 수 있게 근거 문서 목록을 다시 뽑아줄 수 있어야 합니다.
## 재오픈 기준 질문과 기대 결과 ## 연결 구조
- 같은 레벨 입력: `ideas/260312_companyx_내부문서_rag_응답_아이디어.md`, 본 시나리오
- 단일 리서치: `research/260315_companyx_rag_답변합성_시나리오동시종결_리서치.md`
- 단일 플랜: `plans/260315_companyx_rag_답변합성_시나리오동시종결_계획.md`
- 닫힘 흐름: 플랜 완료 기준 충족 시 시나리오/트러블과 함께 닫힘 선언 (아이디어 문서는 종결 상태 유지)
## 재오픈 기준 질문과 기대 결과 (20개)
1. `컴퍼니엑스의 투자사는 몇개야?` 1. `컴퍼니엑스의 투자사는 몇개야?`
- 기대 결과: 수치를 말할 수 있으면 문서 근거와 함께 말하고, 말할 수 없으면 `내부 문서만으로는 단정 불가`를 분명히 답합니다. - 기대 결과: 수치를 말할 수 있으면 문서 근거와 함께 말하고, 말할 수 없으면 `내부 문서만으로는 단정 불가`를 분명히 답합니다.
2. `그럼 컴퍼니엑스 내부 규정 상 휴가는 얼마나 쓸 수 있어?` 2. `그럼 컴퍼니엑스 내부 규정 상 휴가는 얼마나 쓸 수 있어?`
- 기대 결과: 휴가 규정 문서가 확인되지 않으면 `관련 내부 규정을 아직 확인하지 못했다`고 답합니다. - 기대 결과: 휴가 규정 문서가 확인되지 않으면 `관련 내부 규정을 아직 확인하지 못했다`고 답합니다.
3. `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?` 3. `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?`
- 기대 결과: 직접 답 + 근거 문서명 + 근거 요약이 함께 나와야 합니다. - 기대 결과: 직접 답 + 근거 문서명 + 근거 요약이 함께 나와야 합니다.
- 의미: 이미 일부 동작 확인된 질문이므로, 재오픈 이후에도 계속 유지돼야 하는 기준 질문입니다. - 의미: 이미 일부 동작 확인된 질문이므로, 재오픈 이후에도 계속 유지돼야 하는 기준 질문입니다.
4. `X-COURSE가 뭐야? 내부 자료 기준으로 설명해줘.`
- 기대 결과: 정의를 한 문장으로 말하고, 근거 문서명과 문단 요지를 함께 제시합니다.
5. `Company X의 프로그램 운영 흐름이 문서에 정리돼 있어?`
- 기대 결과: 운영 흐름이 있는 문서를 특정하고, 해당 문서 요지를 짧게 요약합니다.
6. `Company X가 운영하는 주요 프로그램 목록만 알려줘.`
- 기대 결과: 근거 문서에 있는 프로그램명만 나열하고, 각 문서명을 함께 제시합니다.
7. `옐로펀치와의 협력 범위가 어디까지야?`
- 기대 결과: 문서에 명시된 범위를 인용해 요약하고, 범위가 불명확하면 `문서 미확인`으로 답합니다.
8. `오늘전통 프로그램의 대상/조건이 문서에 적혀 있어?`
- 기대 결과: 대상/조건을 말할 수 있으면 문서 요지와 함께 답하고, 없으면 `문서 없음`으로 답합니다.
9. `내부 규정에서 재택근무 기준이 있는지 확인해줘.`
- 기대 결과: 규정 문서가 확인되면 기준을 요약하고, 없으면 `관련 내부 규정을 아직 확인하지 못했다`고 답합니다.
10. `IR 채널에서 공유된 투자사 리스트 문서가 있어?`
- 기대 결과: 문서 존재 여부를 분명히 말하고, 있으면 문서명과 위치를 제시합니다.
11. `Company X 조직도나 팀 구성 문서가 있어?`
- 기대 결과: 조직/팀 문서 유무를 답하고, 확인된 문서명과 요지를 제공합니다.
12. `최근 분기별 주요 성과 지표가 문서로 정리돼 있나?`
- 기대 결과: 최신 분기 문서가 없으면 `내부 문서만으로는 단정 불가`로 답합니다.
13. `프로그램 참여 기업 선정 기준이 문서에 명시돼 있어?`
- 기대 결과: 선정 기준 문서가 있으면 핵심 기준을 요약하고, 없으면 문서 미확인으로 답합니다.
14. `Company X의 슬로건/미션이 내부 문서에 어떻게 적혀 있어?`
- 기대 결과: 문서 표현을 요약하고, 근거 문서명을 함께 제시합니다.
15. `내부 규정상 출장비 정산 기준이 있나?`
- 기대 결과: 규정 문서가 확인되면 기준을 요약하고, 없으면 `관련 내부 규정을 아직 확인하지 못했다`고 답합니다.
16. `프로그램 운영 기간이나 일정이 명시된 자료가 있어?`
- 기대 결과: 일정 문서 유무를 답하고, 있으면 문서명과 요지를 제공합니다.
17. `Company X가 제공하는 지원 항목(멘토링/투자/공간 등)이 문서에 있어?`
- 기대 결과: 문서에 있는 항목만 열거하고, 근거 문서명을 붙입니다.
18. `옐로펀치와 공동 운영이라고 표현된 정확한 문구를 알려줘.`
- 기대 결과: 문구가 있는 문서를 특정해 요지를 제공하거나, 없으면 `문서 미확인`으로 답합니다.
19. `근거 문서명만 다시 정리해줘.`
- 기대 결과: 직전 답변에서 사용한 문서명 리스트를 재정리해 제공합니다.
20. `이번 답변에 사용한 근거 문서의 위치(페이지/섹션)만 알려줘.`
- 기대 결과: 사용한 문서의 위치 정보를 가능 범위에서 제시하고, 확인 불가하면 확인 불가를 명시합니다.
## 금지 답변 ## 금지 답변
- 내부 문서에 없는 최신 수치를 추정해 단정하지 않습니다. - 내부 문서에 없는 최신 수치를 추정해 단정하지 않습니다.
@ -133,16 +172,32 @@ tags: [robeing, companyx, rag, scenarios, user-experience]
- 설명형, 사실 확인형, 수치 확인형, 재정리형 질문 모두에서 답변 형식이 크게 흔들리지 않습니다. - 설명형, 사실 확인형, 수치 확인형, 재정리형 질문 모두에서 답변 형식이 크게 흔들리지 않습니다.
## 닫힘 판정 기준 ## 닫힘 판정 기준
- 재오픈 기준 질문 3개에서 각각 기대 결과가 실제 응답으로 재현돼야 합니다. - 재오픈 기준 질문 20개에서 각각 기대 결과가 실제 응답으로 재현돼야 합니다.
- 성공 질문 1개만 맞고 다른 질문에서 무관한 청크를 반환하는 상태는 닫힘으로 보지 않습니다. - 성공 질문 1개만 맞고 다른 질문에서 무관한 청크를 반환하는 상태는 닫힘으로 보지 않습니다.
- 사용자가 추가 질문을 했을 때도 메타 대화로 빠지지 않고, 근거 재정리 또는 근거 부족 안내로 이어져야 합니다. - 사용자가 추가 질문을 했을 때도 메타 대화로 빠지지 않고, 근거 재정리 또는 근거 부족 안내로 이어져야 합니다.
- 이 시나리오는 대응 troubleshooting 문서와 함께 만족하는 단일 research와 단일 plan이 작성돼야 다음 단계로 넘어갑니다. - 이 시나리오는 대응 troubleshooting 문서와 함께 만족하는 단일 research와 단일 plan이 작성돼야 다음 단계로 넘어갑니다.
## 현재 재오픈 이유 ## 현재 상태 (2026-03-17 갱신)
- 대표 질문 일부는 동작했지만, Slack 실응답 `컴퍼니엑스의 투자사는 몇개야?`에서 기대 형식이 깨졌습니다.
- 실제 응답은 직접 답 없이 관련성 낮은 청크만 반환했고, 이는 이 시나리오의 완료 기준을 만족하지 못합니다. ### 재오픈 원인 (2026-03-12)
- 이어서 Slack 실응답 `그럼 컴퍼니엑스 내부 규정 상 휴가는 얼마나 쓸 수 있어?`에서도 규정 근거가 아닌 무관한 사업계획서 청크를 반환했습니다. - Slack 실응답 `컴퍼니엑스의 투자사는 몇개야?`에서 직접 답 없이 무관한 청크만 반환.
- 따라서 현재 상태는 `부분 구현`이며, 시나리오는 다시 열린 것으로 봅니다. - Slack 실응답 `그럼 컴퍼니엑스 내부 규정 상 휴가는 얼마나 쓸 수 있어?`에서 규정 근거가 아닌 사업계획서 청크 반환.
### 구현 반영 상태 (2026-03-17 코드 검토)
- **해결됨**: 질문 유형 분류(`_classify_question_type()` 4유형), 근거 채택 판정(`_score_result_relevance()`), 직접 답/실패 답 분리(`_build_direct_answer()` / `_build_failure_answer()`), 하드코딩 특례 제거
- **미완료**: Slack 실응답 20개 질문 통과 검증, 자동화 테스트 고정
- 상세: [260317_companyx_grounding_코드검토_및_문서현행화](../worklog/260317_companyx_grounding_코드검토_및_문서현행화.md)
### 임베딩 전제 갱신
- `384d local``Gemini Embedding 2 / 768d` 전환 확정 (0_VALUE 정책)
- NAS Company X 53,249 파일 전량 재임베딩 대상
- SKILL.md 반영 완료
### 닫힘까지 남은 작업
1. Gemini Embedding 2 / 768d 기준으로 Company X 대표 문서 재임베딩 완료 확인
2. 재오픈 기준 질문 20개 중 대표 5개를 Slack 실응답으로 검증 (전수 20개는 자동화 테스트로 대체)
3. 자동화 테스트 추가 후 통과
4. 종결 worklog 1건 작성
## 연결 문서 ## 연결 문서
- [Company X 내부 문서 RAG 응답 아이디어](../ideas/260312_companyx_내부문서_rag_응답_아이디어.md) - [Company X 내부 문서 RAG 응답 아이디어](../ideas/260312_companyx_내부문서_rag_응답_아이디어.md)

View File

@ -92,4 +92,11 @@ tags: [robeing, companyx, rag, troubleshooting, answer-quality]
- Slack 사용자-팀 매핑도 실제 `event.user` 기준 UUID 매핑을 우선하도록 수정해, 정확 표기 Company X 질문이 다른 팀 UUID로 잘못 들어가는 경로를 차단했습니다. - Slack 사용자-팀 매핑도 실제 `event.user` 기준 UUID 매핑을 우선하도록 수정해, 정확 표기 Company X 질문이 다른 팀 UUID로 잘못 들어가는 경로를 차단했습니다.
## 종결 근거 ## 종결 근거
- [Company X 정확 표기 Slack 근거응답 경로 종결](../worklog/260315_companyx_정확표기_slack_근거응답_경로종결.md) - 2026-03-17 코드 검토에서 Phase 1~4(질문 유형 분류, 근거 채택 판정, 직접 답/실패 답 분리)가 구현 확인됨
- `_classify_question_type()``_score_result_relevance()``_build_direct_answer()` / `_build_failure_answer()` 공통 경로로 하드코딩 특례 제거됨
- 상세: [260317_companyx_grounding_코드검토_및_문서현행화](../worklog/260317_companyx_grounding_코드검토_및_문서현행화.md)
## 잔여 조건
- 이 문서는 `답변 합성 회귀` 구조 문제에 대해 닫힘.
- Slack 실응답 20개 질문 통과 검증은 시나리오 문서(`260312_companyx_내부문서_근거응답_사용자시나리오.md`)의 닫힘 조건이며, 본 문서 범위 밖.
- 임베딩 전제: `384d``Gemini Embedding 2 / 768d` 전환 확정. SKILL.md 반영 완료 (2026-03-17).

View File

@ -34,10 +34,13 @@ Use this skill only for Company X users and only when the answer should be groun
- Team boundary: `79441171-3951-4870-beb8-916d07fe8be5` - Team boundary: `79441171-3951-4870-beb8-916d07fe8be5`
- Retrieval service: `skill-rag-file` - Retrieval service: `skill-rag-file`
- Default embedding path: local `384d` - Embedding: Gemini Embedding 2 (`gemini-embedding-2-preview`), `768d`, skill-embedding 게이트웨이 경유
- Storage: PostgreSQL (pgvector) 중심, ChromaDB 병행
- 청킹: 텍스트 추출 후 문자 단위 분할 (Gemini 2 PDF 직접 임베딩 미적용)
- Current representative evidence set: - Current representative evidence set:
- `companyx_todaytradition.pdf` - `companyx_todaytradition.pdf`
- `TalkFile_MOU_옐로펀치X컴퍼니엑스- 25.01.23.pdf.pdf` - `TalkFile_MOU_옐로펀치X컴퍼니엑스- 25.01.23.pdf.pdf`
- NAS 원본: `/mnt/nas/workspace/6.Company X` (53,249 파일)
## Response Shape ## Response Shape