From 718a64d506b4c867d74060aed5bffe57e45d8db2 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Fri, 28 Feb 2025 16:47:24 +0800 Subject: [PATCH] doc for intro 2 --- README.md | 7 +++--- docs/doc1.md | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 83824b0bc..3001e2863 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,10 @@ +## 📚 详细文档 +- [项目详细介绍和架构说明](docs/doc1.md) - 包含完整的项目结构、文件说明和核心功能实现细节(由claude-3.5-sonnet生成) - -### 安装方法(还没测试好,现在部署可能遇到未知问题!!!!!!) +### 安装方法(还没测试好,现在部署可能遇到未知问题!!!!) 1. **创建Python环境** 推荐使用conda或其他环境管理来管理你的python环境 @@ -48,7 +49,7 @@ 4. **配置文件设置** - 把env.example改成.env,并填上你的apikey(硅基流动或deepseekapi) - - 把bot_config_toml改名为bot_config.toml,并填写相关内容 + - 把bot_config_toml改名为bot_config.toml,并填写相关内容,不然无法正常运行 5. **运行麦麦** ```bash diff --git a/docs/doc1.md b/docs/doc1.md index f1294dc53..c9a00558d 100644 --- a/docs/doc1.md +++ b/docs/doc1.md @@ -90,3 +90,74 @@ ### 回复逻辑 - 回复逻辑由 `llm_generator.py` 和 `bot.py` 共同实现。`llm_generator.py` 负责生成基于用户输入的回复,使用大语言模型来理解上下文并生成自然语言响应。 - 在 `bot.py` 中,机器人会根据解析后的消息内容和生成的回复,决定如何将回复发送给用户。回复可以是文本、表情或其他类型的消息. + +# 发送逻辑详细介绍 + +## 消息发送控制系统 + +### 1. 消息队列管理 +消息发送系统采用了三层架构设计: +- **SendTemp**: 单个群组的临时消息队列管理器 + - 维护每个群的消息队列 + - 确保消息按时间顺序存储和发送 + - 支持消息的添加、获取和清空操作 + - 记录最后发送时间,控制发送频率 + +- **SendTempContainer**: 管理所有群组的消息缓存容器 + - 管理多个群组的消息队列 + - 提供群组消息的统一访问接口 + - 支持消息的分发和更新 + +- **MessageSendControl**: 消息发送控制器 + - 控制消息的发送速度和间隔 + - 处理消息的重试机制 + - 管理消息的存储和可视化 + +### 2. 发送流程 +1. **消息预处理**: + - 消息进入队列前会被格式化和标准化 + - 添加必要的元数据(时间戳、消息ID等) + - 根据消息类型(文本、图片、表情等)进行分类 + +2. **队列管理**: + - 消息按时间顺序存储在队列中 + - 使用双端队列(deque)实现,支持高效的添加和删除操作 + - 队列大小有限制,防止内存溢出 + +3. **发送控制**: + - 控制发送速度:模拟人类打字速度(0.1-0.3秒/字符) + - 消息间隔:多条消息之间保持0.5-1秒的间隔 + - 超时处理:思考时间超过60秒的消息会被自动移除 + - 失败重试:最多重试3次 + +### 3. 特殊功能 +1. **思考机制**: + - 支持"思考中"状态的消息 + - 控制思考时间,避免响应过快或过慢 + - 超时自动清理机制 + +2. **消息追踪**: + - 记录每条消息的发送状态 + - 支持消息的可视化展示 + - 提供发送时间统计 + +3. **安全机制**: + - 消息发送频率限制 + - 队列容量控制 + - 异常处理和恢复 + +### 4. 优化特性 +1. **并发处理**: + - 支持多个群组消息的并行处理 + - 使用异步机制提高效率 + - 避免单个群组阻塞整体发送 + +2. **智能排队**: + - 基于时间戳的消息排序 + - 支持消息优先级 + - 动态调整发送顺序 + +3. **状态监控**: + - 实时监控消息队列状态 + - 提供消息发送统计 + - 支持发送过程可视化