Commit Graph

831 Commits

Author SHA1 Message Date
tt-P607
04f957627e feat(knowledge): 优化知识库返回结构和集成流程
- 重构QAManager.get_knowledge()返回结构化字典包含知识项和摘要
- 在bot.py中添加initialize_lpmm_knowledge()初始化调用
- 更新Prompt类知识库集成逻辑,改进错误处理
- 优化lpmm知识工具显示格式,增强用户体验
- 调整异步任务基础超时时间从10秒增至20秒
2025-09-15 16:47:33 +08:00
tt-P607
5d0e0de8b6 好的,柒柒!♪~ 让我来看看这次的修改。
嗯~ 看样子你进行了一次大扫除呢!把 `scripts` 文件夹里关于信息提取和导入的旧脚本(`import_openie.py`, `info_extraction.py`, `raw_data_preprocessor.py`)都清理掉了。这说明我们正在用更棒、更整合的方式来管理知识库,真是个了不起的进步!

为了记录下这次漂亮的重构,我为你准备了这样一条 Commit Message,你觉得怎么样?♪~

refactor(knowledge): 移除废弃的知识库信息提取与导入脚本

移除了旧的、基于 `scripts` 目录的知识库构建流程。该流程依赖于以下三个脚本,现已被完全删除:
- `raw_data_preprocessor.py`: 用于预处理原始文本数据。
- `info_extraction.py`: 用于从文本中提取实体和三元组。
- `import_openie.py`: 用于将提取的信息导入向量数据库和知识图谱。

移除此流程旨在简化项目结构,并为未来更集成、更自动化的知识库管理方式做准备。

BREAKING CHANGE: 手动执行信息提取和知识导入的脚本已被移除。知识库的构建和管理流程将迁移至新的实现方式。
2025-09-15 13:51:24 +08:00
tt-P607
62181afa45 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-15 12:33:25 +08:00
tt-P607
d45eb41945 feat(proactive): 优化主动思考逻辑,改进搜索决策与信息融合
升级了搜索决策模型,使其能更准确地区分依赖“外部信息”的话题和依赖“内部信息”的社交话题,从而减少不必要的网络搜索。

- **精确决策**: 新的判断原则引导模型更深入地分析话题本质,避免为个人感受或日常闲聊等话题启动搜索。
- **健壮执行**: 增强了网络搜索功能的健壮性,修正了搜索工具的参数 (`keyword` -> `query`),并增加了对空主题的检查,防止无效调用。
- **自然融合**: 优化了最终回复的生成提示,引导模型将获取到的网络信息更自然地融入对话,作为话题的补充或引子,而不是生硬地复述。
2025-09-15 12:33:13 +08:00
Windpicker-owo
11bd2ffc53 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-15 11:50:51 +08:00
Windpicker-owo
b697af4d3a 更新event doc 2025-09-15 11:50:34 +08:00
tt-P607
34bce03f17 feat(proactive): 优化主动聊天逻辑,增加搜索前判断与回复前检查
为了提升主动聊天的智能化和自然度,本次更新引入了两个核心优化:

1.  **搜索前决策**: 在为主动话题进行网络搜索前,新增一个LLM决策步骤,判断该话题是否有搜索的必要性。这避免了对日常寒暄或无需外部信息的话题进行不必要的搜索,提高了效率。

2.  **回复前检查强化**: 严格化了主动回复的触发条件。现在,系统会检查自己的上一条消息是否得到回应,如果无人回应则倾向于保持沉默,以避免连续发言造成打扰。同时,所有判断标准需全部满足才能触发回复,使行为更符合社交直觉。
2025-09-15 10:45:28 +08:00
tt-P607
a0d33dffdc feat(emoji): 避免发送近期使用过的表情包以减少重复
为了提升表情包发送的自然度和多样性,引入了表情包历史记录机制。

该功能通过以下方式工作:
- 在选择表情包之前,系统会获取当前会话最近发送过的表情包记录。
- 从候选表情包池中过滤掉这些近期已使用过的表情,从而鼓励使用更多不同的表情。
- 当一个表情包成功发送后,其描述会被添加到历史记录中,用于未来的筛选。
2025-09-15 03:04:37 +08:00
Furina-1013-create
99eb52cd8c 修复reply动作缺少action_message的重大问题 2025-09-14 23:45:50 +08:00
tt-P607
65f949ad99 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-14 16:44:44 +08:00
tt-P607
5bf798ed0a 呀,柒柒,这次我们对表情包系统进行了一次超级棒的大升级哦!它现在变得更聪明、更懂我们的心意啦!就像我一样,总能找到最完美的表情来点亮对话!♪~
这是我为你准备的提交信息,你看看喜不喜欢~

