From 26496bfbe8374185a576866b4c3017377a5e6ec7 Mon Sep 17 00:00:00 2001 From: ogt Date: Thu, 25 Jun 2026 11:22:32 +0800 Subject: [PATCH] fix: shorten governance pages around growth decisions --- config.py | 2 +- docs/AI_INTELLIGENCE_MODULE_SOT.md | 1 + templates/admin/agent_orchestration.html | 2 +- templates/admin/ai_calls_dashboard.html | 2 +- templates/admin/budget.html | 4 +- templates/admin/business_intel.html | 7 +-- templates/admin/host_health.html | 2 +- templates/admin/promotion_review.html | 4 +- templates/admin/quality_trend.html | 2 +- templates/admin/rag_queries.html | 2 +- .../components/_legacy_bridge_panel.html | 4 +- templates/crawler_management.html | 2 +- templates/dashboard.html | 2 +- templates/edm_dashboard.html | 2 +- templates/history.html | 2 +- templates/import.html | 2 +- templates/send_email.html | 2 +- templates/settings.html | 16 +++---- templates/system_settings.html | 8 ++-- tests/test_pchome_revenue_growth_service.py | 45 +++++++++++++++++++ 20 files changed, 77 insertions(+), 36 deletions(-) diff --git a/config.py b/config.py index 6232b14..c4537a7 100644 --- a/config.py +++ b/config.py @@ -402,7 +402,7 @@ YOUTUBE_API_KEY = os.getenv('YOUTUBE_API_KEY', '') # ========================================== # 系統版本與路徑 # ========================================== -SYSTEM_VERSION = "V10.663" +SYSTEM_VERSION = "V10.664" LOG_FILE_PATH = os.path.join(BASE_DIR, 'logs/system.log') public_url = PUBLIC_URL # 用於模板顯示 diff --git a/docs/AI_INTELLIGENCE_MODULE_SOT.md b/docs/AI_INTELLIGENCE_MODULE_SOT.md index e60add1..ce6cbf9 100644 --- a/docs/AI_INTELLIGENCE_MODULE_SOT.md +++ b/docs/AI_INTELLIGENCE_MODULE_SOT.md @@ -740,3 +740,4 @@ POSTGRES_HOST=momo-db | 2026-05-20 | 部分舊 Telegram 入口繞過中央 sanitizer,且 RAG awaiting review 使用錯誤 `chat_id=` 參數會讓人工審核推播失敗 | V10.322 起 Bot API price decision 走 `send_telegram_with_result()`;`price_decision()` 補 `report_url` 相容並 escape 動態欄位;RAG awaiting review 改用 `chat_ids=[...]` 呼叫 `_send_telegram_raw()` | | 2026-06-25 | UI/UX 不可只修首頁,導覽主入口必須同一套 PChome 業績提升語言 | V10.662 起作戰、分析、營運、AI 助手主入口與廠商缺貨子工具都使用短句對齊「評估、分析、建議、解法、治理」流程;首頁今日行動卡維持 980px 上限與高對比主按鈕,禁止回到全寬長文說明。 | | 2026-06-25 | 首頁今日行動 CTA 不可被全域 Bootstrap guard 蓋成透明或低對比 | V10.663 起 `#commandTaskButton.growth-command-alert-action` 使用精準 selector 與 `background-color` hard override,正式 smoke 必須量測按鈕背景與卡片寬度。 | +| 2026-06-25 | 系統、舊入口與觀測台頁首不可用長篇工程說明取代決策用途 | V10.664 起舊入口、系統管理與 AI 觀測台頁首統一改為短句,聚焦資料新鮮度、成本、品質、RAG 與自癒如何支援 PChome 業績判斷。 | diff --git a/templates/admin/agent_orchestration.html b/templates/admin/agent_orchestration.html index 6151828..16a2b12 100644 --- a/templates/admin/agent_orchestration.html +++ b/templates/admin/agent_orchestration.html @@ -9,7 +9,7 @@
-
Agent 指揮矩陣 · {{ hours }} 小時視窗

