From 60cc3841cb932945c80b8bffbaba925016e71e72 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Tue, 17 Mar 2026 16:43:35 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20skill-rag-file=20ChromaDB=E2=86=92Postg?= =?UTF-8?q?reSQL=20=EC=A0=84=ED=99=98=20=ED=95=84=EC=9A=94=20=EC=82=AC?= =?UTF-8?q?=ED=95=AD=20=EB=AA=85=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 리서치 Fact 14: skill-rag-file 문서 청크가 여전히 ChromaDB에 저장 중이며 운영 원칙(PostgreSQL 중심)과 불일치 상태임을 명시. 계획 Phase 0 표: rb8001 메모리(확정)와 skill-rag-file 청크(미완료) 저장 경로를 분리해 pgvector 전환 필요 항목으로 추가. Co-Authored-By: Claude Sonnet 4.6 --- ...x_rag_답변합성_시나리오동시종결_계획.md | 8 +++++--- ...ag_답변합성_시나리오동시종결_리서치.md | 9 +++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/journey/plans/260315_companyx_rag_답변합성_시나리오동시종결_계획.md b/journey/plans/260315_companyx_rag_답변합성_시나리오동시종결_계획.md index e52c9ea..04718da 100644 --- a/journey/plans/260315_companyx_rag_답변합성_시나리오동시종결_계획.md +++ b/journey/plans/260315_companyx_rag_답변합성_시나리오동시종결_계획.md @@ -101,15 +101,16 @@ tags: [plans, companyx, rag, answer-composition, scenario, troubleshooting] |------|------|------| | Company X RAG 임베딩 차원 | `384d` 폐기, `Gemini Embedding 2 / 768d` 확정 (0_VALUE 정책) | **확정** | | SKILL.md 전제 | `384d` → `Gemini Embedding 2 / 768d` 갱신 완료 (2026-03-17) | **확정** | -| 저장 경로 | PostgreSQL (pgvector) 중심 전환 확인 | **확정** | +| 저장 경로 (rb8001 메모리) | PostgreSQL `memory_vectors` 등 중심 전환 확인 | **확정** | +| 저장 경로 (skill-rag-file 문서 청크) | 현재 ChromaDB(`/app/chroma_db`) 저장 중. 운영 원칙(PostgreSQL 중심)과 불일치. PostgreSQL(pgvector)로 전환 필요 | **미완료** | | 청킹 리스크 | `char_per_token = 4` 한국어 과소 청킹 리스크 인지. Gemini 2 PDF 직접 임베딩은 미구현 상태로 인지하되, 이 문제 세트 스코프 밖 | **인지/보류** | -| NAS 동기화 경로 | NAS → skill-rag-file 반영 경로/시점 미확인 | **미완료** | +| NAS 동기화 경로 | NAS → skill-rag-file 반영 경로/시점 미확인. Phase 5에서 검증 후 Phase 0 표에 반영 | **미완료** | | 재오픈 질문 20개 재현 | Slack 실응답 재현 미실시 | **미완료** | - 현재 상태: - 임베딩/저장 전제는 확정됨. - NAS 동기화 경로와 질문 재현은 Phase 5에서 함께 검증. - - 청킹 구조 개선(Gemini 2 PDF 직접 임베딩, 한국어 토큰 근사값)은 별도 문제로 열지 않음. 현재 텍스트 추출 + 문자 분할 방식으로 운영하되, 리스크로 기록. + - 청킹 구조 개선(Gemini 2 PDF 직접 임베딩, 한국어 토큰 근사값)은 **별도 이슈로 분리해 추적**. 현재 텍스트 추출 + 문자 분할 방식으로 운영하되, 리스크로 기록. ### Phase 1. 구조 분리 - `companyx_grounding_service`에서 아래 책임을 분리합니다. @@ -157,6 +158,7 @@ tags: [plans, companyx, rag, answer-composition, scenario, troubleshooting] 4. `X-COURSE가 뭐야?` → 설명 + 근거 문서 5. `근거 문서명만 다시 정리해줘` → 직전 근거 목록 재정리 - **종결 worklog**: 테스트 통과 + Slack 5개 검증 완료 시 종결 worklog 작성 +- **Phase 0 갱신**: Phase 5에서 NAS 동기화 경로/시점 검증을 끝내면 Phase 0 표에 반영 - 테스트는 질문별 예외 성공이 아니라 공통 계약 준수 여부를 검증해야 합니다. - 현재 상태: **미완료** diff --git a/journey/research/260315_companyx_rag_답변합성_시나리오동시종결_리서치.md b/journey/research/260315_companyx_rag_답변합성_시나리오동시종결_리서치.md index 8354f45..9880b6a 100644 --- a/journey/research/260315_companyx_rag_답변합성_시나리오동시종결_리서치.md +++ b/journey/research/260315_companyx_rag_답변합성_시나리오동시종결_리서치.md @@ -161,9 +161,11 @@ tags: [research, companyx, rag, answer-composition, scenario, troubleshooting] ### 14. 현재 런타임 저장 구조는 PostgreSQL 중심으로 전환돼 있다 - `330_백엔드_PostgreSQL_ChromaDB_Vector_Memory.md` 상단 주석은 **2026-03-17 기준 운영 런타임이 `skill-rag-file`, `rb8001`의 핵심 벡터/검색/그래프 경로를 PostgreSQL 중심으로 전환**했다고 명시합니다. +- `rb8001` 기억 회상 핵심 경로는 이미 PostgreSQL `memory_vectors`, `memory_graph_nodes`, `memory_graph_edges` 기준으로 전환됐습니다. +- 단, **`skill-rag-file`의 문서 청크 벡터는 코드 기준으로 여전히 ChromaDB(`/app/chroma_db`)에 저장 중**입니다. 이는 운영 원칙(PostgreSQL 중심)과 불일치하는 상태입니다. - 의미: - - RAG 결과 저장/연동 경로의 현행 SSOT는 PostgreSQL 중심 전제입니다. - - Company X 문서 임베딩 전환도 PostgreSQL 저장/조회 경로를 기준으로 판단해야 합니다. + - Company X 문서 임베딩 전환 시 벡터 저장 경로도 ChromaDB → PostgreSQL(pgvector)로 함께 전환해야 합니다. + - 전환 전까지는 skill-rag-file이 ChromaDB에 저장 중임을 전제로 검증해야 합니다. ### 15. NAS 전체 PDF 기준 임베딩 시간은 약 5.2시간(추정)이다 - `/mnt/nas/workspace` 전체 PDF 파일 수는 `27,849`개, 200개 샘플 평균 페이지는 `8.05`로 측정됐습니다. @@ -231,11 +233,13 @@ tags: [research, companyx, rag, answer-composition, scenario, troubleshooting] 3. `재정리형 질문`은 이전 응답 재사용 없이 재검색함 (세션 연결 없음). 현재 스코프에서는 재검색 허용으로 운영. 4. Company X 전용 규칙은 현재 독립 모듈(`companyx_grounding_service.py`)로 유지. 범용화는 이 문제 세트 밖. 6. NAS 최신 문서 동기화본이 Company X RAG 검색 컬렉션에 언제, 어떤 방식으로 반영되는지는 아직 미확정. +7. 한국어 과소 청킹 리스크 및 `Gemini 2 PDF 직접 임베딩` 미구현은 별도 이슈로 분리해 추적할지 미확정. ## 결론 - 이 이슈의 직접 원인은 `Company X 검색 실패`가 아니라 `질문 적합 근거 선별 없는 답변 합성`입니다. - 더 근본 원인은 `질문 유형 계약 없이 일부 질문만 하드코딩 특례 처리하는 구조`입니다. - 다만 현재는 `NAS 대량 문서 운영 상태`와 `Gemini Embedding 2 전환 상태`가 겹쳐 있으므로, 다음 plan은 구현 전에 운영 전제 재검증부터 고정해야 합니다. +- PostgreSQL 저장 경로 전제는 확정됐으므로, plan에서는 이를 기준으로 재검증/테스트 항목을 정렬해야 합니다. - 그 전제가 닫힌 뒤 구현 단계에서 아래 3가지를 고정해야 합니다. 1. 질문 유형별 판정 계약 2. 검색 결과의 질문 적합도 판정 계약 @@ -249,6 +253,7 @@ tags: [research, companyx, rag, answer-composition, scenario, troubleshooting] 5. 질문별 direct answer 하드코딩 추가를 금지하고, 질문 유형별 공통 계약으로 대체할 것 6. `무관한 청크 반환`을 `실패`로 판정하는 경계를 추가할 것 7. 스킬 문서 계약과 코드 계약을 1:1로 맞출 것 +8. PostgreSQL 저장 경로 전제를 plan과 테스트 기준에 반영할 것 ## 관련 문서 - [Company X RAG 답변 합성 회귀](../troubleshooting/260312_companyx_rag_answer_composition_regression.md)