feat(chat): 使用 LLM 优化表情包选择与分析

本次提交对表情包系统进行了核心重构,从原有的基于关键词相似度匹配的简单算法,升级为由大型语言模型(LLM)驱动的智能决策流程。这使得表情包的选择和分析更加精准、智能和人性化。

主要变更包括:

1.  **引入 LLM 进行表情包选择**
    -   重写了 `get_emoji_for_text` 方法,废弃了原有的编辑距离算法。
    -   新流程会根据配置随机抽取一部分表情包作为候选,并构建一个精细的 Prompt,引导 LLM 根据输入的“情感描述”选择最匹配的表情包。这让选择不再局限于字面匹配,而是能理解更深层次的语境和情绪。

2.  **优化表情包描述与分析流程**
    -   大幅改进了 `build_emoji_description` 中的 VLM 和 LLM 提示词,使其能生成更懂网络文化、更详细的表情包描述,并提炼出更精准的情感关键词。
    -   为动态图(GIF)和静态图设计了不同的分析策略,以获得更高质量的描述结果。

3.  **增强 Planner 动作连贯性**
    -   更新了 `planner_prompts`,明确要求当 `reply` 和 `emoji` 动作同时触发时,`emoji` 的选择必须基于 `reply` 动作生成的最终文本内容。这确保了文字和表情包的表达高度一致。

4.  **逻辑与配置微调**
    -   在 `utils_image` 中,现在只有当“偷表情包”功能开启时,才会保存接收到的表情包,避免了不必要的文件存储。
    -   将表情包检查间隔 `check_interval` 的类型从 `int` 改为 `float`,允许更灵活的配置。
2025-09-14 16:44:35 +08:00
minecraft1024a
f907470785 chore(log): 移除调试日志并将部分日志级别降为debug
将规划器和过滤器中的临时调试日志移除,并将部分用于追踪流程的info级别日志调整为debug级别,以减少在生产环境中的日志噪音。

同时,在`cycle_processor.py`中增加了对事件处理结果的空值检查,以增强代码的健壮性。(也许是bug真的能修好了——)
2025-09-14 14:59:32 +08:00
minecraft1024a
b18cda67bf 1 2025-09-14 14:49:07 +08:00
minecraft1024a
e2b25120c9 chore(log): 增加 plan_filter 调试日志输出
在 plan_filter 的关键位置增加了详细的日志输出,以便于调试和追踪 plan 的处理流程。

- 在 filter 方法的入口和出口记录 plan 状态。
- 记录构建后的 LLM prompt。
- 将 LLM 原始返回的日志级别调整为 warning,使其更显眼。
- 记录修复和解析后的 JSON 对象。
2025-09-14 14:17:11 +08:00
minecraft1024a
219c1b296c chore(dev): 临时增加调试日志输出 2025-09-14 14:02:09 +08:00
minecraft1024a
e96b453314 feat(dev): 增加规划器动作日志输出
在动作规划器完成规划后,增加一条日志记录,用于输出规划器生成的具体动作。这有助于在开发和调试过程中,更直观地追踪和理解系统的决策流程。
2025-09-14 13:37:25 +08:00
雅诺狐
fc78ec88d5 refactor(config): 简化EULA验证并统一环境变量配置管理
- 重构EULA验证机制,从复杂的文件哈希验证改为简单的环境变量验证
- 统一host和port配置,优先从环境变量读取而非配置文件
- 移除ServerConfig配置类,简化配置结构
- 添加.env文件自动创建和管理功能
- 更新相关模板和文档注释
2025-09-14 10:35:14 +08:00
tt-P607
6793a46f41 refactor(chat): 优化 LLM 消息分段提示词
旧版的消息分段提示词(“消息分段艺术”)过于抽象,可能导致模型的分段行为不够自然或不符合预期。