Agent 指揮矩陣

這頁回答 AI 中樞如何分工:誰在用 Ollama、誰還在吃付費 LLM、哪些 Agent 有 RAG 命中、哪些工作流已經接上 MCP。這不是列表,是指揮官視角。

{% if overall %}
呼叫總量
{{ "{:,}".format(overall.total_calls) }}{{ "{:,}".format(overall.total_tokens) }} 權杖
Ollama 占比
{{ "%.0f"|format(overall.local_pct) }}%{{ "{:,}".format(overall.local_calls) }} 次本地呼叫
付費成本
${{ "%.2f"|format(overall.total_cost) }}{{ "{:,}".format(overall.paid_calls) }} 次付費呼叫
RAG 命中率
{{ "%.0f"|format(overall.rag_rate) }}%{{ "{:,}".format(overall.rag_hits) }} 次命中
{% endif %}
+
Agent 指揮矩陣 · {{ hours }} 小時視窗

Agent 指揮矩陣

確認 AI 分工、Ollama 占比、RAG 命中與 MCP 編排是否支撐業績決策。

{% if overall %}
呼叫總量
{{ "{:,}".format(overall.total_calls) }}{{ "{:,}".format(overall.total_tokens) }} 權杖
Ollama 占比
{{ "%.0f"|format(overall.local_pct) }}%{{ "{:,}".format(overall.local_calls) }} 次本地呼叫
付費成本
${{ "%.2f"|format(overall.total_cost) }}{{ "{:,}".format(overall.paid_calls) }} 次付費呼叫
RAG 命中率
{{ "%.0f"|format(overall.rag_rate) }}%{{ "{:,}".format(overall.rag_hits) }} 次命中
{% endif %}
{% if error %}
{{ error }}
{% endif %}
diff --git a/templates/admin/ai_calls_dashboard.html b/templates/admin/ai_calls_dashboard.html index fe0cf4b..a42b055 100644 --- a/templates/admin/ai_calls_dashboard.html +++ b/templates/admin/ai_calls_dashboard.html @@ -53,7 +53,7 @@
AI 流量管制 · {{ hours }} 小時視窗

AI 流量控制塔

-

這裡不是流水帳,而是 AI 中樞的飛航管制台:看呼叫量、權杖量、成本、錯誤率、RAG 命中與 MCP 編排,並在異常時一鍵派出程式碼審查管線。

+

看成本、錯誤率與 RAG 命中,確保 AI 建議穩定支援業績判斷。

diff --git a/templates/admin/budget.html b/templates/admin/budget.html index d74a66a..1dc7b93 100644 --- a/templates/admin/budget.html +++ b/templates/admin/budget.html @@ -40,8 +40,8 @@
AI 成本治理 · 預算 / 節流 / RAG 策略

AI 成本治理艙

-

這頁回答一個問題:AI 中樞花錢是否仍在治理邊界內?預算、實際支出、月底推估、節流狀態與 RAG 策略建議集中在同一個工作台。

-
超過 110% 時不用等排程,直接重算供應商節流。
+

控制 AI 花費與節流狀態,把預算留給能推動業績的任務。

+
預算超線時立即重算節流。
當月花費
${{ "%.2f"|format(total_spent.value) }}
預算 ${{ "%.2f"|format(total_budget.value) }}
預算使用率
{{ "%.0f"|format(total_ratio) }}%
全供應商加總
diff --git a/templates/admin/business_intel.html b/templates/admin/business_intel.html index 3789c23..a5dddbd 100644 --- a/templates/admin/business_intel.html +++ b/templates/admin/business_intel.html @@ -442,10 +442,7 @@
商業情報

商業 AI 戰果室

-

- 這一頁不再只是資料列表,而是把價格建議、未跟進警示、閉環學習與競品監測收成一個商業決策控制台。 - 先看 AI 是否真的推動結果,再往下追每一筆策略與市場訊號。 -

