docs: 청킹-임베딩 전제 불일치 미완료 항목 추가
Gemini Embedding 2 전환 후에도 skill-rag-file 청킹 로직(char_per_token=4, 영어 기준 고정값)이 그대로이며, PDF 직접 임베딩 경로가 미구현 상태임을 미완료 항목에 명시. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
45f6ddf79e
commit
28d722d543
@ -14,6 +14,12 @@ tags: [research, companyx, rag, answer-composition, scenario, troubleshooting]
|
||||
- 현재 실패가 `검색 인프라 문제`인지, `답변 합성 문제`인지, `질문별 하드코딩 구조 문제`인지 단일 경로로 좁힙니다.
|
||||
- 이 문서는 해결안 확장보다 `다음 plan 1건`을 만들 수 있을 정도로 직접 원인을 확정하는 데만 집중합니다.
|
||||
|
||||
## 연결 구조
|
||||
- 같은 레벨 입력: `ideas/260312_companyx_내부문서_rag_응답_아이디어.md`, `scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md`
|
||||
- 단일 리서치: 본 문서 1개
|
||||
- 단일 플랜: `plans/260315_companyx_rag_답변합성_시나리오동시종결_계획.md` 1개
|
||||
- 닫힘 흐름: 플랜 완료 기준 충족 시 시나리오/트러블과 함께 닫힘 선언 (아이디어 문서는 종결 상태 유지)
|
||||
|
||||
## 조사 질문
|
||||
1. 현재 실패의 직접 레이어는 검색인가, 답변 합성인가
|
||||
2. `컴퍼니엑스의 투자사는 몇개야?`, `내부 규정 상 휴가는 얼마나 쓸 수 있어?`가 왜 깨지는가
|
||||
@ -23,7 +29,7 @@ tags: [research, companyx, rag, answer-composition, scenario, troubleshooting]
|
||||
## 범위 / 비범위
|
||||
- 범위:
|
||||
- `rb8001`의 Company X grounding 진입/검색/응답 합성 경로
|
||||
- 재오픈 기준 질문 3개에 대한 처리 구조
|
||||
- 재오픈 기준 질문 20개에 대한 처리 구조
|
||||
- 프롬프트/if 분기/질문 적합도 선별 구조
|
||||
- 비범위:
|
||||
- Company X 전체 문서셋 확대 작업
|
||||
@ -116,7 +122,7 @@ tags: [research, companyx, rag, answer-composition, scenario, troubleshooting]
|
||||
- 대표 근거 문서셋도 이미 worklog에 남아 있습니다.
|
||||
- 관련 문서:
|
||||
- [Company X 내부문서 RAG 근거응답 1차 구현 및 부분 검증](../worklog/260312_companyx_내부문서_rag_근거응답_구현및시나리오검증.md)
|
||||
- 반면 재오픈 질문 2개는
|
||||
- 반면 재오픈 질문 다수는
|
||||
- 전용 query expansion이 없고
|
||||
- 질문 유형 분기 규칙도 없고
|
||||
- generic fallback 문장으로 마감됩니다.
|
||||
@ -138,7 +144,7 @@ tags: [research, companyx, rag, answer-composition, scenario, troubleshooting]
|
||||
- `51123` 기준 점검에서 `/mnt/nas/workspace/6.Company X` 아래 실파일은 `53,249`개였고, fullscan 최신 summary는 `2026-03-17 01:23:10+09:00`, hierarchical 최신 summary는 `2026-03-17 11:00:06+09:00`까지 누적돼 있습니다.
|
||||
- 의미:
|
||||
- 지금 Company X RAG는 적은 대표 문서 몇 개만의 문제가 아니라, NAS에서 계속 동기화되는 대량 문서셋 위에서 동작해야 합니다.
|
||||
- 따라서 대표 질문 2~3개만 통과하는 특례 구조로는 운영 상태를 닫을 수 없습니다.
|
||||
- 따라서 대표 질문 일부만 통과하는 특례 구조로는 운영 상태를 닫을 수 없습니다.
|
||||
|
||||
### 12. Company X RAG의 임베딩 전제가 문서끼리 일치하지 않는다
|
||||
- `DOCS/skills/companyx-rag/SKILL.md`는 `Default embedding path: local 384d`로 적고 있습니다.
|
||||
@ -151,7 +157,35 @@ tags: [research, companyx, rag, answer-composition, scenario, troubleshooting]
|
||||
- 2026-03-15 리서치는 답변합성 구조 문제를 정확히 짚었지만, 그 이후 열린 `Gemini Embedding 2` 전환 문제와 NAS 대량 문서 운영 상태까지는 반영하지 못했습니다.
|
||||
- 의미:
|
||||
- 지금 필요한 다음 단계는 `새 리서치 전체 재작성`이 아니라,
|
||||
- `현재 NAS 문서량`, `현재 컬렉션 차원`, `현재 재임베딩 여부`, `현재 대표 질문 재현 상태`를 다시 확인하는 짧은 갱신 리서치입니다.
|
||||
- `현재 NAS 문서량`, `현재 컬렉션 차원`, `현재 재임베딩 여부`, `현재 재오픈 질문셋(20개) 재현 상태`를 다시 확인하는 짧은 갱신 리서치입니다.
|
||||
|
||||
### 14. 현재 런타임 저장 구조는 PostgreSQL 중심으로 전환돼 있다
|
||||
- `330_백엔드_PostgreSQL_ChromaDB_Vector_Memory.md` 상단 주석은 **2026-03-17 기준 운영 런타임이 `skill-rag-file`, `rb8001`의 핵심 벡터/검색/그래프 경로를 PostgreSQL 중심으로 전환**했다고 명시합니다.
|
||||
- 의미:
|
||||
- RAG 결과 저장/연동 경로의 현행 SSOT는 PostgreSQL 중심 전제입니다.
|
||||
- Company X 문서 임베딩 전환도 PostgreSQL 저장/조회 경로를 기준으로 판단해야 합니다.
|
||||
|
||||
### 15. NAS 전체 PDF 기준 임베딩 시간은 약 5.2시간(추정)이다
|
||||
- `/mnt/nas/workspace` 전체 PDF 파일 수는 `27,849`개, 200개 샘플 평균 페이지는 `8.05`로 측정됐습니다.
|
||||
- 100페이지 임베딩 벤치마크(768d, Gemini 2)에서 총 요청 시간은 `8.2768s`였고, 이를 페이지 단위로 환산하면 `0.0828s/페이지`입니다.
|
||||
- 위 수치를 곱산하면 전체 PDF 예상 페이지는 약 `224,184`페이지, 임베딩 요청 시간은 약 `5.15시간`입니다.
|
||||
- 의미:
|
||||
- 이 값은 **PDF 기준 단순 추정치**이며, 비PDF 파일/추가 전처리/네트워크 부하/실패 재시도는 포함하지 않습니다.
|
||||
|
||||
### 16. Go 전환이 “시간 단축”을 보장하지는 않으며, 확인된 이점은 제한적이다
|
||||
- 내부 NAS Go 동기화 리서치의 1분 벤치마크(23 서버, DSM 목록 조회 루프)에서 Go는 Python 대비 **총 사이클 +5~6%**, 목록 조회는 더 빠르지만 로그인은 차이가 작았습니다.
|
||||
- 해석:
|
||||
- Go 전환의 효과는 **작업 유형에 따라 제한적**이며, “무조건 큰 폭의 시간 단축”이라고 단정할 수 없습니다.
|
||||
- 따라서 임베딩/인덱싱 파이프라인에도 **A/B 실측 없이 Go 전환 효과를 가정하지 않습니다**.
|
||||
- 근거 문서:
|
||||
- https://git.ro-being.com/ivada-infra/DOCS/src/branch/main/journey/research/260313_internal_nas_direct_go_sync_feasibility_research.md
|
||||
|
||||
### 17. 현재 청킹은 한국어 기준 과소 청크를 만들 가능성이 높다
|
||||
- `skill-rag-file/app/services/chunking.py`는 `char_per_token = 4`로 고정하고, `max_tokens * char_per_token`로 청크 크기를 계산합니다.
|
||||
- 이 값은 **영어 기준 근사**이며, 한국어는 통상 `1~2자 ≈ 1토큰` 범위로 알려져 있어 현재 방식이면 **실제보다 작은 청크**가 생성될 가능성이 큽니다.
|
||||
- 의미:
|
||||
- 한국어 문서가 많은 Company X 경로에서는 과도한 청킹으로 **검색 품질/비용/속도**에 영향을 줄 수 있습니다.
|
||||
- Gemini Embedding 2 전환 여부와 별개로 **청킹 근사값 자체가 리스크**로 남아 있습니다.
|
||||
|
||||
## 해석(Interpretation)
|
||||
|
||||
@ -206,7 +240,7 @@ tags: [research, companyx, rag, answer-composition, scenario, troubleshooting]
|
||||
## 다음 plan이 반드시 고정해야 할 항목
|
||||
1. 현재 Company X RAG의 실제 임베딩 경로와 컬렉션 차원(`384d`/`768d`)을 먼저 재검증할 것
|
||||
2. NAS 최신 문서 동기화본이 현재 검색 컬렉션에 언제 반영되는지 확인할 것
|
||||
3. 재오픈 기준 질문 3개를 현재 운영 상태에서 다시 재현해 `검색 실패 / 무관한 hit / 답변 합성 실패`를 분리할 것
|
||||
3. 재오픈 기준 질문 20개를 현재 운영 상태에서 다시 재현해 `검색 실패 / 무관한 hit / 답변 합성 실패`를 분리할 것
|
||||
4. `success`의 정의를 `검색 hit 존재`가 아니라 `직접 답 + 질문 적합 근거 또는 명시적 부족 안내`로 바꿀 것
|
||||
5. 질문별 direct answer 하드코딩 추가를 금지하고, 질문 유형별 공통 계약으로 대체할 것
|
||||
6. `무관한 청크 반환`을 `실패`로 판정하는 경계를 추가할 것
|
||||
@ -214,6 +248,7 @@ tags: [research, companyx, rag, answer-composition, scenario, troubleshooting]
|
||||
|
||||
## 관련 문서
|
||||
- [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 내부문서 RAG 근거응답 현황 리서치](./260312_companyx_내부문서_rag_근거응답_현황_리서치.md)
|
||||
- [Company X RAG 답변합성 시나리오·트러블 동시종결 계획](../plans/260315_companyx_rag_답변합성_시나리오동시종결_계획.md)
|
||||
@ -259,8 +294,9 @@ tags: [research, companyx, rag, answer-composition, scenario, troubleshooting]
|
||||
|
||||
### 미완료 항목 (코드 기준)
|
||||
|
||||
- Phase 5 테스트 고정 미완료: 재오픈 기준 질문 3개에 대한 자동화 테스트 없음
|
||||
- Slack 실응답 검증 미완료: 코드는 구현됐으나 실제 Slack에서 재오픈 질문 3개 통과 여부 미확인
|
||||
- Phase 5 테스트 고정 미완료: 재오픈 기준 질문 20개에 대한 자동화 테스트 없음
|
||||
- Slack 실응답 검증 미완료: 코드는 구현됐으나 실제 Slack에서 재오픈 질문 20개 통과 여부 미확인
|
||||
- 종결 worklog 미존재: 트러블슈팅 문서가 참조하는 `260315_companyx_정확표기_slack_근거응답_경로종결.md` 파일 없음
|
||||
- **청킹-임베딩 전제 불일치 미해결**: `skill-rag-file`의 청킹 로직(`char_per_token = 4`, 영어 기준 고정값)은 Gemini Embedding 2 전환 이후에도 그대로입니다. PDF는 여전히 `pdftotext/PyPDF2`로 텍스트 추출 후 문자 단위 분할하며, Gemini Embedding 2의 PDF 직접 임베딩(6페이지 단위) 경로는 미구현 상태입니다. 임베딩 모델은 교체됐지만 문서를 잘라서 넣는 방식은 구형 그대로인 전제 불일치가 남아 있습니다.
|
||||
|
||||
상세: [260317_companyx_grounding_코드검토_및_문서현행화](../worklog/260317_companyx_grounding_코드검토_및_문서현행화.md)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user