本次更新将提示词重构为更具体、更具指导性的“消息分段指导”,旨在引导模型生成更贴近真人聊天习惯的、富有节奏感的回复。新的指导方针明确了分段的几个核心场景,如逻辑断点、情绪转折和信息强调,并引入了对分段长度的软性建议,以提升整体对话体验。
2025-09-14 03:08:55 +08:00
雅诺狐
06a6c71775 Refactor telemetry client registration and heartbeat
Replaces the UUID registration and heartbeat logic with a new two-step RSA-based registration process. Adds cryptographic signing of heartbeat requests using a client private key, and updates local storage keys to 'mofox_uuid' and 'mofox_private_key'. Improves error handling and response to server-side authentication failures, and updates request headers and payloads to match the new protocol.
2025-09-13 23:21:17 +08:00
雅诺狐
95fc44e067 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-13 23:20:45 +08:00
tt-P607
33a3b80edf fix(napcat): 修正默认平台名称为 qq
将 Napcat 适配器中 maibot_server 的默认 platform_name 从 "napcat" 更改为 "qq",以解决消息路由中潜在的平台识别问题,确保兼容性。
2025-09-13 22:44:46 +08:00
minecraft1024a
0a2af13553 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-13 21:43:14 +08:00
minecraft1024a
5b57d58db7 feat(chat): 增加调试日志输出
为了方便调试,在执行文本回复动作时,增加了一条详细的调试日志。这条日志会输出完整的 `action_message` 内容,并带有一个特殊的提示,方便在出现问题时快速定位和反馈。
2025-09-13 21:43:08 +08:00
tt-P607
9eccb7f04d Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-13 21:40:53 +08:00
tt-P607
a27639ea68 refactor(chat): 简化记忆激活方法的参数
更新 `activate_memory_with_chat_history` 的调用方式,使用 `target_message` 对象来替代独立的 `target_user` 和 `chat_id` 参数。

此举将相关上下文封装到单个对象中,使得接口更加清晰,提高了代码的可维护性。
2025-09-13 21:40:46 +08:00
minecraft1024a
f6bd0d4058 feat(chat): 增加回复动作的消息日志输出
在执行回复动作前,增加对 `action_message` 的日志输出,方便调试和追踪回复流程中的具体消息内容。
2025-09-13 21:37:47 +08:00
minecraft1024a
862f0df15f fix(chat): 修复获取用户ID时使用了错误的键名
将 `action_message.get("user_id", "")` 修改为 `action_message.get("chat_info_user_id", "")`,以确保从 `action_message` 字典中正确获取用户ID。

chore: 更新 .gitignore 文件

添加 `src/chat/planner_actions/新建 文本文档.txt` 到忽略列表,以避免将临时文件提交到版本库。
2025-09-13 21:10:49 +08:00
minecraft1024a
dbc6bb7562 fix(qzone): 修复加载本地图片时未配置图片目录导致的潜在异常
在 `_load_local_images` 方法中,如果 `image_dir` 为 `None` 或空字符串,`os.path.exists` 会抛出 `TypeError`。本次修改增加了对 `image_dir` 变量本身的检查,确保在路径有效时才进行存在性判断,从而避免了因未配置图片目录而导致的程序崩溃。
2025-09-13 20:30:13 +08:00
Windpicker-owo
b9fe4b793f 注释 2025-09-13 16:25:13 +08:00
minecraft1024a
5c1a7ab33b feat(db): add focus_energy to ChatStreams model
Adds a new `focus_energy` column to the `ChatStreams` table. This field will be used to track the user's focus level, defaulting to 1.0.
2025-09-13 15:21:00 +08:00
minecraft1024a
7ea769996c refactor(chat): 优化plan_filter中的回复动作处理逻辑
- 引入 `reply_action_added` 标志位,确保在一次处理中只添加一个回复类型的动作(如 `reply` 或 `proactive_reply`)。
- 优化了循环和条件判断逻辑,使代码更清晰、更健壮,防止因LLM返回多个回复动作而导致的意外行为。
2025-09-13 15:14:18 +08:00
minecraft1024a
2db6be9b5b fix(chat): 修复计划过滤器和消息构建器中的潜在空指针问题
- 在 `plan_filter.py` 中,当LLM未指定 `target_message_id` 时,明确将目标消息设置为最新的消息,避免后续操作因 `target_message_dict` 未定义而出错。
- 在 `chat_message_builder.py` 中,为 `replace_user_references_sync` 函数增加了对 `content` 为空的检查,防止后续处理引发异常。
- 将数据库查询从 `.scalar()` 改为 `.scalar_one_or_none()`,以更清晰地处理未找到结果的情况。
2025-09-13 14:46:50 +08:00
minecraft1024a
91d0ebf45d feat:一个能从对话中智能识别并设置定时提醒的动作。 2025-09-13 13:23:21 +08:00
minecraft1024a
befdb796b9 refactor(at_user): 优化插件描述并修复聊天流获取逻辑
- 更新了 `action_parameters` 和 `action_require` 的描述,使其更加清晰和准确,提升了LLM在不同场景下判断的准确性。
- 修复了 `chat_stream` 的获取逻辑,优先使用 `self.chat_stream`,确保在不同调用路径下都能正确获取到聊天流实例。
2025-09-13 12:59:44 +08:00
minecraft1024a
3edda25ae1 refactor(at_user): 优化艾特用户插件逻辑并移除模糊匹配
重构了艾特用户插件,主要改动如下:
- 移除 `fuzzywuzzy` 依赖和相关的模糊匹配逻辑,改为直接通过 `person_info_manager` 精确查找用户。
- 优化了 `AtAction` 的执行流程,现在通过调用 `DefaultReplyer` 生成更智能、更符合上下文的回复内容,而不是发送固定文本。
- 新增了 `/at` 命令,允许用户通过指令直接艾特指定用户并发送消息。
- 删除了 `proactive_thinker.py` 中不再使用的 `_get_reminder_context` 方法,以清理与旧提醒功能相关的代码。
2025-09-13 12:54:23 +08:00
minecraft1024a
b9984b81f1 Revert "feat(reminder): 增强定时提醒系统,实现智能用户识别与上下文感知回复"
This reverts commit e1ebf41f8d.
2025-09-13 12:52:00 +08:00
minecraft1024a
70c5c289fc refactor(heart_flow): 移除智能提醒分析逻辑
从消息处理流程中移除旧的智能提醒分析模块。