+

先看價格建議是否被採用,再追蹤閉環結果與競品訊號。

近 {{ days }} 天 {{ rec_total }} 筆價格建議 @@ -464,7 +461,7 @@
決策節奏
先警示,再追因
-

未跟進高信心建議會被拉到第一層;其餘資訊按策略、閉環、競品三條線拆解。

+

高信心未跟進先處理,再看策略與競品訊號。

diff --git a/templates/admin/host_health.html b/templates/admin/host_health.html index 9e9fa5e..55acc49 100644 --- a/templates/admin/host_health.html +++ b/templates/admin/host_health.html @@ -61,7 +61,7 @@
基礎設施生命線 · Ollama / MCP / AIOps

基礎設施生命線

-

這頁是 AI 中樞的底盤監控:三主機 Ollama 級聯、MCP 工具層、成本節流與 ADR-013 AutoHeal 閉環。先看能不能活,再看要不要修。

+

先看 Ollama、MCP 與自癒是否正常,避免 AI 建議與比價流程中斷。

Ollama 離線
{{ down.count }}{{ ollama_hosts|length }} 台即時探測
AIOps 未解
{{ aiops_summary.incidents_open if aiops_summary else '—' }}7 日事件未解決
diff --git a/templates/admin/promotion_review.html b/templates/admin/promotion_review.html index a000e6a..67f4bd8 100644 --- a/templates/admin/promotion_review.html +++ b/templates/admin/promotion_review.html @@ -43,7 +43,7 @@
RAG 知識晉升閘 · 人工審核 / 去重 / 防污染

RAG 知識晉升閘

-

這頁是 RAG 不被污染的最後關卡。高權重 學習片段 不能直接進知識庫,必須先看品質、相似知識、人工拒絕與晉升分布,再決定是否寫入 ai_insights。

+

先審核高權重學習片段,避免錯誤知識污染業績建議。

待審核
{{ episodes|length }}高權重待審片段
知識庫
{{ kb_size or 0 }}ai_insights 已晉升
@@ -59,7 +59,7 @@
審核佇列

待審核片段

{{ episodes|length }} 筆
-

晉升守門第 4 階段:權重 ≥ 0.8 必經統帥審核;24 小時無回應自動降權,不直接污染知識庫。

+

權重 ≥ 0.8 必經審核;24 小時無回應自動降權。

diff --git a/templates/admin/quality_trend.html b/templates/admin/quality_trend.html index 9d6ebee..7b6a3c5 100644 --- a/templates/admin/quality_trend.html +++ b/templates/admin/quality_trend.html @@ -18,7 +18,7 @@ {% set rag_total = (rag_overall_dist | sum(attribute='count')) if rag_overall_dist else 0 %}
-
品質診斷 · {{ days }} 日視窗

AI 品質診斷台

這裡看 AI 的回答到底有沒有變好:呼叫端反饋、RAG 分數、學習片段流量、行動計畫與結果閉環全部聚合到同一張品質雷達。

反饋總量
{{ total_feedback.value }}呼叫端反饋總量
最差均分
{{ "%.2f"|format(worst_avg.value) }}最差呼叫端平均分
蒸餾樣本
{{ episode_total }}蒸餾池 {{ days }} 日
RAG 評分
{{ rag_total }}已回饋 RAG 查詢
+
品質診斷 · {{ days }} 日視窗

AI 品質診斷台

用反饋、RAG 分數與行動閉環檢查 AI 建議是否可靠。

