From e293b05fa12cfb102e564ea15b128d3d3a96686e Mon Sep 17 00:00:00 2001 From: KawakazeNotFound Date: Thu, 6 Nov 2025 15:11:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=81=E8=81=8A=E5=88=9D=E6=AD=A5=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PRIVATE_CHAT_CHANGES.md | 174 ---------------------------------------- 1 file changed, 174 deletions(-) delete mode 100644 PRIVATE_CHAT_CHANGES.md diff --git a/PRIVATE_CHAT_CHANGES.md b/PRIVATE_CHAT_CHANGES.md deleted file mode 100644 index 131ec9d..0000000 --- a/PRIVATE_CHAT_CHANGES.md +++ /dev/null @@ -1,174 +0,0 @@ -# 私聊功能实现总结 - -## 📝 概览 - -已成功为 nonebot-plugin-llmchat 项目添加了完整的私聊功能支持。用户现在可以在私聊中与机器人进行对话,同时保持群聊功能完全不变。 - ---- - -## 🔧 主要改动 - -### 1. **config.py** - 配置模块 - -#### 新增配置项: -- `LLMCHAT__ENABLE_PRIVATE_CHAT` (bool, 默认值: False) - - 是否启用私聊功能 - -- `LLMCHAT__PRIVATE_CHAT_PRESET` (str, 默认值: "off") - - 私聊默认使用的预设名称 - -### 2. **__init__.py** - 主程序模块 - -#### 新增导入: -```python -from typing import Union -from nonebot.adapters.onebot.v11 import PrivateMessageEvent -``` - -#### 新增数据结构: - -**PrivateChatState 类** -- 用于管理每个用户的私聊状态 -- 结构与 GroupState 类似,但针对单个用户独立管理 -- 包含:preset_name、history、queue、processing 等属性 - -**private_chat_states 字典** -- 类型:`dict[int, PrivateChatState]` -- 按用户ID存储私聊状态 - -#### 修改的函数: - -1. **format_message()** - - 参数改为:`event: Union[GroupMessageEvent, PrivateMessageEvent]` - - 支持两种消息事件类型的格式化 - -2. **is_triggered()** - - 参数改为:`event: Union[GroupMessageEvent, PrivateMessageEvent]` - - 新增私聊事件检测逻辑 - - 私聊消息在启用且预设不为"off"时自动触发 - -3. **get_preset()** - - 新增参数:`is_group: bool = True` - - 支持从群组或私聊状态获取预设配置 - -4. **process_messages()** - - 新增参数:`context_id: int, is_group: bool = True` - - 支持处理群组和私聊消息 - - 私聊时跳过OneBot群操作工具(ob__开头的工具) - -5. **handle_message()** - - 参数改为:`event: Union[GroupMessageEvent, PrivateMessageEvent]` - - 支持路由到不同的处理逻辑 - -6. **save_state()** / **load_state()** - - 新增私聊状态的持久化 - - 私聊状态保存到单独的文件:`llmchat_private_state.json` - -#### 新增命令处理器(私聊相关): - -所有私聊命令需要主人权限,且仅在启用私聊功能时可用: - -1. **私聊API预设** - - 查看或修改私聊使用的API预设 - - 用法:`私聊API预设 [预设名]` - -2. **私聊修改设定** - - 修改私聊机器人的性格设定 - - 用法:`私聊修改设定 [新设定]` - -3. **私聊记忆清除** - - 清除私聊的对话历史记录 - - 用法:`私聊记忆清除` - -4. **私聊切换思维输出** - - 切换是否输出AI的思维过程 - - 用法:`私聊切换思维输出` - -### 3. **README.md** - 文档更新 - -#### 更新的章节: - -1. **项目介绍** - - 更新标题为"群聊&私聊的AI对话插件" - - 添加"群聊和私聊支持"功能说明 - -2. **配置表格** - - 添加两个新配置项的说明 - -3. **使用指南** - - 将原"指令表"改名为"群聊指令表" - - 新增"私聊指令表" - - 添加"私聊功能启用示例"部分 - ---- - -## 🚀 使用指南 - -### 启用私聊功能 - -在 `.env` 文件中添加: - -```bash -# 启用私聊功能 -LLMCHAT__ENABLE_PRIVATE_CHAT=true - -# 设置私聊默认预设 -LLMCHAT__PRIVATE_CHAT_PRESET="deepseek-v1" -``` - -### 私聊命令示例 - -``` -# 主人私聊机器人 - -私聊API预设 # 查看当前预设 -私聊API预设 aliyun-deepseek-v3 # 切换预设 - -私聊修改设定 你是一个有趣的AI # 修改性格设定 - -私聊记忆清除 # 清除对话记忆 - -私聊切换思维输出 # 开关思维过程输出 -``` - ---- - -## 🔑 关键特性 - -✅ **独立管理** - 群聊和私聊拥有完全独立的对话记忆和配置 - -✅ **灵活控制** - 可单独启用/禁用私聊功能,无需影响群聊 - -✅ **自动触发** - 私聊消息自动触发回复,无需@机器人 - -✅ **权限隔离** - 私聊命令仅主人可用 - -✅ **工具适配** - 私聊时自动跳过不适用的群操作工具 - -✅ **状态持久化** - 私聊状态独立保存和恢复 - ---- - -## 📊 文件对比 - -| 文件 | 变更类型 | 主要改动 | -|------|--------|--------| -| config.py | 修改 | 新增2个配置项 | -| __init__.py | 修改 | 新增私聊类、处理器、命令 | -| README.md | 修改 | 更新文档说明 | - ---- - -## ⚠️ 注意事项 - -1. **默认禁用** - 私聊功能默认为禁用状态,需要在配置文件中显式启用 - -2. **群操作工具** - OneBot群操作工具(禁言、撤回等)在私聊中不可用 - -3. **状态文件** - 私聊状态存储在 `llmchat_private_state.json` 文件中 - -4. **权限限制** - 所有私聊命令都需要主人权限 - -5. **独立预设** - 私聊和群聊可以使用不同的API预设 - -