docs(adr): ADR-067 Ollama 五大本地 AI 應用實施規格

批准五大應用 Phase 30-34,依序執行:
1. Drift 報告中文摘要 (qwen2.5:7b-instruct)
2. Log 異常摘要 (deepseek-r1:14b)
3. PR 自動審查 (qwen2.5-coder:7b)
4. RAG 知識庫 pgvector (nomic-embed-text)
5. 圖片分析 (llava:latest)

pgvector 0.8.2 已確認在 prod 就緒

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-04-10 01:35:07 +08:00
parent a30713b292
commit 2065665c9b
2 changed files with 138 additions and 0 deletions

View File

@@ -6,6 +6,87 @@
---
## 📍 當前狀態 (2026-04-10 ADR-067 Ollama 五大應用批准Phase 30 即將開始)
### ADR-067 Ollama 五大應用 — 2026-04-10 統帥批准
| Phase | 應用 | 狀態 |
|-------|------|------|
| 30 | Drift 報告中文摘要 (qwen2.5:7b-instruct) | 🔲 Next |
| 31 | Log 異常摘要 (deepseek-r1:14b) | 🔲 |
| 32 | PR 自動審查 (qwen2.5-coder:7b) | 🔲 |
| 33 | RAG pgvector (nomic-embed-text 768d) | 🔲 |
| 34 | 圖片分析 (llava:latest) | 🔲 |
- pgvector 0.8.2 已在 prod ✅
- 詳細規格: ADR-067, project_ollama_applications.md
---
## 📍 前一狀態 (2026-04-10 Sprint 5.1 + Phase 27 部署中 🔄)
### Sprint 5.1 Data Safety Guardrails — 全部確認已部署
| 項目 | 狀態 | 備註 |
|------|------|------|
| DB M-002: approval_records MultiSig 欄位 | ✅ 已在 DB | approval_level/votes/required_votes |
| DB M-003: alert_event_type ENUM +8 | ✅ 已在 DB | 18個 event_type |
| ops/config/service-registry.yaml | ✅ 已 commit | BLOCK/CRITICAL_HITL/STANDARD_HITL/AUTO |
| service_registry.py / velero_client.py / preflight_service.py | ✅ 已部署 | Sprint 3 時即已部署 |
| Playbook model 3 安全欄位 | ✅ 已部署 | requires_approval_level/stateful_targets/requires_pre_backup |
| auto_repair_service.py Guardrail 注入 | ✅ 已部署 | StatefulLevel.BLOCK 攔截 |
| alert_operation_log_repository 8 新 event_type | ✅ 已部署 | GUARDRAIL_BLOCKED 等 |
| K8s Velero RBAC | ✅ 已有 | awoooi-executor 已有 list backups 權限 |
### Phase 27 frequency_snapshot 持久化
| 項目 | 狀態 | Commit |
|------|------|--------|
| incidents.frequency_snapshot JSONB | ✅ DB 已建立 | migration 執行 ✅ |
| incident_repository 序列化/反序列化 | ✅ | 9846a6c |
| CD 部署中 | 🔄 run/653 | — |
**下一步**: CD 完成確認 → 下一 Sprint
## 📍 當前狀態 (2026-04-10 Sprint 6 A+B+C+D 全完成 ✅)
### Sprint 6 完整閉環
| Phase | 項目 | 結果 | Commit |
|-------|------|------|--------|
| A1 | SSH config 補 120/121 | ✅ | — |
| A2 | CD 狀態確認(正常) | ✅ | — |
| B | Sensor Agent 188+110 systemd service | ✅ active | 31d45f0 |
| C | blast_radius AIBlastRadius→BlastRadius | ✅ | 7e49862 |
| C | AIDataImpact .lower() → DataImpact | ✅ | 0571ad1 |
| C | telegram_chat_id INTEGER→BIGINT (K8s exec) | ✅ | — |
| C | E2E: approval_created_db ✅ + telegram_sent ✅ | ✅ | — |
| D | drift CAST(:param AS jsonb) SQL fix | ✅ | 5d591c4 |
| D | drift k8s/ 打包進 image | ✅ | c132fd4 |
| D | drift_reports DB 寫入驗證 total=1 | ✅ | — |
**下一步**: Telegram 批准按鈕真實 E2E需要統帥點按鈕驗收/ 其他 Backlog
---
## 📍 當前狀態 (2026-04-10 Sprint 6 Phase A+B+C 進行中)
### Sprint 6 C — Telegram E2E + blast_radius bug 修復
| 項目 | 結果 | Commit |
|------|------|--------|
| SSH config 補 120/121 | ✅ | — |
| CD 狀態確認(正常,無積壓) | ✅ | — |
| Sensor Agent 188 systemd service | ✅ active | — |
| Sensor Agent 110 systemd service | ✅ active | — |
| E2E 注入告警 → signoz_telegram_sent | ✅ | — |
| blast_radius AIBlastRadius→BlastRadius bug | ✅ 修復 | 7e49862 |
| CD 部署 7e49862 | 🔄 進行中 | — |
**下一步**: CD 完成後重跑 E2E 驗收
---
## 📍 當前狀態 (2026-04-10 Sensor Agent B1 部署完成 ✅)
### Sprint 6 B — Sensor Agent 兩台主機部署

View File

@@ -0,0 +1,57 @@
# 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 最低優先
## 已確認基礎設施
- 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 ✅