From 077e1cd637dfeb03898f39ab948297410dbc6f57 Mon Sep 17 00:00:00 2001 From: OG T Date: Thu, 2 Apr 2026 00:51:13 +0800 Subject: [PATCH] =?UTF-8?q?fix(telegram):=20=E4=BF=AE=E5=BE=A9=E6=89=80?= =?UTF-8?q?=E6=9C=89=20webhook=20=E8=B7=AF=E5=BE=91=E7=BC=BA=E5=A4=B1=20ai?= =?UTF-8?q?=5Fprovider=20=E2=86=92=20Telegram=20=E9=A1=AF=E7=A4=BA?= =?UTF-8?q?=E3=80=8CAI=20=E4=BB=B2=E8=A3=81=E5=88=A4=E5=AE=9A=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根本原因: send_approval_card() 有 ai_provider 參數,但三個 webhook 呼叫端都沒傳: - signoz_webhook.py: 有 ai_provider 參數但未轉傳給 send_approval_card - sentry_webhook.py: 有 analysis.analyzed_by 但未傳 - webhooks.py: _push_to_telegram_background 缺少 ai_provider 參數 修復後 Telegram 會顯示「🤖 OpenClaw Nemo 仲裁」而非「🤖 AI 仲裁判定」 2026-04-02 ogt: 三個 webhook 路徑統一修復 Co-Authored-By: Claude Opus 4.6 (1M context) --- apps/api/src/api/v1/sentry_webhook.py | 2 ++ apps/api/src/api/v1/signoz_webhook.py | 2 ++ apps/api/src/api/v1/webhooks.py | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/apps/api/src/api/v1/sentry_webhook.py b/apps/api/src/api/v1/sentry_webhook.py index 06b24dc1e..cf12df452 100644 --- a/apps/api/src/api/v1/sentry_webhook.py +++ b/apps/api/src/api/v1/sentry_webhook.py @@ -447,6 +447,8 @@ async def send_sentry_telegram_alert( confidence=analysis.confidence if analysis else 0.0, namespace="sentry", anomaly_frequency=anomaly_frequency, + # 2026-04-02 ogt: 修復 ai_provider 未傳遞 → Telegram 顯示「AI 仲裁判定」而非具體模型名稱 + ai_provider=analysis.analyzed_by if analysis else "", ) logger.info( diff --git a/apps/api/src/api/v1/signoz_webhook.py b/apps/api/src/api/v1/signoz_webhook.py index b97cc3fb9..aec4bf015 100644 --- a/apps/api/src/api/v1/signoz_webhook.py +++ b/apps/api/src/api/v1/signoz_webhook.py @@ -385,6 +385,8 @@ async def send_signoz_telegram( confidence=analysis_result.confidence if analysis_result else 0.0, namespace=labels.get("namespace", "signoz"), anomaly_frequency=anomaly_frequency, + # 2026-04-02 ogt: 修復 ai_provider 未傳遞 → Telegram 顯示「AI 仲裁判定」而非具體模型名稱 + ai_provider=ai_provider if ai_provider != "none" else "", ) logger.info( diff --git a/apps/api/src/api/v1/webhooks.py b/apps/api/src/api/v1/webhooks.py index 2fab1688a..c3adad5a2 100644 --- a/apps/api/src/api/v1/webhooks.py +++ b/apps/api/src/api/v1/webhooks.py @@ -171,6 +171,8 @@ async def _push_to_telegram_background( signoz_latency_trend: str = "stable", signoz_trace_url: str = "", auto_tuning_command: str = "", + # 2026-04-02 ogt: 修復 ai_provider 未傳遞 → Telegram 顯示「AI 仲裁判定」而非具體模型名稱 + ai_provider: str = "", ) -> None: """ 背景任務: 推送待簽核卡片到 Telegram (v7.0 含 SignOz 整合) @@ -217,6 +219,7 @@ async def _push_to_telegram_background( # 2026-03-29 ogt: AI Token/Cost 追蹤 ai_tokens=ai_tokens, ai_cost=ai_cost, + ai_provider=ai_provider, ) logger.info( @@ -772,6 +775,7 @@ async def receive_alert( # 2026-03-29 ogt: AI Token/Cost 追蹤 ai_tokens=ai_tokens, ai_cost=ai_cost, + ai_provider=ai_provider, ) return AlertResponse( @@ -1142,6 +1146,7 @@ async def alertmanager_webhook( # 2026-03-29 ogt: AI Token/Cost 追蹤 ai_tokens=ai_tokens, ai_cost=ai_cost, + ai_provider=ai_provider, ) return AlertResponse(