From 4ecd4df2d480e0bbacfafa5af4f4d235fa7145eb Mon Sep 17 00:00:00 2001 From: zhayujie Date: Mon, 16 Mar 2026 17:56:59 +0800 Subject: [PATCH] feat: web console support wecom_bot config --- channel/web/static/js/console.js | 14 +++++++++++++- channel/web/web_channel.py | 9 +++++++++ config-template.json | 2 ++ config.py | 1 - 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/channel/web/static/js/console.js b/channel/web/static/js/console.js index 36af2b4b..2b61e902 100644 --- a/channel/web/static/js/console.js +++ b/channel/web/static/js/console.js @@ -813,6 +813,11 @@ function escapeHtml(str) { return div.innerHTML; } +function ChannelsHandler_maskSecret(val) { + if (!val || val.length <= 8) return val; + return val.slice(0, 4) + '*'.repeat(val.length - 8) + val.slice(-4); +} + function formatToolArgs(args) { if (!args || Object.keys(args).length === 0) return '(none)'; try { @@ -1737,7 +1742,14 @@ function submitAddChannel() { .then(data => { if (data.status === 'success') { const ch = channelsData.find(c => c.name === chName); - if (ch) ch.active = true; + if (ch) { + ch.active = true; + (ch.fields || []).forEach(f => { + if (updates[f.key] !== undefined) { + f.value = f.type === 'secret' ? ChannelsHandler_maskSecret(updates[f.key]) : updates[f.key]; + } + }); + } renderActiveChannels(); } else { if (btn) { btn.disabled = false; btn.textContent = t('channels_connect_btn'); } diff --git a/channel/web/web_channel.py b/channel/web/web_channel.py index bae48fb5..b5ae372e 100644 --- a/channel/web/web_channel.py +++ b/channel/web/web_channel.py @@ -602,6 +602,15 @@ class ChannelsHandler: {"key": "dingtalk_client_secret", "label": "Client Secret", "type": "secret"}, ], }), + ("wecom_bot", { + "label": {"zh": "企微智能机器人", "en": "WeCom Bot"}, + "icon": "fa-robot", + "color": "emerald", + "fields": [ + {"key": "wecom_bot_id", "label": "Bot ID", "type": "text"}, + {"key": "wecom_bot_secret", "label": "Secret", "type": "secret"}, + ], + }), ("wechatcom_app", { "label": {"zh": "企微自建应用", "en": "WeCom App"}, "icon": "fa-building", diff --git a/config-template.json b/config-template.json index 9fefa11f..b73f4360 100644 --- a/config-template.json +++ b/config-template.json @@ -24,6 +24,8 @@ "feishu_app_secret": "", "dingtalk_client_id": "", "dingtalk_client_secret":"", + "wecom_bot_id": "", + "wecom_bot_secret": "", "agent": true, "agent_max_context_tokens": 40000, "agent_max_context_turns": 20, diff --git a/config.py b/config.py index af2fd022..7944a31f 100644 --- a/config.py +++ b/config.py @@ -153,7 +153,6 @@ available_setting = { # 企微智能机器人配置(长连接模式) "wecom_bot_id": "", # 企微智能机器人BotID "wecom_bot_secret": "", # 企微智能机器人长连接Secret - # chatgpt指令自定义触发词 "clear_memory_commands": ["#清除记忆"], # 重置会话指令,必须以#开头 # channel配置