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