From d3e67ce517faaf7df1af2e6a55bab510f43e1757 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Mon, 16 Mar 2026 13:36:11 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EC=9E=84=EB=B2=A0=EB=94=A9=20env=20SSO?= =?UTF-8?q?T=20=EB=AC=B8=EC=84=9C=20=EB=B0=98=EC=98=81,=201=EC=B0=A8=20?= =?UTF-8?q?=EB=AC=B8=EC=84=9C=20=EB=B3=B4=EA=B0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made-with: Cursor --- ...베딩_1차_로빙_Gemini2_전환_계획.md | 4 ++++ ...베딩_1차_로빙_현황_SSOT_리서치.md | 16 +++++++++++----- ...프로젝트_현황_및_SSOT_리서치.md | 18 +++++++++--------- ..._1차_로빙_Gemini2_전환_문제오픈.md | 1 + ..._Gemini_Embedding_2_전환_문제오픈.md | 2 +- 5 files changed, 26 insertions(+), 15 deletions(-) diff --git a/journey/plans/260316_임베딩_1차_로빙_Gemini2_전환_계획.md b/journey/plans/260316_임베딩_1차_로빙_Gemini2_전환_계획.md index 019789d..a9baee7 100644 --- a/journey/plans/260316_임베딩_1차_로빙_Gemini2_전환_계획.md +++ b/journey/plans/260316_임베딩_1차_로빙_Gemini2_전환_계획.md @@ -34,6 +34,10 @@ tags: [plans, embedding, gemini, rag, robeing, 1차] - rb8001 메모리 768/384 차원 드리프트 (별도 이슈) - StarsAndI, TheGooseCouncil (2차 플랜) +## env SSOT + +- `workspace-config/runtime.env`: `EMBEDDING_SERVICE_URL`, `EMBEDDING_DIM` — [0_VALUE embedding-policy](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/embedding-policy.md) + ## 적용 순서 1. 품질·비용 테스트 (`test_gemini_embedding_2.py` 확장) diff --git a/journey/research/rag/260316_임베딩_1차_로빙_현황_SSOT_리서치.md b/journey/research/rag/260316_임베딩_1차_로빙_현황_SSOT_리서치.md index 617bd80..3701e6a 100644 --- a/journey/research/rag/260316_임베딩_1차_로빙_현황_SSOT_리서치.md +++ b/journey/research/rag/260316_임베딩_1차_로빙_현황_SSOT_리서치.md @@ -43,7 +43,7 @@ tags: [research, embedding, ssot, robeing, 1차] | rb8001 | `app/core/config.py` | EMBEDDING_DIM, SKILL_EMBEDDING_URL | | rb8001 | `app/state/database.py` | ChromaDB, memory_manager | | rb8001 | `app/services/brain/intent_store.py` | intent_prototypes pgvector | -| rb8001 | `docker-compose.yml` | SKILL_EMBEDDING_URL | +| rb8001 | `docker-compose.yml` | SKILL_EMBEDDING_URL=${EMBEDDING_SERVICE_URL:-...} (SSOT 참조) | | rb8001 | `scripts/migrate_chromadb_collections.py` | ChromaDB 차원 마이그레이션 | | DOCS | `skills/companyx-rag/SKILL.md` | Default embedding path 문서 | | DOCS | `book/300_architecture/330_*.md` | ChromaDB 768차원 설계 | @@ -51,7 +51,13 @@ tags: [research, embedding, ssot, robeing, 1차] --- -## 4. 사실(Facts) +## 4. env SSOT (반영됨) + +- `workspace-config/runtime.env`: `EMBEDDING_SERVICE_URL`, `EMBEDDING_DIM` — [0_VALUE embedding-policy env SSOT](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/embedding-policy.md) +- rb8001 docker-compose: `SKILL_EMBEDDING_URL=${EMBEDDING_SERVICE_URL:-http://localhost:8515}`로 SSOT 참조 +- skill-rag-file: `EMBEDDING_SERVICE_URL` env_file에서 로드 + +## 5. 사실(Facts) - robeing skill-embedding은 ko-sroberta 768d, 포트 8515 - skill-rag-file은 EMBEDDING_SERVICE_URL로 skill-embedding 호출 @@ -60,21 +66,21 @@ tags: [research, embedding, ssot, robeing, 1차] --- -## 5. 해석(Interpretation) +## 6. 해석(Interpretation) - skill-embedding을 Gemini 2로 전환하면 skill-rag-file·rb8001은 URL만 유지하고 모델은 자동 반영 - skill-rag-file 내부 직접 Gemini API 호출도 가능. 경로 설계 선택 필요 --- -## 6. 미확정 항목(Unresolved) +## 7. 미확정 항목(Unresolved) - skill-embedding 교체 vs skill-rag-file 내부 직접 Gemini API 호출 - 청킹 단위 확대 적용 시점 --- -## 7. 관련 문서 +## 8. 관련 문서 - [임베딩 1차 로빙 Gemini 2 전환 문제 오픈](../../troubleshooting/260316_임베딩_1차_로빙_Gemini2_전환_문제오픈.md) - [임베딩 1차 로빙 Gemini 2 전환 계획](../../plans/260316_임베딩_1차_로빙_Gemini2_전환_계획.md) diff --git a/journey/research/rag/260316_임베딩_전체프로젝트_현황_및_SSOT_리서치.md b/journey/research/rag/260316_임베딩_전체프로젝트_현황_및_SSOT_리서치.md index 6f05780..2c9324e 100644 --- a/journey/research/rag/260316_임베딩_전체프로젝트_현황_및_SSOT_리서치.md +++ b/journey/research/rag/260316_임베딩_전체프로젝트_현황_및_SSOT_리서치.md @@ -101,7 +101,7 @@ tags: [research, embedding, ssot, robeing, starsandi, goosecouncil, workspace, i | rb8001 | `app/core/config.py` | EMBEDDING_DIM, SKILL_EMBEDDING_URL | | rb8001 | `app/state/database.py` | ChromaDB PersistentClient, memory_manager | | rb8001 | `app/services/brain/intent_store.py` | intent_prototypes pgvector embedding | -| rb8001 | `docker-compose.yml` | SKILL_EMBEDDING_URL | +| rb8001 | `docker-compose.yml` | SKILL_EMBEDDING_URL=${EMBEDDING_SERVICE_URL:-...} (SSOT 참조) | | rb8001 | `scripts/migrate_chromadb_collections.py` | ChromaDB 컬렉션 차원 마이그레이션 | | rb8001 | `scripts/benchmark_emotion_accuracy.py` | skill-embedding /emotion (감정 분류, 임베딩과 별도) | | rb8001 | `scripts/test_gemini_embedding_2.py` | 벤치마크 스크립트 | @@ -140,7 +140,7 @@ tags: [research, embedding, ssot, robeing, starsandi, goosecouncil, workspace, i |-------------|-----------|-----------| | ivada-infra | skill-embedding 배포, `.env.deploy` | 서비스 전환 시 배포 설정 | | ivada-infra | 23/24 서버 docker compose | skill-embedding 8515 의존성 | -| workspace-config | (현재 없음) | 임베딩 키 추가 시 `EMBEDDING_*` | +| workspace-config | runtime.env | `EMBEDDING_SERVICE_URL`, `EMBEDDING_DIM` 반영됨 (SSOT) | ### 3.6 DB·스키마 @@ -175,18 +175,19 @@ tags: [research, embedding, ssot, robeing, starsandi, goosecouncil, workspace, i - **위치**: `0_VALUE/02_Governance/embedding-policy.md` - **내용**: 모델(Gemini 2), 차원(768), 적용(전수 교체), 멀티모달 -### 5.2 런타임 SSOT (설정 가능) +### 5.2 런타임 SSOT (반영됨) -- **현재**: 프로젝트별 개별 설정 (skill-embedding URL, OpenAI API, .env 등) -- **목표**: `workspace-config/runtime.env` 또는 동등한 공용 설정에 `EMBEDDING_MODEL`, `EMBEDDING_DIM`, `EMBEDDING_SERVICE_URL` 등 통합 -- **전제**: [0_VALUE Infrastructure SSOT Principle](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/infrastructure-ssot-principle.md) +- **위치**: `workspace-config/runtime.env` +- **키**: `EMBEDDING_SERVICE_URL`, `EMBEDDING_DIM` — [0_VALUE embedding-policy env SSOT](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/embedding-policy.md) +- rb8001: `SKILL_EMBEDDING_URL=${EMBEDDING_SERVICE_URL:-http://localhost:8515}`로 참조 +- skill-rag-file: env_file에서 `EMBEDDING_SERVICE_URL` 로드 ### 5.3 적용 순서 1. robeing: skill-embedding → Gemini 2 경로 전환, 768d 통일 2. skill-rag-file, rb8001: 새 임베딩 서비스/API 참조 3. StarsAndI, TheGooseCouncil: Gemini API 또는 공용 skill-embedding 호출로 전환 -4. workspace-config: 임베딩 관련 키 추가 (과도기) +4. workspace-config: 임베딩 관련 키 반영됨 (`EMBEDDING_SERVICE_URL`, `EMBEDDING_DIM`) --- @@ -197,7 +198,7 @@ tags: [research, embedding, ssot, robeing, starsandi, goosecouncil, workspace, i - 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에는 현재 임베딩 관련 키 없음 +- workspace-config/runtime.env에 `EMBEDDING_SERVICE_URL`, `EMBEDDING_DIM` 반영됨 (SSOT) --- @@ -212,7 +213,6 @@ tags: [research, embedding, ssot, robeing, starsandi, goosecouncil, workspace, i ## 8. 미확정 항목(Unresolved) -- workspace-config에 임베딩 키를 넣을지, 프로젝트별 .env만 유지할지 - StarsAndI·TheGooseCouncil 전환 우선순위 및 일정 - StarsAndI 카탈로그 재임베딩 비용 (5044 × 평균 토큰 × $0.25/1M) - goosefarminvesting pgvector 용도 (임베딩 vs 공간 데이터) diff --git a/journey/troubleshooting/260316_임베딩_1차_로빙_Gemini2_전환_문제오픈.md b/journey/troubleshooting/260316_임베딩_1차_로빙_Gemini2_전환_문제오픈.md index 18e40e4..9c26dfe 100644 --- a/journey/troubleshooting/260316_임베딩_1차_로빙_Gemini2_전환_문제오픈.md +++ b/journey/troubleshooting/260316_임베딩_1차_로빙_Gemini2_전환_문제오픈.md @@ -58,6 +58,7 @@ tags: [troubleshooting, embedding, gemini, rag, robeing, 1차] - migrate_chromadb_collections.py - DOCS/skills/companyx-rag, 330_백엔드 설계 문서 - ivada-infra skill-embedding 배포 +- workspace-config: `EMBEDDING_SERVICE_URL`, `EMBEDDING_DIM` 반영됨 (SSOT) ## 닫힘 조건 diff --git a/journey/troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md b/journey/troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md index 856ffed..a97deb3 100644 --- a/journey/troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md +++ b/journey/troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md @@ -65,7 +65,7 @@ tags: [troubleshooting, embedding, gemini, rag, robeing, deprecated] **companyx-knowledge-base**: skill-rag-file 경유 연쇄 반영 -**인프라**: ivada-infra skill-embedding 배포, 23/24 서버 docker, workspace-config(추가 시) +**인프라**: ivada-infra skill-embedding 배포, 23/24 서버 docker, workspace-config(반영됨: EMBEDDING_SERVICE_URL, EMBEDDING_DIM) **DB·스키마**: ChromaDB dimension, PostgreSQL intent_prototypes.embedding, NAS RAG 컬렉션