docs: 更新CLAUDE.md,添加项目架构和代码索引指南
- 添加Mermaid图表展示项目结构和流程 - 创建关键文件索引表格 - 详细描述记忆系统和聊天系统内部结构 - 增加配置系统概览 - 提供模块依赖关系图表 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
171
CLAUDE.md
171
CLAUDE.md
@@ -1,4 +1,4 @@
|
|||||||
# MaiMBot 开发指南
|
# MaiMBot 项目架构与索引指南
|
||||||
|
|
||||||
## 🛠️ 常用命令
|
## 🛠️ 常用命令
|
||||||
|
|
||||||
@@ -30,19 +30,162 @@
|
|||||||
- **错误处理**: 使用带有具体异常的try/except
|
- **错误处理**: 使用带有具体异常的try/except
|
||||||
- **文档**: 为类和公共函数编写docstrings
|
- **文档**: 为类和公共函数编写docstrings
|
||||||
|
|
||||||
## 🧩 系统架构
|
## 🔍 项目结构概览
|
||||||
|
|
||||||
- **框架**: NoneBot2框架与插件架构
|
```mermaid
|
||||||
- **数据库**: MongoDB持久化存储
|
graph TD
|
||||||
- **设计模式**: 工厂模式和单例管理器
|
A[入口文件] --> A1[run.py:初始安装与启动]
|
||||||
- **配置管理**: 使用环境变量和TOML文件
|
A --> A2[bot.py:主程序入口]
|
||||||
- **内存系统**: 基于图的记忆结构,支持记忆构建、压缩、检索和遗忘
|
A2 --> B[核心框架]
|
||||||
- **情绪系统**: 情绪模拟与概率权重
|
B --> B1[NoneBot2框架]
|
||||||
- **LLM集成**: 支持多个LLM服务提供商(ChatAnywhere, SiliconFlow, DeepSeek)
|
B --> B2[MongoDB数据库]
|
||||||
|
|
||||||
## ⚙️ 环境配置
|
A2 --> C[插件系统]
|
||||||
|
C --> C1[聊天系统]
|
||||||
|
C --> C2[记忆系统]
|
||||||
|
C --> C3[情绪系统]
|
||||||
|
C --> C4[日程系统]
|
||||||
|
C --> C5[配置系统]
|
||||||
|
|
||||||
- 使用`template.env`作为环境变量模板
|
C1 --> D[LLM集成]
|
||||||
- 使用`template/bot_config_template.toml`作为机器人配置模板
|
D --> D1[ChatAnywhere]
|
||||||
- MongoDB配置: 主机、端口、数据库名
|
D --> D2[SiliconFlow]
|
||||||
- API密钥配置: 各LLM提供商的API密钥
|
D --> D3[DeepSeek]
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📁 关键文件索引
|
||||||
|
|
||||||
|
| 文件路径 | 功能描述 |
|
||||||
|
|---------|---------|
|
||||||
|
| `/bot.py` | 主程序入口,初始化框架和插件加载 |
|
||||||
|
| `/run.py` | 初始安装脚本,配置MongoDB和启动机器人 |
|
||||||
|
| `/src/plugins/chat/bot.py` | 聊天核心处理,消息接收与分发 |
|
||||||
|
| `/src/plugins/chat/llm_generator.py` | LLM交互封装,生成回复内容 |
|
||||||
|
| `/src/plugins/chat/prompt_builder.py` | 构建提示词,整合上下文和记忆 |
|
||||||
|
| `/src/plugins/memory_system/memory.py` | 图形记忆系统核心实现 |
|
||||||
|
| `/src/plugins/moods/moods.py` | 情绪管理系统 |
|
||||||
|
| `/src/common/database.py` | 数据库连接管理 |
|
||||||
|
| `/src/plugins/models/utils_model.py` | LLM API请求封装 |
|
||||||
|
| `/template.env` | 环境变量配置模板 |
|
||||||
|
| `/template/bot_config_template.toml` | 机器人配置模板 |
|
||||||
|
|
||||||
|
## 🔄 核心流程图
|
||||||
|
|
||||||
|
### 消息处理流程
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
A[用户消息] --> B[NoneBot2接收]
|
||||||
|
B --> C[ChatBot.handle_message]
|
||||||
|
C --> D{检查回复意愿}
|
||||||
|
D -->|回复| E[思考状态]
|
||||||
|
D -->|不回复| Z[结束]
|
||||||
|
E --> F[构建提示词]
|
||||||
|
F --> G[选择LLM模型]
|
||||||
|
G --> H[生成回复]
|
||||||
|
H --> I[处理回复]
|
||||||
|
I --> J[消息管理器]
|
||||||
|
J --> K[发送回复]
|
||||||
|
```
|
||||||
|
|
||||||
|
### 记忆系统流程
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
A[聊天记录] --> B[记忆样本获取]
|
||||||
|
B --> C[记忆压缩/主题提取]
|
||||||
|
C --> D[记忆图存储]
|
||||||
|
D --> E[记忆检索]
|
||||||
|
D --> F[记忆遗忘]
|
||||||
|
D --> G[记忆合并]
|
||||||
|
E --> H[提示词构建]
|
||||||
|
H --> I[LLM生成]
|
||||||
|
```
|
||||||
|
|
||||||
|
## ⚙️ 配置系统概览
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
graph LR
|
||||||
|
A[配置系统] --> B[环境变量配置]
|
||||||
|
A --> C[TOML配置文件]
|
||||||
|
|
||||||
|
B --> B1[数据库连接]
|
||||||
|
B --> B2[LLM API密钥]
|
||||||
|
B --> B3[服务器设置]
|
||||||
|
|
||||||
|
C --> C1[机器人人格]
|
||||||
|
C --> C2[消息处理参数]
|
||||||
|
C --> C3[记忆系统参数]
|
||||||
|
C --> C4[情绪系统参数]
|
||||||
|
C --> C5[模型配置]
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📊 模块依赖关系
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
graph TD
|
||||||
|
A[bot.py] --> B[src/plugins]
|
||||||
|
B --> C[chat]
|
||||||
|
B --> D[memory_system]
|
||||||
|
B --> E[moods]
|
||||||
|
B --> F[models]
|
||||||
|
|
||||||
|
C --> D
|
||||||
|
C --> E
|
||||||
|
C --> F
|
||||||
|
D --> F
|
||||||
|
C --> G[common/database.py]
|
||||||
|
D --> G
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🧠 记忆系统内部结构
|
||||||
|
|
||||||
|
- **Memory_graph**: 底层图结构实现
|
||||||
|
- 节点 = 主题概念
|
||||||
|
- 边 = 主题间关联
|
||||||
|
- 属性 = 记忆内容、时间戳
|
||||||
|
|
||||||
|
- **Hippocampus**: 高级记忆管理
|
||||||
|
- 记忆构建: `memory_compress()`
|
||||||
|
- 记忆检索: `get_relevant_memories()`
|
||||||
|
- 记忆遗忘: `operation_forget_topic()`
|
||||||
|
- 记忆合并: `operation_merge_memory()`
|
||||||
|
|
||||||
|
- **LLM集成点**:
|
||||||
|
- 主题提取
|
||||||
|
- 记忆摘要生成
|
||||||
|
- 相似度计算
|
||||||
|
- 记忆压缩
|
||||||
|
|
||||||
|
## 💬 聊天系统内部结构
|
||||||
|
|
||||||
|
- **ChatBot**: 核心控制器
|
||||||
|
- 消息处理: `handle_message()`
|
||||||
|
- 响应生成: `generate_response()`
|
||||||
|
|
||||||
|
- **消息处理链**:
|
||||||
|
- `MessageRecv` → 消息预处理
|
||||||
|
- `willing_manager` → 回复决策
|
||||||
|
- `prompt_builder` → 提示词构建
|
||||||
|
- `LLM_request` → LLM调用
|
||||||
|
- `MessageSending` → 消息发送
|
||||||
|
|
||||||
|
- **关键组件**:
|
||||||
|
- 消息管理器: 控制消息流
|
||||||
|
- 聊天流管理: 维护会话上下文
|
||||||
|
- 关系管理器: 用户关系状态
|
||||||
|
- 表情管理器: 表情包处理
|
||||||
|
|
||||||
|
## 🔧 配置项关键参数
|
||||||
|
|
||||||
|
### 环境变量 (.env)
|
||||||
|
- MongoDB连接: `MONGODB_HOST`, `MONGODB_PORT`, `DATABASE_NAME`
|
||||||
|
- LLM API: `CHAT_ANY_WHERE_KEY`, `SILICONFLOW_KEY`, `DEEP_SEEK_KEY`
|
||||||
|
- 服务设置: `HOST`, `PORT`
|
||||||
|
|
||||||
|
### 机器人配置 (TOML)
|
||||||
|
- 版本控制: `[inner].version`
|
||||||
|
- 人格设置: `[personality]`
|
||||||
|
- 记忆参数: `[memory]` (构建间隔、压缩率、遗忘周期)
|
||||||
|
- 情绪参数: `[mood]` (更新间隔、衰减率)
|
||||||
|
- 模型选择: `[model]` (各功能专用模型配置)
|
||||||
Reference in New Issue
Block a user