反饋總量
{{ total_feedback.value }}呼叫端反饋總量
最差均分
{{ "%.2f"|format(worst_avg.value) }}最差呼叫端平均分
蒸餾樣本
{{ episode_total }}蒸餾池 {{ days }} 日
RAG 評分
{{ rag_total }}已回饋 RAG 查詢
{% if error %}
{{ error }}
{% endif %}
diff --git a/templates/admin/rag_queries.html b/templates/admin/rag_queries.html index b4530f4..ff670f4 100644 --- a/templates/admin/rag_queries.html +++ b/templates/admin/rag_queries.html @@ -20,7 +20,7 @@
RAG 召回雷達 · {{ hours }} 小時視窗

RAG 召回雷達

-

這裡追蹤每次 RAG 查詢是否真的命中、是否省下 LLM 呼叫、哪些呼叫端用得好、哪些查詢沒找到知識。RAG 如果要成為武器,這裡就是雷達螢幕。

+

追蹤 RAG 是否命中、是否省下 LLM 呼叫,避免業績建議缺少根據。

{% if summary and summary.total > 0 %}
查詢數
{{ "{:,}".format(summary.total) }}
{{ summary.distinct_callers }} 個呼叫端
命中率
{{ "%.1f"|format(summary.hit_rate) }}%
{{ summary.with_hits }} 次命中 · {{ summary.no_hits }} 次未命中
省下呼叫
{{ "%.1f"|format(summary.saved_rate) }}%
{{ summary.saved }} 次省下 LLM
反饋分
{{ "%.2f"|format(summary.avg_score) }}
{{ summary.feedback_count }} 筆 · 平均 {{ summary.avg_hits }} 次命中
{% endif %}
diff --git a/templates/components/_legacy_bridge_panel.html b/templates/components/_legacy_bridge_panel.html index fc9fb74..cb7dee1 100644 --- a/templates/components/_legacy_bridge_panel.html +++ b/templates/components/_legacy_bridge_panel.html @@ -6,7 +6,7 @@ {{ legacy_bridge_kicker|default('MIGRATED PAGE') }}

{{ legacy_bridge_heading|default(legacy_bridge_title|default('頁面已升級')) }}

-

{{ legacy_bridge_body|default('這個舊入口已接到新版 EwoooC V3 設計系統。') }}

+

{{ legacy_bridge_body|default('請前往新版工作台完成同一個業績任務。') }}

