feat(D1): models.json 集中化 — ADR-067 五大 Ollama 應用 hardcode 消除
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 12m56s

- models.json v1.3.0: providers.ollama.models 新增 9 個 purpose keys
  (drift_summary/drift_intent/log_anomaly/nemoclaw/playbook_draft/
   code_review/embedding/rag_generate/image_analysis)
- drift_narrator_service: NARRATOR_MODEL → get_model("ollama","drift_summary")
- drift_interpreter: MODEL → get_model("ollama","drift_intent")
- log_summary_service: SUMMARY_MODEL → get_model("ollama","log_anomaly")
- local_code_review_service: _MODEL_OLLAMA → get_model("ollama","code_review")
- image_analysis_service: _MODEL → get_model("ollama","image_analysis")
- decision_manager: nemoclaw + playbook_draft 兩處 → get_model()
- embedding_service: get_embedding_service() factory → get_model("ollama","embedding")
- knowledge_service: OllamaEmbeddingService(model=...) → get_model()

所有模型名稱現在統一由 models.json 管理,修改模型只需改一個檔案。
LOGBOOK 更新:D1 完成 + B2 已完成確認

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-04-11 20:45:36 +08:00
parent 694471891f
commit f2c18c4e63
10 changed files with 60 additions and 13 deletions

View File

@@ -21,6 +21,7 @@ import httpx
import structlog
from src.core.config import settings
from src.services.model_registry import get_model as _get_model
logger = structlog.get_logger(__name__)
@@ -239,10 +240,11 @@ def get_embedding_service() -> OllamaEmbeddingService:
"""
取得 Embedding Service 單例
D1 集中化 2026-04-11: 預設模型從 models.json providers.ollama.models.embedding 讀取
Returns:
OllamaEmbeddingService: 共用實例
"""
global _embedding_service
if _embedding_service is None:
_embedding_service = OllamaEmbeddingService()
_embedding_service = OllamaEmbeddingService(model=_get_model("ollama", "embedding"))
return _embedding_service