diff --git a/journey/research/260312_companyx_내부문서_rag_근거응답_현황_리서치.md b/journey/research/260312_companyx_내부문서_rag_근거응답_현황_리서치.md new file mode 100644 index 0000000..ef2c7da --- /dev/null +++ b/journey/research/260312_companyx_내부문서_rag_근거응답_현황_리서치.md @@ -0,0 +1,182 @@ +tags: [robeing, companyx, rag, research, internal-documents, grounding] + +# 260312 Company X 내부문서 RAG 근거응답 현황 리서치 + +## 상위 원칙 +- [Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) +- [Company X 내부 문서 RAG 응답 아이디어](../ideas/260312_companyx_내부문서_rag_응답_아이디어.md) +- [Company X 내부 문서 근거응답 사용자 시나리오](../scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md) + +## 목적 +- Company X 소속 사용자가 `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?`라고 물었을 때, + 현재 실제 로빙이 어떤 답을 하는지 확인한다. +- 현재 로빙이 Company X 내부 NAS 문서를 근거로 답할 수 있는 구조인지 확인한다. +- NAS 원본에는 실제 근거가 있는지 확인해, 문제를 `근거 부재`와 `근거 연결 부재`로 구분한다. +- 이 문서 하나로 기존 `ideas`와 `scenarios`를 `plans`로 넘길 수 있는 사실 기준을 고정한다. + +## 조사 범위 +- 런타임 서비스: `rb8001`, `skill-rag-file` +- 저장 상태: `team_document`, Chroma 컬렉션 검색 결과 +- 원본 데이터: 내부 NAS `/mnt/nas/workspace/6.Company X` +- 대표 질문: `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?` + +## Facts + +### 1. 현재 실제 로빙 답변은 내부 문서 근거답변이 아니다 + +- 2026-03-12 21:24 KST 기준 `rb8001` 테스트 엔드포인트에 대표 질문을 직접 넣어 확인했다. +- 호출 경로: + - `POST /api/test/router-message` +- 입력: + - `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?` +- 실제 응답: + +```json +{ + "user_id": "53529291-5050-4daa-89fb-008b546feb63", + "user_message": "오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?", + "bot_response": "CTO님, Company X가 옐로펀치와 함께 전통 프로그램을 운영한다는 근거를 찾아보겠습니다. 관련 정보를 확인해 보고 말씀드리겠습니다.", + "intent": null, + "skill_sequence": null, + "status": "success" +} +``` + +- 이 응답은 문서명, 문단 요약, 파일 위치를 전혀 제시하지 않는다. +- 즉 현재 시나리오가 기대하는 `직접 답변 + 근거 문서` 형식과 다르다. + +### 2. 현재 질문은 라우터에서 `UNKNOWN`으로 떨어지고 내부 문서 검색으로 연결되지 않는다 + +- 같은 시각 `rb8001` 로그에서 아래 사실을 확인했다. + - DecisionEngine이 해당 질문에 대해 `의도 매칭 실패 - UNKNOWN`을 기록했다. + - 이후 응답은 내부 LLM 경로로 생성됐다. +- 확인된 로그 핵심: + - `Loaded 0 recent conversations` + - `[DecisionEngine] 의도 매칭 실패 - UNKNOWN으로 처리` + - 이후 Gemini 호출 발생 +- 따라서 현재 로빙은 이 질문을 `Company X 내부 문서 근거 확인` 작업으로 해석하지 못한다. + +### 3. 현재 `skill-rag-file` 인덱스에는 관련 Company X 문서가 없다 + +- `skill-rag-file` DB(`team_document`)를 직접 확인한 결과 총 문서 수는 `136`건이었다. +- 최근 적재 문서들은 `/mnt/51123data/documents/...` 또는 `/mnt/nas/documents/...` 아래의 일반 업로드 문서였고, 대표 예시는 아래와 같았다. + - `06_릴라이 와이어프레임.pdf` + - `01_후인터 사업계획서 ppt버전.pdf` + - `에이징랩(주)_IR_20260309_v1.pdf` +- 같은 DB에서 아래 조건으로 조회했을 때 결과가 `0건`이었다. + - `filename ilike '%오늘전통%'` + - `filename ilike '%옐로%'` + - `storage_path ilike '%오늘전통%'` + - `storage_path ilike '%옐로%'` +- 따라서 현재 RAG 인덱스에는 적어도 `오늘전통`, `옐로펀치` 관련 Company X 문서가 들어가 있지 않다. + +### 4. 현재 `skill-rag-file` 검색으로도 관련 결과를 찾지 못했다 + +- `skill-rag-file` 검색 API에 대표 질문을 그대로 넣어 테스트했다. +- 호출 경로: + - `POST /api/search` +- 사용한 team 식별자는 테스트 사용자 UUID였고, 결과는 아래와 같았다. + +```json +{ + "query": "오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거", + "results": [], + "total_results": 0 +} +``` + +- 위 결과만으로 `모든 team_id에서 절대 검색 불가`를 단정할 수는 없다. +- 그러나 바로 위 3번 사실 때문에, 현재 인덱스 DB 전체에 관련 문서가 없다는 점은 별도로 확인됐다. + +### 5. 내부 NAS 원본에는 질문과 직접 관련된 근거 문서가 실제로 존재한다 + +- 내부 NAS에서 `오늘전통`, `옐로펀치` 키워드로 파일명을 조사한 결과 관련 문서가 다수 존재했다. +- 대표 경로 예시: + - `/mnt/nas/workspace/6.Company X/2. 신규운영사 및 펀드 운용사, 용역 프로그램 제안 등/2025년/05. [한국공예·디자인문화진흥원] 오늘전통 5기 초기창업기업 창업기획자(액셀러레이터) 공모/01. 제출서류/01. 사업계획서_컴퍼니엑스.pdf` + - `/mnt/nas/workspace/6.Company X/10. MOU&인증/옐로펀치/TalkFile_MOU_옐로펀치X컴퍼니엑스- 25.01.23.pdf.pdf` + +### 6. `오늘전통 5기 사업계획서`에는 옐로펀치가 협력기관으로 명시돼 있다 + +- 위 `사업계획서_컴퍼니엑스.pdf`를 텍스트 추출해 확인했다. +- 확인된 핵심 구절: + - `프렉클컴퍼니, 스몰브랜더, 옐로펀치 등 브랜드 기업의 성장 지원이 가능한 외부 협력체계를 기반으로` + - `㈜옐로펀치` + - `공동 및 후속투자` +- 해석상 이 문서는 최소한 `오늘전통 사업계획서 안에서 옐로펀치가 Company X의 대외 협력체계/협력기관 중 하나로 제시된다`는 근거가 된다. + +### 7. `옐로펀치X컴퍼니엑스 MOU`에는 공동 컨소시엄 협력과 프로그램 운영 참여가 명시돼 있다 + +- `TalkFile_MOU_옐로펀치X컴퍼니엑스- 25.01.23.pdf.pdf`를 텍스트 추출해 확인했다. +- 확인된 핵심 구절: + - `주식회사옐로펀치와 주식회사컴퍼니엑스는 우수 창업기업 발굴, 투자·육성 업무 활성화를 위해 아래의 협약을 체결` + - `교육, 멘토링, 세미나, IR 등 기업 육성 프로그램 운영 참여` + - `예비창업자 및 초기 창업기업 대상 지원사업 공동 컨소시엄 협력` +- 이 문서는 `Company X와 옐로펀치 간 공식 협력 관계`를 뒷받침한다. + +### 8. 따라서 현재 문제는 `근거 없음`이 아니라 `근거 연결 부재`다 + +- NAS 원본에는 관련 근거가 있다. +- 그러나 현재 로빙 런타임은 이 질문을 문서 근거 확인으로 해석하지 못한다. +- 또한 관련 원본 문서가 `skill-rag-file` 인덱스에 들어가 있지 않다. +- 즉 현재 실패 원인은 `Company X 문서가 실제로 없어서`가 아니라, `있지만 로빙 답변 경로와 연결되지 않아서`다. + +## Interpretation + +### 1. 아이디어 문서는 유효한 가설이다 + +- `Company X 내부 문서를 우선 근거로 삼아 답하는 로빙`이라는 아이디어는 헛가설이 아니다. +- 실제 NAS에는 답변 근거가 될 문서가 있고, 그 문서에는 질문과 관련된 표현도 존재한다. +- 따라서 이 아이디어는 `근거를 만들자`가 아니라 `이미 있는 근거를 로빙 답변 경로에 연결하자`로 해석하는 것이 맞다. + +### 2. 시나리오 문서의 현재/기대 대비도 실제 상태와 맞는다 + +- 현재 실제 응답은 `찾아보겠습니다` 수준의 일반 답변이다. +- 기대 시나리오는 `직접 답변 + 근거 문서 + 문단 요약 + 위치 정보`다. +- 이번 조사 결과는 시나리오 문서가 상상적 요구가 아니라, 실제 현재 상태와 분명히 대비되는 목표 상태임을 확인한다. + +### 3. 다음 단계의 핵심은 RAG 품질보다 먼저 `색인 경로 + 질문 해석 경로`다 + +- 지금 부족한 것은 답변 문체가 아니라 연결 구조다. +- 최소한 아래 두 경로가 동시에 생겨야 한다. + - NAS 원본 -> Company X 전용 RAG 인덱스 + - Company X 질문 -> Company X 전용 문서 검색 의도/실행 경로 +- 둘 중 하나라도 빠지면 기대 시나리오는 닫히지 않는다. + +### 4. `오늘전통 공동 운영` 답변은 문서 충돌/표현 차이까지 다뤄야 한다 + +- 사업계획서에는 `협력기관`, `외부 협력체계` 표현이 있고, MOU에는 `프로그램 운영 참여`, `공동 컨소시엄 협력` 표현이 있다. +- 따라서 미래 로빙은 무조건 `같이 운영한다`고 단정하기보다, + - `오늘전통 사업계획서에서 옐로펀치가 협력기관으로 제시된다` + - `Company X-옐로펀치 MOU에는 프로그램 운영 참여와 공동 컨소시엄 협력이 명시된다` + - `문서 표현은 공동 운영/협력 운영/협력기관으로 조금씩 다르다` + 를 함께 답하는 편이 더 정확하다. + +## Unresolved + +1. Company X 소속 사용자 판별 기준 +- 어떤 인증 신호로 `Company X 내부 문서 검색 허용 사용자`를 확정할지 아직 정해지지 않았다. + +2. Company X 문서의 색인 단위 +- 원본 PDF/DOC/HWP를 그대로 청킹할지, 사람이 읽기 쉬운 중간 RAG 포맷으로 정제할지 아직 미정이다. + +3. Company X 전용 team/collection 경계 +- 현재 `skill-rag-file`은 `team_id` 기반 컬렉션 구조를 쓴다. +- Company X 내부 문서를 어떤 식별자와 어떤 권한 경계로 넣을지 아직 고정되지 않았다. + +4. 답변 근거 노출 수준 +- 문서명, 문단 요약, 파일 경로, 페이지 위치 중 어디까지 사용자에게 노출할지 아직 정해지지 않았다. + +5. 질문 해석 규칙 +- `근거 있어?`, `자료 기준으로`, `내부 문서 기준으로` 같은 표현을 별도 의도로 볼지, 일반 질문에 Company X 컨텍스트를 자동 적용할지 아직 미정이다. + +## 현재 결론 + +- 대표 질문에 대한 현재 실제 로빙 답변은 기대 시나리오를 만족하지 못한다. +- 그러나 내부 NAS 원본에는 관련 근거 문서가 실제로 존재한다. +- 현재 실패 원인은 `Company X 근거 없음`이 아니라 `Company X 근거 문서가 런타임 RAG 경로와 연결되지 않음`이다. +- 따라서 다음 단계 `plans`는 `문서 색인`, `권한 경계`, `질문 해석`, `근거답변 형식`을 한 번에 고정하는 계획 문서여야 한다. + +## 관련 문서 +- [Company X 내부 문서 RAG 응답 아이디어](../ideas/260312_companyx_내부문서_rag_응답_아이디어.md) +- [Company X 내부 문서 근거응답 사용자 시나리오](../scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md) +- [컴퍼니엑스(Company X) 개요](../../book/500_business/560_컴퍼니엑스_개요.md)