fix(observability): revert unrelated quick review commit files
All checks were successful
CD Pipeline / deploy (push) Successful in 58s
All checks were successful
CD Pipeline / deploy (push) Successful in 58s
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# MOMO PRO — AI 競價情報模組 Single Source of Truth
|
||||
|
||||
> **最後更新**: 2026-05-05 (台北時間)
|
||||
> **狀態**: 🟢 雙 GCP SSD 節點建置完成 (34.143.170.20 & 34.21.145.224),實現高可用高效能推理。
|
||||
> **最後更新**: 2026-05-01 (台北時間)
|
||||
> **狀態**: 🟢 四 AI Agent 自動化閉環已落地 — EventRouter / AutoHeal / OpenClaw Memory / ElephantAlpha bridge / Prometheus metrics / Smoke Dashboard / Smoke Trend Management / Telegram Summary / Grafana provisioning / Prometheus scrape / CD Gunicorn 掛載具測試覆蓋
|
||||
> **適用版本**: V10.22 Legacy 5888 入口清理版
|
||||
|
||||
---
|
||||
@@ -11,9 +11,8 @@
|
||||
```
|
||||
SQL漏斗(~300筆)
|
||||
↓
|
||||
[Hermes 3 8B] — 分析師 (GCP / 本地)
|
||||
模型: hermes3:latest, qwen2.5-coder:7b, llama3.2, gemma3, deepseek-r1:14b 等全量模型
|
||||
主機: 34.143.170.20:11434 (Primary - SSD) / 34.21.145.224:11434 (Secondary - SSD) / 192.168.0.111:11434 (Fallback)
|
||||
[Hermes 3 8B] — 分析師 (本地 Ollama, 零成本)
|
||||
模型: hermes3:latest @ 192.168.0.111:11434
|
||||
任務: 競價威脅分類 → TOP 20 HIGH/MED/LOW
|
||||
↓
|
||||
[NemoTron NIM] — 派發器 (雲端, 免費配額)
|
||||
@@ -42,7 +41,7 @@ SQL漏斗(~300筆)
|
||||
|
||||
| 角色 | 模型 | 主機 | 成本 | 每日限額 |
|
||||
|------|------|------|------|---------|
|
||||
| Hermes 分析師 | 全量模型 (hermes3, qwen2.5-coder, llama3.2, deepseek-r1 等) | 34.143.170.20 (Primary-SSD) / 34.21.145.224 (Secondary-SSD) / 192.168.0.111 (Fallback) | 零 | 無限 |
|
||||
| Hermes 分析師 | hermes3:latest / embedding model | 192.168.0.111:11434 或 188 Ollama | 零 | 無限 |
|
||||
| NemoTron 派發器 | meta/llama-3.1-8b-instruct | NVIDIA NIM | 免費 80/天 | 80 |
|
||||
| OpenClaw 策略師 | Gemini | 雲端 | 需審批 | — |
|
||||
| ElephantAlpha 編排者 | ElephantAlpha | 依部署環境 | 受控 | HITL / 任務制 |
|
||||
@@ -68,9 +67,6 @@ SQL漏斗(~300筆)
|
||||
- `momo-db` / `momo-postgres` 不可被 AI 自動 restart / stop / recreate。
|
||||
- raw `ai_insights` insert 必須接 `enqueue_insight_embedding()` 或可被 backfill。
|
||||
- ElephantAlpha 只做編排與 bridge,不可繞過 ADR-011 / ADR-012 / ADR-013。
|
||||
- ElephantAlpha `resource_optimization` 只可由 operational safe-action queue 或真實系統負載觸發;`openclaw_recommendation`、`human_review` 等人工/商業待辦不得視為系統資源壓力,也不得產生「自主執行」噪音告警。
|
||||
- ElephantAlpha trigger cooldown 必須使用 `data/elephant_alpha_cache.db` 持久化;thread 或容器重啟後仍不得在冷卻期重複推送同類告警。
|
||||
- ElephantAlpha L3 HITL 告警必須有可驗證資料:價格類需 Hermes 具體 SKU/金額,資源類需 action queue 或 CPU load 超標,程式碼類需容器 log 例外;無實證低信心升級只能記錄 suppressed cooldown,不得發 Telegram 或寫入 `human_review` 噪音待辦。
|
||||
- ElephantAlpha / NemoTron 不可直接執行商品價格調整;`execute_price_adjustment`、`adjust_price` 等動作必須攔截並寫入 `human_review`,等待人工核准。
|
||||
|
||||
可觀測性:
|
||||
|
||||
@@ -45,8 +45,8 @@
|
||||
蓋掉原本的 plan 元流程文字。**強制配套限制**:
|
||||
|
||||
- `asyncio.wait_for(timeout=5)` 短超時:Hermes 熱駐留 < 10s,但冷啟動會拖到 30s+,HITL 訊息延遲不可大於 10s
|
||||
- Pre-fetch 失敗(timeout / 0 threats / 全部缺金額)→ 視為無實證升級,寫入 suppressed cooldown,**不得 fallback 回 plan 文字、不得發 Telegram、不得寫入 `human_review` 噪音待辦**
|
||||
- 「全部行皆缺金額」也視同無料 suppressed,避免「乾巴巴兩行 MOMO/PChome 比價」比 plan 文字更空泛
|
||||
- Pre-fetch 失敗(timeout / 0 threats / 全部缺金額)→ fallback 回原 plan 文字,**不中斷 escalation 主流程**
|
||||
- 「全部行皆缺金額」也視同無料 fallback,避免「乾巴巴兩行 MOMO/PChome 比價」比 plan 文字更空泛
|
||||
|
||||
### 規則 2 — NemoTron 告警必填金額影響量化
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
|------|--------|------|------|
|
||||
| Critical-1 | CRITICAL | `user_label` 直接 HTML 拼接 → username 注入 `<a>/<pre>` 破版 | `html.escape()` 雙重 escape |
|
||||
| High-1 | HIGH | Pre-fetch Hermes 同步阻塞 escalation cooldown 視窗(30-60s) | `asyncio.wait_for(timeout=5)` |
|
||||
| High-2 | HIGH | Hermes 有 threats 但全部缺金額時 → 兩行乾巴巴比價反而更空泛 | `any_concrete` 判斷,全缺則 `return None` 觸發 suppressed cooldown |
|
||||
| High-2 | HIGH | Hermes 有 threats 但全部缺金額時 → 兩行乾巴巴比價反而更空泛 | `any_concrete` 判斷,全缺則 `return None` 觸發 plan fallback |
|
||||
| Medium-2 | MEDIUM | 空 `event_id` callback 寫入 `'unknown'` 污染 audit | prefix 解析後即拒絕 |
|
||||
| Medium-3 | MEDIUM | `gap_pct ≤ 0` 但 `prev > curr` 仍顯示「流失」誤導降價 | `revenue_loss_7d` 條件改為 `if gap_pct > 0` |
|
||||
|
||||
@@ -98,12 +98,12 @@
|
||||
- EA 升級審核 Telegram 內容從元流程描述變為「具體 SKU + 價格 + 金額流失 + 建議調價」,HITL 真正可決策
|
||||
- NemoTron 既有告警再升級,每筆都帶可批准/駁回的金額判斷依據
|
||||
- `momo:eig:` 按鈕首次有對應 handler,HITL 流程閉環完整
|
||||
- pre-fetch 改用 5s 短超時;最壞情況靜默 suppressed cooldown,不再推送無實證 HITL 噪音
|
||||
- pre-fetch 改用 5s 短超時 + fallback,最壞情況退回原 plan 文字,不破壞既有行為
|
||||
|
||||
### 負面 / 風險
|
||||
|
||||
- 每次價格類 escalation 多花 ≤ 5s(Hermes 熱駐留實測 < 10s 但有 timeout),整體告警延遲略增
|
||||
- Hermes 在 5s 內若沒回應,價格類升級不發 Telegram;由 suppressed cooldown 防止重複 pre-fetch / LLM 成本
|
||||
- Hermes 在 5s 內若沒回應,告警內容降級回 plan 文字(仍維持原行為,無新增風險)
|
||||
- `gap_pct ≤ 0` 案例的銷量下滑(非價格因素)將完全不顯示流失金額——若統帥需追蹤「非價格流失」需另開告警類型(待後續 ADR)
|
||||
|
||||
### 監控指標
|
||||
@@ -116,7 +116,7 @@
|
||||
|
||||
- [x] `services/hermes_analyst_service.py` PriceThreat 新增絕對金額欄位
|
||||
- [x] `services/nemoton_dispatcher_service.py` `_compute_business_impact` helper + 三條 dispatch 路徑注入
|
||||
- [x] `services/elephant_alpha_autonomous_engine.py` `_fetch_hermes_threats_summary` + 5s timeout + suppressed cooldown
|
||||
- [x] `services/elephant_alpha_autonomous_engine.py` `_fetch_hermes_threats_summary` + 5s timeout + fallback
|
||||
- [x] `services/telegram_bot_service.py` `_handle_event_ignore_callback` + HTML escape + 空 id 拒絕
|
||||
- [x] Critic 審查通過(Critical-1 / High-1 / High-2 / Medium-2 / Medium-3 全修)
|
||||
- [x] Smoke test:`_compute_business_impact` 對 gap≤0 / gap=0 / 銷量回升 / bogus type 四案例驗證
|
||||
|
||||
@@ -6,9 +6,7 @@
|
||||
| 主機別名 | 內網 IP | 角色 | 部署方式 |
|
||||
|---------|---------|------|---------|
|
||||
| **UAT / Gateway** | `192.168.0.110` | Nginx 反向代理、Registry、n8n、Superset | Docker |
|
||||
| **Production / AI** | `192.168.0.188` | EwoooC App、Clawdbot、Ollama (Fallback)、pgvector | Docker Compose |
|
||||
| **GCP / SSD 1** | `34.143.170.20` | Primary Ollama (SSD Optimized, All Models) | Standalone |
|
||||
| **GCP / SSD 2** | `34.21.145.224` | Secondary Ollama (SSD Optimized, Redundancy) | Standalone / Docker |
|
||||
| **Production / AI** | `192.168.0.188` | EwoooC App、Clawdbot、Ollama、pgvector | Docker Compose |
|
||||
| **DevSecOps** | `192.168.0.112` | Kali Linux (掃描主機)、WG-Easy | Docker |
|
||||
|
||||
## 🔑 關鍵認證
|
||||
@@ -29,8 +27,8 @@
|
||||
- **5002**: Private Registry
|
||||
- **5678**: n8n
|
||||
- **8088**: Apache Superset
|
||||
- **11434**: Ollama API (Primary: 34.143.170.20, Secondary: 34.21.145.224, Fallback: 188/111)
|
||||
- **3000/3010**: Open WebUI (188)
|
||||
- **11434**: Ollama API (188)
|
||||
- **3000**: Open WebUI (188)
|
||||
- **51820**: WireGuard VPN
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user