fix(telegram): strip <placeholder> 佔位符防止 HTML parse 錯誤
OpenClaw 生成的 kubectl_command 含 <受影響服務名稱> 在 Telegram HTML parse mode 下造成 'Can't parse entities' 用 regex strip 所有 <...> 佔位符 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -97,11 +97,16 @@ async def _push_decision_to_telegram(
|
||||
gateway = get_telegram_gateway()
|
||||
|
||||
# 從 proposal_data 提取資料
|
||||
import re as _re
|
||||
def _strip_placeholders(s: str) -> str:
|
||||
"""移除 <placeholder> 佔位符,避免 Telegram HTML parse 錯誤"""
|
||||
return _re.sub(r'<[^>]+>', '', s).strip()
|
||||
|
||||
target = incident.affected_services[0] if incident.affected_services else "unknown"
|
||||
risk_level = proposal_data.get("risk_level", "medium")
|
||||
action = proposal_data.get("action", proposal_data.get("kubectl_command", ""))
|
||||
action = _strip_placeholders(proposal_data.get("action", proposal_data.get("kubectl_command", "")))
|
||||
description = proposal_data.get("description", "")
|
||||
reasoning = proposal_data.get("reasoning", "")
|
||||
reasoning = _strip_placeholders(proposal_data.get("reasoning", ""))
|
||||
confidence = proposal_data.get("confidence", 0.0) # 🔴 預設 0.0 表示未經 AI 分析
|
||||
source = proposal_data.get("source", "unknown")
|
||||
ai_provider = proposal_data.get("provider", "") # 2026-03-29 ogt: AI 模型來源
|
||||
|
||||
Reference in New Issue
Block a user