Files
Mofox-Core/docs/doc1.md

176 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📂 文件及功能介绍 (2025年更新)
## 根目录
- **README.md**: 项目的概述和使用说明。
- **requirements.txt**: 项目所需的Python依赖包列表。
- **bot.py**: 主启动文件负责环境配置加载和NoneBot初始化。
- **template.env**: 环境变量模板文件。
- **pyproject.toml**: Python项目配置文件。
- **docker-compose.yml** 和 **Dockerfile**: Docker配置文件用于容器化部署。
- **run_*.bat**: 各种启动脚本包括数据库、maimai和thinking功能。
## `src/` 目录结构
- **`plugins/` 目录**: 存放不同功能模块的插件。
- **chat/**: 处理聊天相关的功能,如消息发送和接收。
- **memory_system/**: 处理机器人的记忆功能。
- **knowledege/**: 知识库相关功能。
- **models/**: 模型相关工具。
- **schedule/**: 处理日程管理的功能。
- **`gui/` 目录**: 存放图形用户界面相关的代码。
- **reasoning_gui.py**: 负责推理界面的实现,提供用户交互。
- **`common/` 目录**: 存放通用的工具和库。
- **database.py**: 处理与数据库的交互,负责数据的存储和检索。
- ****init**.py**: 初始化模块。
## `config/` 目录
- **bot_config_template.toml**: 机器人配置模板。
- **auto_format.py**: 自动格式化工具。
### `src/plugins/chat/` 目录文件详细介绍
1. **`__init__.py`**:
- 初始化 `chat` 模块,使其可以作为一个包被导入。
2. **`bot.py`**:
- 主要的聊天机器人逻辑实现,处理消息的接收、思考和回复。
- 包含 `ChatBot` 类,负责消息处理流程控制。
- 集成记忆系统和意愿管理。
3. **`config.py`**:
- 配置文件,定义了聊天机器人的各种参数和设置。
- 包含 `BotConfig` 和全局配置对象 `global_config`
4. **`cq_code.py`**:
- 处理 CQ 码CoolQ 码),用于发送和接收特定格式的消息。
5. **`emoji_manager.py`**:
- 管理表情包的发送和接收,根据情感选择合适的表情。
- 提供根据情绪获取表情的方法。
6. **`llm_generator.py`**:
- 生成基于大语言模型的回复,处理用户输入并生成相应的文本。
- 通过 `ResponseGenerator` 类实现回复生成。
7. **`message.py`**:
- 定义消息的结构和处理逻辑,包含多种消息类型:
- `Message`: 基础消息类
- `MessageSet`: 消息集合
- `Message_Sending`: 发送中的消息
- `Message_Thinking`: 思考状态的消息
8. **`message_sender.py`**:
- 控制消息的发送逻辑,确保消息按照特定规则发送。
- 包含 `message_manager` 对象,用于管理消息队列。
9. **`prompt_builder.py`**:
- 构建用于生成回复的提示,优化机器人的响应质量。
10. **`relationship_manager.py`**:
- 管理用户之间的关系,记录用户的互动和偏好。
- 提供更新关系和关系值的方法。
11. **`Segment_builder.py`**:
- 构建消息片段的工具。
12. **`storage.py`**:
- 处理数据存储,负责将聊天记录和用户信息保存到数据库。
- 实现 `MessageStorage` 类管理消息存储。
13. **`thinking_idea.py`**:
- 实现机器人的思考机制。
14. **`topic_identifier.py`**:
- 识别消息中的主题,帮助机器人理解用户的意图。
15. **`utils.py`** 和 **`utils_*.py`** 系列文件:
- 存放各种工具函数,提供辅助功能以支持其他模块。
- 包括 `utils_cq.py``utils_image.py``utils_user.py` 等专门工具。
16. **`willing_manager.py`**:
- 管理机器人的回复意愿,动态调整回复概率。
- 通过多种因素(如被提及、话题兴趣度)影响回复决策。
### `src/plugins/memory_system/` 目录文件介绍
1. **`memory.py`**:
- 实现记忆管理核心功能,包含 `memory_graph` 对象。
- 提供相关项目检索,支持多层次记忆关联。
2. **`draw_memory.py`**:
- 记忆可视化工具。
3. **`memory_manual_build.py`**:
- 手动构建记忆的工具。
4. **`offline_llm.py`**:
- 离线大语言模型处理功能。
## 消息处理流程
### 1. 消息接收与预处理
- 通过 `ChatBot.handle_message()` 接收群消息。
- 进行用户和群组的权限检查。
- 更新用户关系信息。
- 创建标准化的 `Message` 对象。
- 对消息进行过滤和敏感词检测。
### 2. 主题识别与决策
- 使用 `topic_identifier` 识别消息主题。
- 通过记忆系统检查对主题的兴趣度。
- `willing_manager` 动态计算回复概率。
- 根据概率决定是否回复消息。
### 3. 回复生成与发送
- 如需回复,首先创建 `Message_Thinking` 对象表示思考状态。
- 调用 `ResponseGenerator.generate_response()` 生成回复内容和情感状态。
- 删除思考消息,创建 `MessageSet` 准备发送回复。
- 计算模拟打字时间,设置消息发送时间点。
- 可能附加情感相关的表情包。
- 通过 `message_manager` 将消息加入发送队列。
### 消息发送控制系统
`message_sender.py` 中实现了消息发送控制系统,采用三层结构:
1. **消息管理**:
- 支持单条消息和消息集合的发送。
- 处理思考状态消息,控制思考时间。
- 模拟人类打字速度,添加自然发送延迟。
2. **情感表达**:
- 根据生成回复的情感状态选择匹配的表情包。
- 通过 `emoji_manager` 管理表情资源。
3. **记忆交互**:
- 通过 `memory_graph` 检索相关记忆。
- 根据记忆内容影响回复意愿和内容。
## 系统特色功能
1. **智能回复意愿系统**:
- 动态调整回复概率,模拟真实人类交流特性。
- 考虑多种因素:被提及、话题兴趣度、用户关系等。
2. **记忆系统集成**:
- 支持多层次记忆关联和检索。
- 影响机器人的兴趣和回复内容。
3. **自然交流模拟**:
- 模拟思考和打字过程,添加合理延迟。
- 情感表达与表情包结合。
4. **多环境配置支持**:
- 支持开发环境和生产环境的不同配置。
- 通过环境变量和配置文件灵活管理设置。
5. **Docker部署支持**:
- 提供容器化部署方案,简化安装和运行。