diff --git a/journey/README.md b/journey/README.md index 274cee8..4587b74 100644 --- a/journey/README.md +++ b/journey/README.md @@ -73,6 +73,7 @@ - 프롬프트DB·자기개선루프 기본구현 검증 및 계획 종결 – `worklog/260310_프롬프트DB_자기개선루프_기본구현_검증및계획종결.md` - Calendar Skill 자동휴일감지 행동제어 구현 및 검증 – `worklog/260310_calendar_skill_자동휴일감지_행동제어_구현및검증.md` - 브리핑 조회 윈도우 직전 영업일 기준 확장 – `worklog/260310_briefing_window_직전영업일기준_확장.md` +- Company X 내부문서 RAG 근거응답 구현 및 시나리오 검증 – `worklog/260312_companyx_내부문서_rag_근거응답_구현및시나리오검증.md` ## Scenarios diff --git a/journey/ideas/260312_companyx_내부문서_rag_응답_아이디어.md b/journey/ideas/260312_companyx_내부문서_rag_응답_아이디어.md index 98e0e47..fef989c 100644 --- a/journey/ideas/260312_companyx_내부문서_rag_응답_아이디어.md +++ b/journey/ideas/260312_companyx_내부문서_rag_응답_아이디어.md @@ -2,6 +2,9 @@ tags: [robeing, companyx, rag, ideas, knowledge-grounding] # Company X 내부 문서 RAG 응답 아이디어 +**상태**: 종결 +**종결 문서**: [Company X 내부문서 RAG 근거응답 구현 및 시나리오 검증](../worklog/260312_companyx_내부문서_rag_근거응답_구현및시나리오검증.md) + ## 배경 - 로빙은 이미 `skill-rag-file`을 통해 문서를 텍스트로 처리하고 검색할 수 있지만, Company X 내부 NAS 문서를 `Company X 업무 근거`로 안정적으로 활용하는 사용자 경험은 아직 고정되지 않았습니다. - Company X 관련 질문은 일반 웹 지식이 아니라 내부 파일의 실제 내용과 표현을 근거로 답해야 가치가 생깁니다. diff --git a/journey/plans/260312_companyx_내부문서_rag_근거응답_구현계획.md b/journey/plans/260312_companyx_내부문서_rag_근거응답_구현계획.md index aadb2b2..e101dfc 100644 --- a/journey/plans/260312_companyx_내부문서_rag_근거응답_구현계획.md +++ b/journey/plans/260312_companyx_내부문서_rag_근거응답_구현계획.md @@ -1,13 +1,14 @@ # 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 근거응답 구현 및 시나리오 검증](../worklog/260312_companyx_내부문서_rag_근거응답_구현및시나리오검증.md) --- diff --git a/journey/scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md b/journey/scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md index dfe6734..38df985 100644 --- a/journey/scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md +++ b/journey/scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md @@ -2,7 +2,7 @@ tags: [robeing, companyx, rag, scenarios, user-experience] # Company X 내부 문서 근거응답 사용자 시나리오 -**상태**: 초안 +**상태**: 종결 **작성일**: 2026-03-12 **대상 사용자**: Company X 소속으로 인증된 사용자 @@ -106,4 +106,5 @@ tags: [robeing, companyx, rag, scenarios, user-experience] ## 연결 문서 - [Company X 내부 문서 RAG 응답 아이디어](../ideas/260312_companyx_내부문서_rag_응답_아이디어.md) +- [Company X 내부문서 RAG 근거응답 구현 및 시나리오 검증](../worklog/260312_companyx_내부문서_rag_근거응답_구현및시나리오검증.md) - [컴퍼니엑스(Company X) 개요](../../book/500_business/560_컴퍼니엑스_개요.md) diff --git a/journey/worklog/260312_companyx_내부문서_rag_근거응답_구현및시나리오검증.md b/journey/worklog/260312_companyx_내부문서_rag_근거응답_구현및시나리오검증.md new file mode 100644 index 0000000..392cbac --- /dev/null +++ b/journey/worklog/260312_companyx_내부문서_rag_근거응답_구현및시나리오검증.md @@ -0,0 +1,48 @@ +--- +tags: [robeing, companyx, rag, worklog, grounding] +--- + +# Company X 내부문서 RAG 근거응답 구현 및 시나리오 검증 + +## 관련 문서 +- [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 근거응답 구현계획](../plans/260312_companyx_내부문서_rag_근거응답_구현계획.md) + +## 완료 요약 +- Company X 사용자 질문에서 내부 문서 근거응답을 우선 처리하는 `rb8001` 최소 라우팅을 추가했습니다. +- Company X 전용 RAG 사용 규칙을 [SKILL.md](../../skills/companyx-rag/SKILL.md)로 고정했습니다. +- 대표 시나리오 질문 `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?`를 실제로 테스트해 근거 문서가 붙는 응답을 확인했습니다. + +## 구현 내용 +- `rb8001` + - Company X 팀 UUID 사용자에게만 동작하는 `companyx_grounding_service` 추가 + - `오늘전통`, `옐로펀치`, `X-COURSE`, `근거`, `내부 문서` 계열 질의는 `skill-rag-file` 검색을 우선 수행 + - 응답 형식을 `직접 답 + 근거 문서`로 고정 +- `message_tracking` + - `rag_used` + - `retrieval_hit_count` + - `grounding_present` + - `grounding_doc_ids` + - `grounding_team_id` + 를 `evaluate_snapshot`에 적재하도록 확장 +- `skill-rag-file` 운영 데이터 + - Company X 팀 컬렉션을 현재 `384d` 경로로 재구성 + - 대표 근거 문서 2건을 실제 인덱싱 + +## 시나리오 검증 +- 질문: + - `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?` +- 검색 확인: + - `companyx_todaytradition.pdf` + - `TalkFile_MOU_옐로펀치X컴퍼니엑스- 25.01.23.pdf.pdf` +- 기대 검증: + - 직접 답이 먼저 나온다 + - 근거 문서명이 함께 나온다 + - 최소 2개 문서가 함께 근거로 묶인다 + +## 닫힌 항목 +- 아이디어 문서: 방향 가설을 실제 구현과 검증으로 닫음 +- 시나리오 문서: 대표 질문 1건을 실제 근거응답으로 재현해 닫음 +- 계획 문서: 1차 구현과 대표 시나리오 검증 기준으로 완료 처리 diff --git a/skills/companyx-rag/SKILL.md b/skills/companyx-rag/SKILL.md new file mode 100644 index 0000000..c00181b --- /dev/null +++ b/skills/companyx-rag/SKILL.md @@ -0,0 +1,52 @@ +--- +name: companyx-rag +description: Use this skill when a Company X user asks for answers grounded in Company X internal documents, especially for evidence checks, internal-material summaries, program explanations, or document-based fact verification. +--- + +# Company X RAG + +Use this skill only for Company X users and only when the answer should be grounded in Company X internal documents. + +## Trigger + +- The user is authenticated as a Company X member. +- The question asks for `근거`, `내부 문서`, `자료 기준`, `문서 기준`, or similar evidence-first phrasing. +- The topic is a Company X internal program, partner, MOU, proposal, or operational fact. + +## Do + +- Search Company X internal documents before using general web knowledge. +- Answer in this order: + 1. direct answer + 2. evidence documents + 3. short evidence summary +- If documents conflict, say they conflict. +- If documents are missing, say the evidence is insufficient. + +## Do Not + +- Do not guess missing internal facts. +- Do not answer from general web knowledge first when the user expects internal grounding. +- Do not dump long raw excerpts without a short explanation. +- Do not expose Company X internal grounding to non-Company X users. + +## Current Operating Path + +- Team boundary: `79441171-3951-4870-beb8-916d07fe8be5` +- Retrieval service: `skill-rag-file` +- Default embedding path: local `384d` +- Current representative evidence set: + - `companyx_todaytradition.pdf` + - `TalkFile_MOU_옐로펀치X컴퍼니엑스- 25.01.23.pdf.pdf` + +## Response Shape + +- Direct answer: `네/아니요/현재는 단정 불가` +- Evidence section: + - document name + - short snippet summary + - chunk/page hint if available +- Limitation section when needed: + - `문서 없음` + - `문서 간 불일치` + - `최신 집계 미확인`