Files
awoooi/docs/adr/ADR-067-ollama-local-ai-applications.md
OG T 99cc420429 docs(review): 首席架構師 Code Review 後 — ADR-064/067 + Skill 02 補全記錄
ADR-064: 補 I1 整合記錄(get_incident_type 三層降級、rule.id ≠ incident_type 設計決策)
ADR-067: 補 D1 集中化完成記錄(9 purpose keys 對應表)
Skill 02: 補 get_incident_type 使用規範 + Ollama D1 模型中央化禁令

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 21:35:25 +08:00

3.0 KiB
Raw Blame History

ADR-067: Ollama 本地 AI 應用五大擴展

狀態: Approved
日期: 2026-04-10 (台北時間)
決策者: ogt (統帥)
執行者: Claude Code


背景

AWOOOI 基礎設施已有兩台 Ollama 主機111/188與多個已就緒模型但 95% 的 AI 能力集中在 NemoClaw 對話與 OpenClaw RCA其餘模型閒置。pgvector 0.8.2 已在 prod DB 就緒。

決策

批准實施五大 Ollama 本地 AI 應用,依優先順序:

# 應用 模型 主機 Migration
1 RAG 知識庫 nomic-embed-text (768d) Ollama 188 phase28_rag_pgvector.sql
2 PR 自動審查 qwen2.5-coder:7b Ollama 111 phase29_pr_reviews.sql
3 Log 異常摘要 deepseek-r1:14b Ollama 111 Redis 快取)
4 Drift 報告摘要 qwen2.5:7b-instruct Ollama 111 phase30_drift_narrative.sql
5 圖片分析 llava:latest Ollama 111

架構原則(延續 leWOOOgo

  • Router 禁止直接存 DB/Redis
  • 每個應用建立獨立 Service + Repository
  • 模型配置集中在 models.jsonpurpose key
  • 雙軌儲存Redis 熱快取 + PostgreSQL 永久
  • 所有 LLM 呼叫需有 timeout + graceful fallback

實施時程

  • Week 0: 前置確認pgvector models.json 新增 purpose keys
  • Week 1 前: 應用 4Drift 摘要)— 最小改動
  • Week 1 後: 應用 3Log 摘要)
  • Week 2 前: 應用 2PR 審查)
  • Week 2-3: 應用 1RAG pgvector
  • Week 3: 應用 5圖片分析

衝突評估

  • 無衝突Sprint 5R 前端重構ADR-065獨立進行不影響後端
  • 注意:應用 4 修改 drift.py 背景任務,需確認不影響現有 B4 drift_reports 持久化(已完成)
  • 注意:應用 3 修改 telegram_gateway.py(橙區),每次修改前需重讀檔案
  • 注意Ollama 111 並發管控deepseek-r1:14b 優先drift_narrative 最低優先

D1 集中化完成記錄 (2026-04-11, commit f2c18c4)

models.json v1.3.09 個 purpose keys 新增,所有服務 hardcode 消除。

purpose key 模型 使用服務
drift_summary qwen2.5:7b-instruct drift_narrator_service
drift_intent qwen2.5:7b-instruct drift_interpreter
log_anomaly deepseek-r1:14b log_summary_service
code_review qwen2.5-coder:7b local_code_review_service
image_analysis llava:latest image_analysis_service
nemoclaw deepseek-r1:14b decision_manager
playbook_draft qwen2.5:7b-instruct decision_manager
embedding nomic-embed-text embedding_service, knowledge_service
rag_generate qwen2.5:7b-instruct (RAG 生成備用)

模型切換方式:修改 apps/api/models.json 對應 purpose key重啟 Pod 生效,不需改代碼。

已確認基礎設施

  • pgvector: 0.8.2
  • nomic-embed-text: Ollama 111 + 188
  • llava:latest: Ollama 111
  • qwen2.5-coder:7b: Ollama 111
  • qwen2.5:7b-instruct: Ollama 111
  • deepseek-r1:14b: Ollama 111