docs: 更新CLAUDE.md,添加项目架构和代码索引指南

- 添加Mermaid图表展示项目结构和流程
- 创建关键文件索引表格
- 详细描述记忆系统和聊天系统内部结构
- 增加配置系统概览
- 提供模块依赖关系图表

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
春河晴
2025-03-17 15:15:51 +09:00
parent 59d5e85709
commit 6c48b08f24

171
CLAUDE.md
View File

@@ -1,4 +1,4 @@
# MaiMBot 开发指南
# MaiMBot 项目架构与索引指南
## 🛠️ 常用命令
@@ -30,19 +30,162 @@
- **错误处理**: 使用带有具体异常的try/except
- **文档**: 为类和公共函数编写docstrings
## 🧩 系统架构
## 🔍 项目结构概览
- **框架**: NoneBot2框架与插件架构
- **数据库**: MongoDB持久化存储
- **设计模式**: 工厂模式和单例管理器
- **配置管理**: 使用环境变量和TOML文件
- **内存系统**: 基于图的记忆结构,支持记忆构建、压缩、检索和遗忘
- **情绪系统**: 情绪模拟与概率权重
- **LLM集成**: 支持多个LLM服务提供商(ChatAnywhere, SiliconFlow, DeepSeek)
```mermaid
graph TD
A[入口文件] --> A1[run.py:初始安装与启动]
A --> A2[bot.py:主程序入口]
A2 --> B[核心框架]
B --> B1[NoneBot2框架]
B --> B2[MongoDB数据库]
A2 --> C[插件系统]
C --> C1[聊天系统]
C --> C2[记忆系统]
C --> C3[情绪系统]
C --> C4[日程系统]
C --> C5[配置系统]
C1 --> D[LLM集成]
D --> D1[ChatAnywhere]
D --> D2[SiliconFlow]
D --> D3[DeepSeek]
```
## ⚙️ 环境配置
## 📁 关键文件索引
- 使用`template.env`作为环境变量模板
- 使用`template/bot_config_template.toml`作为机器人配置模板
- MongoDB配置: 主机、端口、数据库名
- API密钥配置: 各LLM提供商的API密钥
| 文件路径 | 功能描述 |
|---------|---------|
| `/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]` (各功能专用模型配置)