diff --git a/journey/research/rag/260316_임베딩_전체프로젝트_현황_및_SSOT_리서치.md b/journey/research/rag/260316_임베딩_전체프로젝트_현황_및_SSOT_리서치.md index 62d1a91..d078753 100644 --- a/journey/research/rag/260316_임베딩_전체프로젝트_현황_및_SSOT_리서치.md +++ b/journey/research/rag/260316_임베딩_전체프로젝트_현황_및_SSOT_리서치.md @@ -35,10 +35,22 @@ tags: [research, embedding, ssot, robeing, starsandi, goosecouncil, workspace] | 구성요소 | 모델/경로 | 차원 | 비고 | |----------|-----------|------|------| -| recommend.py | OpenAI text-embedding-3-small | 1536 | 직접 API 호출 | +| recommend.py | OpenAI text-embedding-3-small | 1536 | 사용자 발화 임베딩, 직접 API 호출 | +| 카탈로그 임베딩 | `candidates_merged_projection_embeddings_v1.json` | 1536 | 5044개 별, 153MB, .gitignore | +| add_star_embeddings.py | OpenAI text-embedding-3-small | 1536 | 카탈로그 임베딩 생성 스크립트 | -**경로**: `StarsAndI/apps/apps/api-py/app/services/recommend.py` -**엔드포인트**: `https://api.openai.com/v1/embeddings` +**용도**: 별 추천. 사용자 발화 임베딩 ↔ 카탈로그 임베딩 cosine 유사도 → 티어별 상위 K개 → LLM 최종 선택. + +**경로**: +- `StarsAndI/apps/apps/api-py/app/services/recommend.py` (`_embed_text`, `_top_k_by_embedding`, `len(emb)==1536` 하드코딩) +- `StarsAndI/DATA/scripts/add_star_embeddings.py` +- `StarsAndI/DATA/prompts/recommend/manifest_v1.json` → `candidate_projection_embeddings` +- `StarsAndI/apps/apps/api-py/scripts/time_recommend_stages.py`, `time_recommend_tiers.py` + +**0_VALUE 전환 시**: +- `_embed_text()` → Gemini API 또는 skill-embedding 호출, `len(emb)==768` 변경 +- `add_star_embeddings.py` → Gemini 2로 변경, 카탈로그 5044개 전체 재임베딩 +- 카탈로그 JSON 153MB 재생성 필요 ### 2.3 TheGooseCouncil @@ -94,8 +106,13 @@ tags: [research, embedding, ssot, robeing, starsandi, goosecouncil, workspace] | 레포/서비스 | 파일/경로 | 영향 내용 | |-------------|-----------|-----------| -| StarsAndI | `apps/apps/api-py/app/services/recommend.py` | OpenAI → Gemini 또는 skill-embedding 호출 | +| StarsAndI | `apps/apps/api-py/app/services/recommend.py` | `_embed_text()` Gemini/skill-embedding 호출, `len(emb)==768` 변경 | +| StarsAndI | `DATA/scripts/add_star_embeddings.py` | 카탈로그 임베딩 생성 → Gemini 2로 전환 | +| StarsAndI | `DATA/prompts/recommend/candidates_merged_projection_embeddings_v1.json` | 5044개 768d로 재생성 (153MB) | +| StarsAndI | `apps/apps/api-py/scripts/time_recommend_stages.py` | `_embed_text`, `_top_k_by_embedding` 사용 | +| StarsAndI | `apps/apps/api-py/scripts/time_recommend_tiers.py` | 동일 | | StarsAndI | `apps/apps/api-py/app/repositories/usage_repository.py` | EMBEDDING_WHERE (로깅, 선택적) | +| StarsAndI | `DOCS/03_Architecture/Recommend_Pipeline.md` | 임베딩 카탈로그 153MB, add_star_embeddings 문서 | ### 3.3 TheGooseCouncil @@ -171,7 +188,8 @@ tags: [research, embedding, ssot, robeing, starsandi, goosecouncil, workspace] - robeing skill-embedding은 ko-sroberta 768d, 포트 8515 - skill-rag-file은 `EMBEDDING_SERVICE_URL`로 skill-embedding 호출 -- StarsAndI, TheGooseCouncil는 OpenAI text-embedding-3-small 직접 호출 +- StarsAndI는 OpenAI text-embedding-3-small (사용자 발화 + 카탈로그 5044개), 1536d, `add_star_embeddings.py`로 카탈로그 생성 +- TheGooseCouncil는 OpenAI text-embedding-3-small 직접 호출 - 0_VALUE 임베딩 정책은 Gemini 2, 768d, 전수 교체, 멀티모달로 확정 - workspace-config에는 현재 임베딩 관련 키 없음 @@ -181,7 +199,8 @@ tags: [research, embedding, ssot, robeing, starsandi, goosecouncil, workspace] - 전수 교체 시 robeing뿐 아니라 StarsAndI, TheGooseCouncil도 변경 대상 - 공용 skill-embedding이 Gemini 2로 전환되면, skill-rag-file·rb8001은 URL만 유지하고 모델은 자동 반영 -- StarsAndI·TheGooseCouncil는 API 경로 변경(OpenAI → Gemini 또는 skill-embedding) 필요 +- StarsAndI는 API 경로 변경 + 카탈로그 5044개 전체 재임베딩 필요 (153MB JSON 재생성) +- TheGooseCouncil는 API 경로 변경(OpenAI → Gemini 또는 skill-embedding) 필요 --- @@ -189,6 +208,7 @@ tags: [research, embedding, ssot, robeing, starsandi, goosecouncil, workspace] - workspace-config에 임베딩 키를 넣을지, 프로젝트별 .env만 유지할지 - StarsAndI·TheGooseCouncil 전환 우선순위 및 일정 +- StarsAndI 카탈로그 재임베딩 비용 (5044 × 평균 토큰 × $0.25/1M) - goosefarminvesting pgvector 용도 (임베딩 vs 공간 데이터) --- diff --git a/journey/troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md b/journey/troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md index 28831f7..2550027 100644 --- a/journey/troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md +++ b/journey/troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md @@ -53,7 +53,7 @@ tags: [troubleshooting, embedding, gemini, rag, robeing] **robeing**: skill-embedding(전체, /embed), skill-rag-file(embedding.py, upload.py, config), rb8001(memory_manager, intent_store, database.py, docker-compose), ChromaDB 컬렉션, intent_prototypes pgvector, migrate_chromadb_collections.py, DOCS/skills/companyx-rag, 330_백엔드 설계 문서 -**StarsAndI**: recommend.py, usage_repository.py +**StarsAndI**: recommend.py, add_star_embeddings.py, 카탈로그 5044개 재임베딩(153MB), time_recommend_*.py, usage_repository.py **TheGooseCouncil**: calibrate_value_model.py, test_value_state_decision.py, .env.local