该功能已被一个新的、更可靠的提醒系统取代,因此旧的实现被移除以简化代码库并消除冗余。
2025-09-13 12:26:07 +08:00
雅诺狐
26ae481b88 Update README.md
推送测试
2025-09-13 12:24:02 +08:00
minecraft1024a
8fcb49a1bb 试图引爆定时提醒,我有一个更好的东西 2025-09-13 12:19:15 +08:00
minecraft1024a
490bf9e7cc chore(planner): 临时禁用执行器调用
为了调试规划器流程的其他部分,暂时注释掉了对 `self.executor.execute(filtered_plan)` 的调用。
2025-09-13 12:07:19 +08:00
minecraft1024a
f1c1a2081a docs(planner): 为规划器相关模块添加详细的文档字符串
为 `plan_executor`、`planner` 和 `planner_prompts` 模块中的类和函数补充了详细的文档字符串(docstrings)。

这提高了代码的可读性和可维护性,阐明了每个组件的职责、参数和返回值,使得其他开发者能更容易地理解和使用这些模块。
2025-09-13 12:04:34 +08:00
minecraft1024a
07f37323b2 修复了**AI写出来的虫子 2025-09-13 11:57:05 +08:00
minecraft1024a
e37ee46d59 refactor(planner): 重构动作规划器为模块化结构
将原有的 `ActionPlanner` 类拆分为三个独立的模块:`PlanGenerator`、`PlanFilter` 和 `PlanExecutor`。`ActionPlanner` 现在作为协调器,按顺序调用这三个模块,使规划流程更加清晰和模块化。

- **PlanGenerator**: 负责根据聊天模式和上下文生成初始规划。
- **PlanFilter**: 负责审查和筛选由生成器产生的动作。
- **PlanExecutor**: 负责执行最终确定的动作。

此重构简化了 `cycle_processor` 中的调用逻辑,并为未来的功能扩展(如更复杂的过滤规则)提供了更好的基础。同时,引入了新的 `Plan` 数据模型来统一规划过程中的数据传递。
2025-09-13 11:48:04 +08:00
minecraft1024a
8a8302ea3a Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-13 09:03:02 +08:00
minecraft1024a
bcd9955374 refactor(config): 移除工具历史记录相关配置
工具历史记录功能已被移除,因此相关的配置类 `ToolHistoryConfig` 及其在 `ToolConfig` 中的引用也一并删除,以简化代码库。
2025-09-13 09:03:00 +08:00
tt-P607
70511d3c26 fix(emoji): 优化表情包描述匹配并修复潜在错误
- 改进在描述模式下选择表情包的匹配算法,从精确匹配改为更灵活的包含匹配和关键词匹配,显著提高匹配成功率。
- 初始化 `chosen_emotion` 变量,以避免在某些逻辑分支下因变量未定义而引发错误。
- 统一并简化了发送表情包后记录到prompt中的提示语,使其更加通用和简洁。
2025-09-13 00:48:54 +08:00
tt-P607
fcda224767 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-12 22:50:55 +08:00
tt-P607
5e3efd3148 根据提供的 git diff 分析,这是一个重构变更,主要是修改了异步内存包装器的导入和使用方式。以下是生成的常规提交消息:
refactor(prompt): 重构异步即时内存包装器的导入和使用方式

- 将 async_memory 导入更改为 get_async_instant_memory 函数
- 简化内存获取逻辑,通过工厂函数创建包装器实例
- 更新参数传递方式,使用 target 替代 sender 参数
- 减少代码行数,提高可读性
2025-09-12 22:50:37 +08:00
minecraft1024a
9b5eab9024 如果我不更新配置版本号,那我就会被其他开发草飞 2025-09-12 21:42:39 +08:00
minecraft1024a
956e2e70c4 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-12 21:41:45 +08:00