调整自动回复逻辑

This commit is contained in:
liuwei
2025-05-21 16:24:49 +08:00
parent 4bdc04d2da
commit 95db155077
3 changed files with 89 additions and 25 deletions

View File

@@ -61,12 +61,12 @@ class AIAutoResponsePlugin(MessagePluginInterface):
# 加载配置
config_path = os.path.join(os.path.dirname(__file__), "config.toml")
self.enable = self._config.get("AIAutoResponse", {}).get("enable", True)
self.enable = self._config.get("enable", True)
self._commands = ["ai介入", "ai对话", "ai自动回复"]
# 从配置中获取DIFY API密钥
self.dify_api_key = self._config.get("AIAutoResponse", {}).get("dify_api_key", "")
self.dify_api_url = self._config.get("AIAutoResponse", {}).get("dify_api_url",
"http://192.168.2.240/v1/chat-messages")
self.dify_api_key = self._config.get("dify_api_key", "")
self.dify_api_url = self._config.get("dify_api_url", "http://192.168.2.240/v1/chat-messages")
# 初始化介入机器人
self.intervention_bot = InterventionBot(config_path)
@@ -103,11 +103,14 @@ class AIAutoResponsePlugin(MessagePluginInterface):
self.group_messages[roomid] = []
# 添加新消息
self.group_messages[roomid].append({
current_message = {
"timestamp": message.get("timestamp", ""),
"message": content,
"sender": message.get("sender", "")
})
}
# 添加新消息
self.group_messages[roomid].append(current_message)
# 限制消息数量
if len(self.group_messages[roomid]) > self.max_messages:
@@ -117,7 +120,8 @@ class AIAutoResponsePlugin(MessagePluginInterface):
messages = [msg["message"] for msg in self.group_messages[roomid]]
timestamp = message.get("timestamp", "")
return self.intervention_bot.should_intervene(timestamp, content, messages)
# 传递完整的聊天记录给should_intervene方法
return self.intervention_bot.should_intervene(timestamp, content, messages, self.group_messages[roomid])
return False
@@ -136,6 +140,10 @@ class AIAutoResponsePlugin(MessagePluginInterface):
# 获取最近的消息
messages = [msg["message"] for msg in self.group_messages[roomid]]
timestamp = message.get("timestamp", "")
# 记录触发原因
if self.intervention_bot.rule_high_reply_rate(timestamp, self.group_messages[roomid]):
self.LOG.info(f"[{roomid}] 触发高频率回复规则,准备生成回复")
# 生成回复
response = self._generate_response_with_dify(content, messages)
@@ -143,6 +151,8 @@ class AIAutoResponsePlugin(MessagePluginInterface):
# 发送回复
await bot.send_text_message(roomid, response, sender)
return True, "自动回复成功"
else:
return False, "生成回复失败"
except Exception as e:
self.LOG.error(f"处理AI自动对话出错: {e}")