Browse Source

Enhance: tools wecom bot support markdown message (#5791)

quicksand 9 months ago
parent
commit
2a27568537

+ 15 - 7
api/core/tools/provider/builtin/wecom/tools/wecom_group_bot.py

@@ -22,7 +22,21 @@ class WecomGroupBotTool(BuiltinTool):
             return self.create_text_message(
                 f'Invalid parameter hook_key ${hook_key}, not a valid UUID')
 
-        msgtype = 'text'
+        message_type = tool_parameters.get('message_type', 'text')
+        if message_type == 'markdown':
+            payload = {
+                "msgtype": 'markdown',
+                "markdown": {
+                    "content": content,
+                }
+            }
+        else:
+            payload = {
+                "msgtype": 'text',
+                "text": {
+                    "content": content,
+                }
+            }
         api_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send'
         headers = {
             'Content-Type': 'application/json',
@@ -30,12 +44,6 @@ class WecomGroupBotTool(BuiltinTool):
         params = {
             'key': hook_key,
         }
-        payload = {
-            "msgtype": msgtype,
-            "text": {
-                "content": content,
-            }
-        }
 
         try:
             res = httpx.post(api_url, headers=headers, params=params, json=payload)

+ 24 - 0
api/core/tools/provider/builtin/wecom/tools/wecom_group_bot.yaml

@@ -38,3 +38,27 @@ parameters:
       pt_BR: Content to sent to the group.
     llm_description: Content of the message
     form: llm
+  - name: message_type
+    type: select
+    default: text
+    required: true
+    label:
+      en_US: Wecom Group bot message type
+      zh_Hans: 群机器人webhook的消息类型
+      pt_BR: Wecom Group bot message type
+    human_description:
+      en_US: Wecom Group bot message type
+      zh_Hans: 群机器人webhook的消息类型
+      pt_BR: Wecom Group bot message type
+    options:
+      - value: text
+        label:
+          en_US: Text
+          zh_Hans: 文本
+          pt_BR: Text
+      - value: markdown
+        label:
+          en_US: Markdown
+          zh_Hans: Markdown
+          pt_BR: Markdown
+    form: form