855 协议版本-调整完毕内容
This commit is contained in:
@@ -6,6 +6,7 @@ import time
|
||||
import re # 添加re模块导入
|
||||
from typing import Dict, Any, List, Optional, Tuple
|
||||
|
||||
from loguru import logger
|
||||
|
||||
from message_util import MessageUtil
|
||||
from plugin_common.message_plugin_interface import MessagePluginInterface
|
||||
@@ -15,6 +16,7 @@ from utils.robot_cmd.robot_command import Feature, PermissionStatus, GroupBotMan
|
||||
from utils.decorator.points_decorator import plugin_points_cost
|
||||
from utils.media_downloader import MediaDownloader
|
||||
from utils.string_utils import remove_trailing_content
|
||||
from wechat_ipad import WechatAPIClient
|
||||
|
||||
|
||||
class DifyPlugin(MessagePluginInterface):
|
||||
@@ -58,7 +60,6 @@ class DifyPlugin(MessagePluginInterface):
|
||||
|
||||
def initialize(self, context: Dict[str, Any]) -> bool:
|
||||
"""初始化插件"""
|
||||
self.LOG = logging.getLogger(f"Plugin.{self.name}")
|
||||
self.LOG.info(f"正在初始化 {self.name} 插件...")
|
||||
|
||||
# 保存上下文对象
|
||||
@@ -114,7 +115,7 @@ class DifyPlugin(MessagePluginInterface):
|
||||
|
||||
@plugin_stats_decorator(plugin_name="Dify聊天")
|
||||
@plugin_points_cost(2, "AI聊天消耗积分", Feature.AI_CAPABILITY)
|
||||
def process_message(self, message: Dict[str, Any]) -> Tuple[bool, Optional[str]]:
|
||||
async def process_message(self, message: Dict[str, Any]) -> Tuple[bool, Optional[str]]:
|
||||
"""处理消息"""
|
||||
content = str(message.get("content", "")).strip()
|
||||
self.LOG.info(f"插件执行: {self.name}:{content}")
|
||||
@@ -122,6 +123,7 @@ class DifyPlugin(MessagePluginInterface):
|
||||
roomid = message.get("roomid", "")
|
||||
gbm: GroupBotManager = message.get("gbm")
|
||||
|
||||
bot: WechatAPIClient = message.get("bot")
|
||||
# 处理被@的消息
|
||||
if message.get("is_at", False) and roomid:
|
||||
# 检查权限
|
||||
@@ -132,14 +134,14 @@ class DifyPlugin(MessagePluginInterface):
|
||||
query = re.sub(r"@.*?[\u2005|\s]", "", content).strip()
|
||||
|
||||
if not query:
|
||||
self.message_util.send_text("请在@我的同时提供问题内容", roomid, sender)
|
||||
await bot.send_text_message(roomid, "请在@我的同时提供问题内容", sender)
|
||||
return False, "没有提供问题内容"
|
||||
|
||||
# self.message_util.send_text_msg("⏳AI 正在加油,请稍候… 😊", roomid, sender)
|
||||
|
||||
try:
|
||||
# 调用Dify API获取回复
|
||||
response = self._chat_with_dify(roomid, sender, query)
|
||||
response = self._chat_with_dify((roomid if roomid else sender), sender, query)
|
||||
# 去除广告内容
|
||||
response = remove_trailing_content(response)
|
||||
|
||||
@@ -151,15 +153,15 @@ class DifyPlugin(MessagePluginInterface):
|
||||
self.message_util.send_file(response, roomid)
|
||||
else:
|
||||
# 如果是普通文本,使用发送文本方法
|
||||
self.message_util.send_text(response, roomid, sender)
|
||||
await bot.send_text_message((roomid if roomid else sender), response, sender)
|
||||
return True, "发送成功"
|
||||
else:
|
||||
self.message_util.send_text("❌未能获取到回复,请稍后再试", roomid, sender)
|
||||
await bot.send_text_message((roomid if roomid else sender), "❌未能获取到回复,请稍后再试", sender)
|
||||
return False, "未获取到回复"
|
||||
|
||||
except Exception as e:
|
||||
self.LOG.error(f"处理Dify聊天请求出错: {e}")
|
||||
self.message_util.send_text(f"❌请求出错:{str(e)}", roomid, sender)
|
||||
await bot.send_text_message((roomid if roomid else sender), "❌未能获取到回复,请稍后再试", sender)
|
||||
return False, f"处理出错: {e}"
|
||||
|
||||
# 原有的命令处理逻辑
|
||||
@@ -168,8 +170,7 @@ class DifyPlugin(MessagePluginInterface):
|
||||
|
||||
# 检查命令格式
|
||||
if len(parts) < 2 or not parts[1].strip():
|
||||
self.message_util.send_text(f"{self.command_format}",
|
||||
(roomid if roomid else sender), sender)
|
||||
await bot.send_text_message((roomid if roomid else sender), f"{self.command_format}", sender)
|
||||
return False, "命令格式错误"
|
||||
|
||||
# 检查权限
|
||||
@@ -199,16 +200,17 @@ class DifyPlugin(MessagePluginInterface):
|
||||
self.message_util.send_file(response, (roomid if roomid else sender))
|
||||
else:
|
||||
# 如果是普通文本,使用发送文本方法
|
||||
self.message_util.send_text(response, (roomid if roomid else sender), sender if roomid else "")
|
||||
await bot.send_text_message((roomid if roomid else sender), response,
|
||||
sender if roomid else "")
|
||||
return True, "发送成功"
|
||||
else:
|
||||
self.message_util.send_text("❌未能获取到回复,请稍后再试", (roomid if roomid else sender),
|
||||
await bot.send_text_message((roomid if roomid else sender), "❌未能获取到回复,请稍后再试",
|
||||
sender if roomid else "")
|
||||
return False, "未获取到回复"
|
||||
|
||||
except Exception as e:
|
||||
self.LOG.error(f"处理Dify聊天请求出错: {e}")
|
||||
self.message_util.send_text(f"❌请求出错:{str(e)}", (roomid if roomid else sender),
|
||||
await bot.send_text_message((roomid if roomid else sender), f"❌请求出错:{str(e)}",
|
||||
sender if roomid else "")
|
||||
return False, f"处理出错: {e}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user