diff --git a/plugins/dify/main.py b/plugins/dify/main.py index f458111..edfd400 100644 --- a/plugins/dify/main.py +++ b/plugins/dify/main.py @@ -106,12 +106,12 @@ class DifyPlugin(MessagePluginInterface): # 检查是否是命令触发 if command in self._commands: return True - + # 检查是否是被@的消息 if message.get("is_at", False) and message.get("roomid", ""): # 只处理群聊中被@的消息 return True - + return False @plugin_stats_decorator(plugin_name="Dify聊天") @@ -123,28 +123,28 @@ class DifyPlugin(MessagePluginInterface): sender = message.get("sender") roomid = message.get("roomid", "") gbm: GroupBotManager = message.get("gbm") - + # 处理被@的消息 if message.get("is_at", False) and roomid: # 检查权限 if gbm.get_group_permission(roomid, Feature.AI_CAPABILITY) == PermissionStatus.DISABLED: return False, "没有权限" - + # 去除@的人和空格等字符 query = re.sub(r"@.*?[\u2005|\s]", "", content).strip() - + if not query: self.message_util.send_text_msg("请在@我的同时提供问题内容", roomid, sender) return True, "没有提供问题内容" - + # self.message_util.send_text_msg("⏳AI 正在加油,请稍候… 😊", roomid, sender) - + try: # 调用Dify API获取回复 response = self._chat_with_dify(roomid, sender, query) # 去除广告内容 response = remove_trailing_content(response) - + # 发送回复 if response: # 判断是否为本地文件路径 @@ -158,26 +158,26 @@ class DifyPlugin(MessagePluginInterface): else: self.message_util.send_text_msg("❌未能获取到回复,请稍后再试", roomid, sender) return True, "未获取到回复" - + except Exception as e: self.LOG.error(f"处理Dify聊天请求出错: {e}") self.message_util.send_text_msg(f"❌请求出错:{str(e)}", roomid, sender) return True, f"处理出错: {e}" - + # 原有的命令处理逻辑 parts = content.split(" ", 1) command = parts[0] - + # 检查命令格式 if len(parts) < 2 or not parts[1].strip(): self.message_util.send_text_msg(f"{self.command_format}", - (roomid if roomid else sender), sender) + (roomid if roomid else sender), sender) return True, "命令格式错误" - + # 检查权限 if roomid and gbm.get_group_permission(roomid, Feature.AI_CAPABILITY) == PermissionStatus.DISABLED: return False, "没有权限" - + # self.message_util.send_text_msg("⏳AI 正在加油,请稍候… 😊", (roomid if roomid else sender),sender if roomid else "") # 获取查询内容 query = parts[1].strip() @@ -204,15 +204,16 @@ class DifyPlugin(MessagePluginInterface): self.message_util.send_text_msg(response, (roomid if roomid else sender), sender if roomid else "") return True, "发送成功" else: - self.message_util.send_text_msg("❌未能获取到回复,请稍后再试", (roomid if roomid else sender), sender if roomid else "") + self.message_util.send_text_msg("❌未能获取到回复,请稍后再试", (roomid if roomid else sender), + sender if roomid else "") return True, "未获取到回复" except Exception as e: self.LOG.error(f"处理Dify聊天请求出错: {e}") - self.message_util.send_text_msg(f"❌请求出错:{str(e)}", (roomid if roomid else sender), sender if roomid else "") + self.message_util.send_text_msg(f"❌请求出错:{str(e)}", (roomid if roomid else sender), + sender if roomid else "") return True, f"处理出错: {e}" - def _chat_with_dify(self, session_id: str, user_id: str, query: str) -> Optional[str]: """ 与Dify API交互获取回复