Skip to content

Latest commit

 

History

History
169 lines (127 loc) · 6.18 KB

doc1.md

File metadata and controls

169 lines (127 loc) · 6.18 KB

📂 文件及功能介绍 (2025年更新)

根目录

  • README.md: 项目的概述和使用说明。
  • requirements.txt: 项目所需的Python依赖包列表。
  • bot.py: 主启动文件,负责环境配置加载和NoneBot初始化。
  • template.env: 环境变量模板文件。
  • pyproject.toml: Python项目配置文件。
  • docker-compose.ymlDockerfile: 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.pyutils_*.py 系列文件:

    • 存放各种工具函数,提供辅助功能以支持其他模块。
    • 包括 utils_cq.pyutils_image.pyutils_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部署支持:

    • 提供容器化部署方案,简化安装和运行。