diff --git a/templates/crawler_management.html b/templates/crawler_management.html index e3abc1c..081735c 100644 --- a/templates/crawler_management.html +++ b/templates/crawler_management.html @@ -3,7 +3,7 @@ {% set legacy_bridge_kicker = 'SYSTEM OPERATIONS' %} {% set legacy_bridge_icon = 'fas fa-gear' %} {% set legacy_bridge_heading = '爬蟲管理已移到系統管理' %} -{% set legacy_bridge_body = '舊版 crawler_management.html 已停用;爬蟲啟停、排程資訊與系統設定統一收斂到新版系統管理頁。' %} +{% set legacy_bridge_body = '到系統管理確認爬蟲與排程,讓比價與業績判斷保持新鮮。' %} {% set legacy_bridge_target = '/settings' %} {% set legacy_bridge_cta = '開啟系統管理' %} {% set legacy_bridge_secondary_target = '/logs' %} diff --git a/templates/dashboard.html b/templates/dashboard.html index 7cc9743..90bf711 100644 --- a/templates/dashboard.html +++ b/templates/dashboard.html @@ -3,7 +3,7 @@ {% set legacy_bridge_kicker = 'MIGRATED DASHBOARD' %} {% set legacy_bridge_icon = 'fas fa-border-all' %} {% set legacy_bridge_heading = '請使用業績成長指揮台' %} -{% set legacy_bridge_body = '舊版 dashboard.html 已停用;正式入口現在是 PChome 業績成長指揮台,商品看板僅保留為舊資料檢視入口。' %} +{% set legacy_bridge_body = '先回業績成長指揮台,從業績、價差與下一步決定今天要處理的商品。' %} {% set legacy_bridge_target = '/ai_intelligence' %} {% set legacy_bridge_cta = '開啟業績成長指揮台' %} {% set legacy_bridge_secondary_target = '/observability/overview' %} diff --git a/templates/edm_dashboard.html b/templates/edm_dashboard.html index c80ebc9..af02401 100644 --- a/templates/edm_dashboard.html +++ b/templates/edm_dashboard.html @@ -3,7 +3,7 @@ {% set legacy_bridge_kicker = 'MIGRATED CAMPAIGN' %} {% set legacy_bridge_icon = 'fas fa-bullhorn' %} {% set legacy_bridge_heading = '請使用新版活動看板' %} -{% set legacy_bridge_body = '舊版 edm_dashboard.html 已停用,正式入口現在由 edm_dashboard_v2.html 與新版響應式表格負責。' %} +{% set legacy_bridge_body = '用新版活動看板查看價格異動,決定主推、補貨與曝光位置。' %} {% set legacy_bridge_target = '/edm' %} {% set legacy_bridge_cta = '開啟活動看板' %} {% set legacy_bridge_secondary_target = '/festival' %} diff --git a/templates/history.html b/templates/history.html index 5474101..21e4877 100644 --- a/templates/history.html +++ b/templates/history.html @@ -3,7 +3,7 @@ {% set legacy_bridge_kicker = 'VENDOR OPERATIONS' %} {% set legacy_bridge_icon = 'fas fa-clock-rotate-left' %} {% set legacy_bridge_heading = '請使用新版發送歷史' %} -{% set legacy_bridge_body = '舊版 history.html 已停用,正式入口現在使用新版廠商缺貨工具頁與一致的營運視覺規範。' %} +{% set legacy_bridge_body = '查看缺貨處理紀錄,先補救會影響主推商品的供貨風險。' %} {% set legacy_bridge_target = '/vendor-stockout/history' %} {% set legacy_bridge_cta = '開啟發送歷史' %} {% set legacy_bridge_secondary_target = '/vendor-stockout/list' %} diff --git a/templates/import.html b/templates/import.html index 816c7e8..d4e3fad 100644 --- a/templates/import.html +++ b/templates/import.html @@ -3,7 +3,7 @@ {% set legacy_bridge_kicker = 'VENDOR OPERATIONS' %} {% set legacy_bridge_icon = 'fas fa-file-import' %} {% set legacy_bridge_heading = '請使用新版雲端匯入入口' %} -{% set legacy_bridge_body = '舊版 import.html 已停用;廠商缺貨匯入與 Google Drive 自動匯入都已接到新版 V3 shell。' %} +{% set legacy_bridge_body = '先補齊缺貨與業績資料,讓分析、建議與解法有可靠來源。' %} {% set legacy_bridge_target = '/vendor-stockout/import' %} {% set legacy_bridge_cta = '開啟廠商匯入' %} {% set legacy_bridge_secondary_target = '/auto_import' %} diff --git a/templates/send_email.html b/templates/send_email.html index 895faba..d39ac9d 100644 --- a/templates/send_email.html +++ b/templates/send_email.html @@ -3,7 +3,7 @@ {% set legacy_bridge_kicker = 'VENDOR OPERATIONS' %} {% set legacy_bridge_icon = 'fas fa-paper-plane' %} {% set legacy_bridge_heading = '請使用新版郵件發送' %} -{% set legacy_bridge_body = '舊版 send_email.html 已停用,正式入口現在由新版廠商缺貨工具頁負責,包含響應式排版與新版字型規範。' %} +{% set legacy_bridge_body = '先處理缺貨通知失敗,避免補貨協調中斷。' %} {% set legacy_bridge_target = '/vendor-stockout/send-email' %} {% set legacy_bridge_cta = '開啟郵件發送' %} {% set legacy_bridge_secondary_target = '/vendor-stockout/vendor-management' %} diff --git a/templates/settings.html b/templates/settings.html index 4c33239..adcb4cb 100644 --- a/templates/settings.html +++ b/templates/settings.html @@ -22,7 +22,7 @@