fix(ollama-first): 3 個 feature flag 翻 ON — Ollama 優先、Gemini 殿後
Some checks failed
CD Pipeline / deploy (push) Has been cancelled

統帥 2026-05-03 23:30 指令:「免費的優先!最後才是 Gemini」

3 個 flag 預設 false → true(GCP Primary qwen3:14b 已拉好,無阻擋):
  1. OPENCLAW_QA_OLLAMA_FIRST=true
     → Telegram 戰略 Q&A 走 qwen3:14b(繁中強制 prompt + Gemini fallback)
     → 預期月省 ~6.7M Gemini tokens(戰前 8.4M × 80%)
  2. OPENCLAW_DAILY_HERMES_TEMPLATE=true
     → 日報走 Hermes 模板 + Gemini 200 字洞察(28K → 8K, -71%)
     → 預期月省 ~600K Gemini tokens
  3. NEMOTRON_OLLAMA_FIRST=true
     → 威脅分派走 GCP qwen3:14b → NIM 備援 → ADR-004 規則引擎兜底
     → 預期月省 ~5M NIM tokens(解配額痛點)

合計月省 ~12M tokens(與 ADR-029 預估 -23.5% 對齊)

緊急停用:env 變數設 false 即可(保留 fail-safe)
品質風險:A7 Q&A 有 _is_low_quality_response 守門 → 低品質自動 fallback Gemini

Operation Ollama-First v5.0 / Phase 6.5 hotfix #2 / 落地統帥指令

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
OoO
2026-05-03 23:28:45 +08:00
parent 56504ed7c1
commit 6aa5bcab88
2 changed files with 12 additions and 3 deletions

View File

@@ -115,7 +115,10 @@ _nim_call_count = {"date": "", "count": 0}
# 模型選擇A2 web-research 紅綠燈報告 docs/phase0_research_report_20260503.md
# 原戰役計畫 deepseek-r1:14b 的 Ollama tool_calls chat template 缺對應 jinja
# GitHub Issue #10935 未解),改採 qwen3:14bOllama 官方 + qwenlm 雙確認 tools 支援)。
NEMOTRON_OLLAMA_FIRST = os.getenv("NEMOTRON_OLLAMA_FIRST", "false").lower() == "true"
# 統帥 2026-05-03 23:30 指令:「免費優先」— GCP qwen3:14b 已拉
# 預設 ONqwen3:14b 主 → NIM 備援 → Hermes 規則引擎兜底ADR-004
# 緊急停用(回 NIM-firstexport NEMOTRON_OLLAMA_FIRST=false
NEMOTRON_OLLAMA_FIRST = os.getenv("NEMOTRON_OLLAMA_FIRST", "true").lower() == "true"
NEMOTRON_OLLAMA_MODEL = os.getenv("NEMOTRON_OLLAMA_MODEL", "qwen3:14b")
NEMOTRON_OLLAMA_TIMEOUT = int(os.getenv("NEMOTRON_OLLAMA_TIMEOUT", "180")) # 秒

View File

@@ -58,7 +58,10 @@ TAIPEI_TZ_OFFSET = 8 # UTC+8
def _qa_ollama_first_enabled() -> bool:
"""每次呼叫即時讀環境變數,允許 runtime toggle 灰度。"""
return os.getenv('OPENCLAW_QA_OLLAMA_FIRST', 'false').strip().lower() in ('true', '1', 'yes', 'on')
# 統帥 2026-05-03 23:30 指令:「都是要先以免費的優先!最後才是 Gemini」
# 預設 ONOllama (qwen3:14b @ GCP Primary 已拉) 為主Gemini 為品質低時 fallback
# 緊急停用export OPENCLAW_QA_OLLAMA_FIRST=false
return os.getenv('OPENCLAW_QA_OLLAMA_FIRST', 'true').strip().lower() in ('true', '1', 'yes', 'on')
OPENCLAW_QA_OLLAMA_MODEL = os.getenv('OPENCLAW_QA_OLLAMA_MODEL', 'qwen3:14b')
@@ -1433,7 +1436,10 @@ def _daily_hermes_template_enabled() -> bool:
每次呼叫即時讀取,允許 runtime toggle 灰度(不需重啟 scheduler
預設 false → 走 _legacy_full_gemini_daily_report戰前行為零 regression
"""
return os.getenv('OPENCLAW_DAILY_HERMES_TEMPLATE', 'false').strip().lower() in ('true', '1', 'yes', 'on')
# 統帥 2026-05-03 23:30 指令:「免費優先」
# 預設 ONHermes 算 KPI + 模板填充Gemini 只寫 200 字洞察(戰前 28K → ~8K tokens, -71%
# 緊急停用(回 Gemini 全文版export OPENCLAW_DAILY_HERMES_TEMPLATE=false
return os.getenv('OPENCLAW_DAILY_HERMES_TEMPLATE', 'true').strip().lower() in ('true', '1', 'yes', 'on')
def generate_daily_report() -> dict: