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