diff --git a/journey/plans/260316_임베딩_Gemini_Embedding_2_전환_계획.md b/journey/plans/260316_임베딩_Gemini_Embedding_2_전환_계획.md new file mode 100644 index 0000000..bccc173 --- /dev/null +++ b/journey/plans/260316_임베딩_Gemini_Embedding_2_전환_계획.md @@ -0,0 +1,62 @@ +--- +tags: [plans, embedding, gemini, rag, robeing] +--- + +# 임베딩 Gemini Embedding 2 전환 계획 + +## 상위 원칙 + +- [로빙 문서 작성 원칙](../../book/300_architecture/312_writing-principles.md) +- [임베딩 Gemini Embedding 2 전환 문제 오픈](../troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md) +- [Gemini Embedding 2 리서치: 비용·청킹·도입 검토](../research/rag/260315_Gemini_Embedding_2_리서치_비용_청킹_도입검토.md) + +## 상태 + +- planned + +## 목표 + +- Gemini Embedding 2를 NAS RAG·Company X RAG에 부분 도입 또는 하이브리드 적용합니다. +- 멀티모달(이미지, PDF) 직접 임베딩으로 캡셔닝 파이프라인 비용·지연을 줄입니다. +- 기존 ko-sroberta(768d)와의 품질·비용 비교 후 전환 범위를 확정합니다. + +## 범위 + +### 포함 + +- skill-embedding 또는 skill-rag-file에 Gemini Embedding 2 경로 추가 +- NAS RAG·Company X RAG의 PDF·이미지 임베딩 경로 검토 +- MRL 768d 유지 시 ChromaDB/pgvector 스키마 호환 +- 청킹 전략 Macro-chunking(2,000~4,000 토큰) 검토 + +### 제외 + +- rb8001 메모리 768/384 차원 드리프트 해결 (별도 이슈) +- skill-embedding ko-sroberta 즉시 제거 (과도기 병용 가능) + +## 적용 순서 + +1. **품질·비용 테스트** + - `rb8001/scripts/test_gemini_embedding_2.py` 확장 또는 별도 벤치마크 + - 무료 티어로 PDF·이미지 임베딩 품질 비교 +2. **경로 설계** + - skill-embedding에 Gemini 2 옵션 추가 vs skill-rag-file 내부 직접 호출 + - 하이브리드: 미디어=Gemini 2, 텍스트=ko-sroberta 또는 text-embedding-004 +3. **스키마·청킹** + - output_dimensionality=768 확정 시 기존 ChromaDB 호환 + - 청킹 단위 2,000~4,000 토큰으로 확대 검토 +4. **적용 및 검증** + - NAS RAG 또는 Company X RAG 1개 경로에 먼저 적용 + - Recall·비용 측정 후 확대 여부 결정 + +## 검증 기준 + +- PDF·이미지 직접 임베딩 시 검색 Recall이 기존(캡셔닝 파이프라인) 대비 유지 또는 개선 +- 1M 토큰 기준 비용이 예산 내 ($0.25 이하) +- 기존 768d 컬렉션과 MRL 768d 호환 + +## 레포별 경계 + +- 1차: `robeing/skill-rag-file` (Company X, NAS RAG) +- 2차: `robeing/skill-embedding` (옵션 추가 시) +- 문서: `robeing/DOCS` diff --git a/journey/plans/README.md b/journey/plans/README.md index 7d5eff7..454beb0 100644 --- a/journey/plans/README.md +++ b/journey/plans/README.md @@ -35,6 +35,11 @@ **목표**: Company X 내부문서 근거응답을 질문별 특례 처리에서 공통 계약 기반 답변합성 구조로 전환 **참고**: `plans/260315_companyx_rag_답변합성_시나리오동시종결_계획.md` +### 5. 임베딩 Gemini Embedding 2 전환 (260316) +**상태**: planned +**목표**: NAS RAG·Company X RAG에 Gemini Embedding 2 부분/하이브리드 도입, 멀티모달 직접 임베딩 +**참고**: `plans/260316_임베딩_Gemini_Embedding_2_전환_계획.md` + ## ✅ 완료된 항목 (archive 이동 완료) 1. **admin_dashboard_business_integration (251204)** - 완료 → archive 이동 diff --git a/journey/research/rag/260315_Gemini_Embedding_2_리서치_비용_청킹_도입검토.md b/journey/research/rag/260315_Gemini_Embedding_2_리서치_비용_청킹_도입검토.md index 9315bda..f3c3fe9 100644 --- a/journey/research/rag/260315_Gemini_Embedding_2_리서치_비용_청킹_도입검토.md +++ b/journey/research/rag/260315_Gemini_Embedding_2_리서치_비용_청킹_도입검토.md @@ -123,3 +123,8 @@ print(response.embeddings[0].values) - RAG 활용: RETRIEVAL_QUERY vs RETRIEVAL_DOCUMENT 태스크 타입 구분 시 검색 정확도 향상 - 관련: `251110_gemini_file_search_api_테스트_및_콜드메일_개선방안_평가.md` + +## 7. 후속 문서 + +- [임베딩 Gemini Embedding 2 전환 문제 오픈](../../troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md) +- [임베딩 Gemini Embedding 2 전환 계획](../../plans/260316_임베딩_Gemini_Embedding_2_전환_계획.md) diff --git a/journey/troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md b/journey/troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md new file mode 100644 index 0000000..e40b427 --- /dev/null +++ b/journey/troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md @@ -0,0 +1,59 @@ +--- +tags: [troubleshooting, embedding, gemini, rag, robeing] +--- + +# 임베딩 Gemini Embedding 2 전환 문제 오픈 + +## 상위 원칙 + +- [로빙 문서 작성 원칙](../../book/300_architecture/312_writing-principles.md) +- [백엔드 PostgreSQL ChromaDB Vector Memory](../../book/300_architecture/330_백엔드_PostgreSQL_ChromaDB_Vector_Memory.md) + +## 문제 정의 + +- 로빙의 임베딩은 현재 `skill-embedding`(ko-sroberta 768d)과 서비스별 혼재 경로를 사용합니다. +- 멀티모달(이미지, PDF, 오디오) 데이터는 캡셔닝 파이프라인 없이 직접 임베딩할 수 없습니다. +- 리서치(260315)에서 Gemini Embedding 2 도입이 NAS RAG·Company X에 유리하다고 정리했으나, 실행 계획과 문제 문서가 없어 전환 여부가 미결정 상태입니다. + +## 현재 상태 + +| 항목 | 내용 | +|------|------| +| skill-embedding | ko-sroberta(multitask) 768d, 텍스트 전용 | +| rb8001 메모리 | ChromaDB 768/384 차원 드리프트 잔존 | +| skill-rag-file | Company X 384d, intent_prototypes pgvector 768d | +| 멀티모달 | 미지원 (이미지·PDF는 텍스트 추출 후 임베딩) | +| 청킹 | Micro-chunking(300~500 단어) 위주 | + +## 기대 상태 + +| 항목 | 내용 | +|------|------| +| 임베딩 모델 | Gemini Embedding 2 (또는 하이브리드) 도입 | +| 멀티모달 | PDF·이미지 직접 임베딩 가능 (캡셔닝 파이프라인 생략) | +| 차원 | MRL로 768d 유지 또는 1536/3072 선택 | +| 청킹 | Macro-chunking(2,000~4,000 토큰) 전환 검토 | +| 비용 | 무료 티어·품질 비교 후 부분/하이브리드 적용 | + +## 관련 문서 + +- [Gemini Embedding 2 리서치: 비용·청킹·도입 검토](../research/rag/260315_Gemini_Embedding_2_리서치_비용_청킹_도입검토.md) +- [rb8001 메모리 ChromaDB 768/384 차원 드리프트](./260312_rb8001_memory_chromadb_768_384_dimension_drift.md) +- [skill-embedding 서비스 구축](./250805_happybell80_skill-embedding서비스구축.md) + +## 재현 조건 + +- NAS RAG, Company X RAG, rb8001 메모리에서 임베딩 품질·비용·멀티모달 요구가 생길 때 +- PDF·이미지 기반 검색 품질 개선이 필요할 때 + +## 확인된 사실 + +- 리서치(260315)에서 Gemini Embedding 2 특징·비용·청킹 전략이 정리됨 +- NAS RAG에 부분 도입, 하이브리드(미디어=Gemini 2, 텍스트=저렴) 권장 +- `rb8001/scripts/test_gemini_embedding_2.py`로 API 테스트 스크립트 존재 + +## 미확정 항목 + +- skill-embedding 교체 vs Gemini API 직접 호출 병용 +- ChromaDB/pgvector 스키마 차원(768/1536/3072) 확정 +- 비용·품질 A/B 테스트 범위 및 기준 diff --git a/journey/troubleshooting/README.md b/journey/troubleshooting/README.md index 5b409bd..6c3432b 100644 --- a/journey/troubleshooting/README.md +++ b/journey/troubleshooting/README.md @@ -31,6 +31,8 @@ ## 현재 열린 트러블슈팅 우선 문서 +- [260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md](./260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md) + - 상태: 열림 - [260311_naverworks_briefing_insight_preamble_leak.md](./260311_naverworks_briefing_insight_preamble_leak.md) - 상태: 열림 - [260311_prompt_db_partial_adoption_and_hardcoded_prompts.md](./260311_prompt_db_partial_adoption_and_hardcoded_prompts.md)