| - time | - time | ||||
| - vectorizer | - vectorizer | ||||
| - gaode | - gaode | ||||
| - wecom |
| from typing import Any, Union | |||||
| import httpx | |||||
| from core.tools.entities.tool_entities import ToolInvokeMessage | |||||
| from core.tools.tool.builtin_tool import BuiltinTool | |||||
| class WecomRepositoriesTool(BuiltinTool): | |||||
| def _invoke(self, user_id: str, tool_parameters: dict[str, Any] | |||||
| ) -> Union[ToolInvokeMessage, list[ToolInvokeMessage]]: | |||||
| """ | |||||
| invoke tools | |||||
| """ | |||||
| content = tool_parameters.get('content', '') | |||||
| if not content: | |||||
| return self.create_text_message('Invalid parameter content') | |||||
| hook_key = tool_parameters.get('hook_key', '') | |||||
| if not hook_key: | |||||
| return self.create_text_message('Invalid parameter hook_key') | |||||
| msgtype = 'text' | |||||
| api_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send' | |||||
| headers = { | |||||
| 'Content-Type': 'application/json', | |||||
| } | |||||
| params = { | |||||
| 'key': hook_key, | |||||
| } | |||||
| payload = { | |||||
| "msgtype": msgtype, | |||||
| "text": { | |||||
| "content": content, | |||||
| } | |||||
| } | |||||
| try: | |||||
| res = httpx.post(api_url, headers=headers, params=params, json=payload) | |||||
| if res.is_success: | |||||
| return self.create_text_message("Text message sent successfully") | |||||
| else: | |||||
| return self.create_text_message( | |||||
| f"Failed to send the text message, status code: {res.status_code}, response: {res.text}") | |||||
| except Exception as e: | |||||
| return self.create_text_message("Failed to send message to group chat bot. {}".format(e)) |
| identity: | |||||
| name: wecom_group_bot | |||||
| author: Bowen Liang | |||||
| label: | |||||
| en_US: Send Group Message | |||||
| zh_Hans: 发送群消息 | |||||
| pt_BR: Send Group Message | |||||
| icon: icon.svg | |||||
| description: | |||||
| human: | |||||
| en_US: Sending a group message on Wecom via the webhook of group bot | |||||
| zh_Hans: 通过企业微信的群机器人webhook发送群消息 | |||||
| pt_BR: Sending a group message on Wecom via the webhook of group bot | |||||
| llm: A tool for sending messages to a chat group on Wecom(企业微信) . | |||||
| parameters: | |||||
| - name: hook_key | |||||
| type: string | |||||
| required: true | |||||
| label: | |||||
| en_US: Wecom Group bot webhook key | |||||
| zh_Hans: 群机器人webhook的key | |||||
| pt_BR: Wecom Group bot webhook key | |||||
| human_description: | |||||
| en_US: Wecom Group bot webhook key | |||||
| zh_Hans: 群机器人webhook的key | |||||
| pt_BR: Wecom Group bot webhook key | |||||
| form: form | |||||
| - name: content | |||||
| type: string | |||||
| required: true | |||||
| label: | |||||
| en_US: content | |||||
| zh_Hans: 消息内容 | |||||
| pt_BR: content | |||||
| human_description: | |||||
| en_US: Content to sent to the group. | |||||
| zh_Hans: 群消息文本 | |||||
| pt_BR: Content to sent to the group. | |||||
| llm_description: Content of the message | |||||
| form: llm |
| from core.tools.provider.builtin.wecom.tools.wecom_group_bot import WecomRepositoriesTool | |||||
| from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController | |||||
| class GaodeProvider(BuiltinToolProviderController): | |||||
| def _validate_credentials(self, credentials: dict) -> None: | |||||
| WecomRepositoriesTool() | |||||
| pass |
| identity: | |||||
| author: Bowen Liang | |||||
| name: wecom | |||||
| label: | |||||
| en_US: Wecom | |||||
| zh_Hans: 企业微信 | |||||
| pt_BR: Wecom | |||||
| description: | |||||
| en_US: Wecom group bot | |||||
| zh_Hans: 企业微信群机器人 | |||||
| pt_BR: Wecom group bot | |||||
| icon: icon.png | |||||
| credentials_for_provider: |