调整自动回复逻辑
This commit is contained in:
@@ -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}")
|
||||
|
||||
Reference in New Issue
Block a user