Commit Graph

650 Commits

Author SHA1 Message Date
minecraft1024a
513757a8ee chore: format code and remove redundant blank lines
This commit applies automated code formatting across the project. The changes primarily involve removing unnecessary blank lines and ensuring consistent code style, improving readability and maintainability without altering functionality.
2025-09-05 20:58:03 +08:00
minecraft1024a
488e959577 refactor(chat): 重构主动思考逻辑并将其集成到主聊天循环
将原有的 `ProactiveThinker` 类中的逻辑直接整合进 `HeartFChatting` 类中。此举简化了整体架构,减少了类之间的耦合,并使得主动思考的触发机制与主聊天循环的状态管理更加统一。

主要变更:
- 删除了独立的 `proactive_thinker.py` 文件。
- 将主动思考的监控循环、条件检查、动态间隔计算等功能实现为 `HeartFChatting` 的私有方法。
- 引入了 `ProactiveTriggerEvent` 事件,使触发源更加明确。
- 调整了相关模块的导入路径和配置项的调用方式,以适应新的结构。
2025-09-05 20:30:35 +08:00
minecraft1024a
fc68958c8f feat(cross_context): 实现按互通组名称获取聊天记录
新增 `get_chat_history_by_group_name` API,允许插件按名称获取指定互通组的聊天记录。此功能增强了插件的上下文感知能力,使其能够利用跨群聊的对话历史。

主要变更:
- 在 `cross_context_api.py` 中添加了 `get_chat_history_by_group_name` 函数。
- Maizone 插件现在利用此 API 来获取跨群聊的上下文,以生成更相关的说说内容。
- 调整了配置文件模板,以反映新的互通组配置方式。
2025-09-05 19:51:33 +08:00
minecraft1024a
55abedfbf0 Merge remote-tracking branch 'origin/master' into dev 2025-09-05 19:34:47 +08:00
minecraft1024a
e3d1209d14 feat(cross_context): 支持私聊和群聊混合的上下文共享
本次更新扩展了跨上下文共享功能,使其不再局限于群聊之间,现在可以支持群聊与私聊的混合共享。

主要变更:
- 将 `cross_context.groups` 的 `chat_ids` 配置格式从一维字符串列表(仅群号)更新为二维列表 `[["type", "id"], ...]`,其中 `type` 可以是 "group" 或 "private"。
- 更新了 `cross_context_api` 以正确处理新的配置格式,使其能够识别并获取私聊和群聊的消息历史。
- 相应地更新了配置文件模板 `bot_config_template.toml` 以反映新的配置格式和功能。

BREAKING CHANGE: `cross_context.groups` 的 `chat_ids` 配置格式已更改。旧的一维群号列表格式不再受支持,用户需要按照 `[["type", "id"], ...]` 的新格式更新其配置文件才能使用此功能。
2025-09-05 19:30:06 +08:00
minecraft1024a
5bae2fa8f8 refactor(chat): 抽象化跨群聊上下文构建逻辑
将 `build_cross_context` 方法的实现委托给 `cross_context_api`。
这简化了 `prompt_utils` 中的代码,将复杂的上下文构建逻辑(包括获取其他群聊、根据模式获取和格式化消息)封装到专用的API中,提高了代码的模块化和可维护性。
2025-09-05 19:11:21 +08:00
minecraft1024a
420a7f0bef refactor(chat): 简化响应处理逻辑
- 移除 `send_response` 方法中多余的 `reply_to_str` 参数
- 调整 `text_to_stream` 调用,不再传递消息数据作为回复目标
- 确保 `handle_message_storage` 的 `reason` 参数始终为字符串
2025-09-05 18:36:49 +08:00
minecraft1024a
57e5244b1f refactor(main): 移除多余的ImportError异常处理 2025-09-05 17:52:27 +08:00
minecraft1024a
42088670b3 refactor(memory): 使用模拟对象替代条件判断来处理禁用的内存系统
通过引入一个`MockHippocampusManager`类,当内存系统在配置中被禁用时,它将提供一个与真实管理器接口相同的模拟对象。这消除了在代码中散布的多个`if global_config.memory.enable_memory:`条件检查。

这种重构简化了`MainSystem`类中的初始化和任务调度逻辑,使得代码更加清晰和易于维护,因为现在可以无条件地调用内存系统的方法,而不用担心它是否被启用。
2025-09-05 17:51:11 +08:00
Furina-1013-create
ac1253acc5 fix: 修复 graph_nodes 表 weight 字段缺失问题
- 在 GraphNodes 模型中添加 weight 字段,设置默认值为 1.0
- 修复 Hippocampus.py 中插入 GraphNodes 时缺少 weight 字段的问题
- 解决 sqlite3.IntegrityError: NOT NULL constraint failed: graph_nodes.weight 错误
2025-09-04 20:57:59 +08:00
tt-P607
7b537e96d0 fix(qzone): 修复子评论回复逻辑
移除手动构造的@提醒内容,改为通过传递 `parent_tid` 参数来正确指定父评论。
这利用了平台原生的回复机制,可以更可靠地实现回复和提醒功能。
2025-09-04 14:44:35 +08:00
tt-P607
4d03a2fafe fix(api): 修复 reply_to_platform_id 可能未定义的问题 2025-09-04 14:24:25 +08:00
Windpicker-owo
f4b8bf5904 加入breaking启用配置 2025-09-04 00:09:43 +08:00
Windpicker-owo
498b57de13 删除无用函数 2025-09-03 23:56:03 +08:00
Windpicker-owo
391517df0a 修复模板deepseek baseurl不正确的问题 2025-09-03 22:57:05 +08:00
Windpicker-owo
5592ed6fce 修复导入问题 2025-09-03 22:56:12 +08:00
Windpicker-owo
50f8b385ee 升级ada插件,现在插件与ada程序完全同步 2025-09-03 22:48:06 +08:00
Windpicker-owo
efe81fa346 fix(chat): 优化breaking模式下的兴趣值累积逻辑
重构heartFC_chat中的消息处理机制,使用累积兴趣值替代最近三次记录来判断是否进入breaking模式。主要变更包括:

- 将breaking模式判断基于累积兴趣值而非最近3次记录
- 在消息成功处理时重置累积兴趣值
- 调整阈值计算方式,使用聊天频率进行动态调整
- 修复send_api中的消息查找函数,提高回复消息匹配准确性

这些改动提高了对话节奏控制的稳定性,使breaking模式触发更加合理。
2025-09-03 22:19:00 +08:00
Windpicker-owo
18a57d0a74 更新版本 2025-09-03 21:37:04 +08:00
Windpicker-owo
ee15f45559 typing和防炸 2025-09-03 21:36:22 +08:00
Windpicker-owo
53e72ecbdb 迁移:1f91967(remove:移除willing系统,移除reply2,移除能量值,移除reply_to改为message) 2025-09-03 21:27:28 +08:00
Windpicker-owo
a63ca537d1 fix:修复图片识别爆炸 2025-09-03 20:03:47 +08:00
Windpicker-owo
236ecdb132 Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot 2025-09-03 17:54:32 +08:00
Windpicker-owo
368517267e fix: at和回复只显示qq号的问题 2025-09-03 17:51:55 +08:00
Windpicker-owo
b7e042161f 优化s4u提示词结构,修复复读问题 2025-09-03 16:33:41 +08:00
tt-P607
fe0a351b5d Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot 2025-09-03 08:23:47 +08:00
tt-P607
ae8c05ef1b emmm,总之大概也许这一版比较稳定,用就对了😋 2025-09-03 08:23:17 +08:00
ikun-11451
0f7f35c34c 将自述文件中的windows部署教程链接更正喵~ 2025-09-02 23:25:34 +08:00
Windpicker-owo
e29e9e563a 迁移:4b59eda(feat:修改focus value的用途) 2025-09-02 21:14:30 +08:00
ikun-11451
c5924a3796 更新了自述文件中的Windows部署教程地址喵~ 2025-09-02 18:01:24 +08:00
Windpicker-owo
e361bf429f 迁移:1515cef(fix:必要性修复) 2025-09-02 17:24:27 +08:00
Windpicker-owo
9135b66268 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-02 16:15:37 +08:00
Windpicker-owo
ac143a1201 迁移:a247be0(ref:彻底合并normal和focus,完全基于planner决定target message) 2025-09-02 16:15:33 +08:00
Furina-1013-create
80b51c45f2 注释掉一个为了适配ui日志然后出现的一个过于刷屏日志的代码段 2025-09-02 14:18:33 +08:00
Windpicker-owo
255e3627b4 feat(chat): refactor logging and integrate no_reply system action
将日志前缀管理集中到context,新增willing_manager依赖,并把no_reply提升为系统级可用动作

- CycleProcessor 统一改从 context 获取 log_prefix
- HeartFChatting 引入 willing_manager
- ResponseHandler _send_response -> send_response 去下划线统一对外接口
- ActionPlanner 将 no_reply 添加至 current_available_actions
2025-09-01 22:41:42 +08:00
Windpicker-owo
f7ed3bbb6c Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-01 21:13:00 +08:00
Windpicker-owo
9f49a453da 迁移:3804124,9e9e796
(feat:将no_reply内置、fix:优化reply,填补缺失值)
2025-09-01 21:12:55 +08:00
tt-P607
5eb1ac97d3 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-01 15:44:23 +08:00
tt-P607
3340e39e56 feat(chat): 添加图片消息判断工具函数
增加 `is_image_message` 函数,用于根据消息字典的内容判断该消息是否为图片类型。这有助于在处理不同消息类型时,能够准确识别并分流图片消息。
2025-09-01 15:44:11 +08:00
Windpicker-owo
77574812c5 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-01 15:43:56 +08:00
Windpicker-owo
581c2dcb80 fix 2025-09-01 15:43:51 +08:00
tt-P607
49df12e9ca Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-01 15:30:01 +08:00
tt-P607
2762ff9ec3 fix(maizone): 修复回复评论时的主题ID和父评论ID
根据企鹅空间的最新接口变更,修复了回复评论时 `topicId` 的构造方式,并为子回复添加了 `parent_tid` 参数,以确保能够正确地回复到指定的父评论。
2025-09-01 15:29:33 +08:00
Windpicker-owo
27d9e90a4c Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-01 15:24:47 +08:00
Windpicker-owo
366dadeb15 迁移:69a855d(feat:保存关键词到message数据库) 2025-09-01 15:24:43 +08:00
tt-P607
75b03aca19 refactor(maizone): 优化回复跟踪服务和实现子回复
对 `maizone_refactored` 插件进行多项重构和功能改进:

1.  **依赖注入 `ReplyTrackerService`**:
    -   在 `plugin.py` 中创建 `ReplyTrackerService` 的单例,并将其注入到 `QZoneService` 中。
    -   这确保了整个插件共享同一个回复记录实例,避免了之前在 `QZoneService` 内部创建实例导致的状态不一致问题。

2.  **增强 `ReplyTrackerService` 的健壮性**:
    -   增加了对 `replied_comments.json` 文件加载时的数据验证和错误处理,包括处理空文件和JSON解析错误。
    -   实现了损坏文件的自动备份机制。
    -   采用原子化写入操作(先写临时文件再重命名),防止在保存过程中因意外中断导致数据文件损坏。
    -   改进了日志记录,提供了更清晰的加载、保存和清理过程信息。

3.  **实现真正的子回复(盖楼)功能**:
    -   修改了 `QZoneService` 中 `_reply` 方法的请求参数,特别是 `topicId` 和 `paramstr`,并添加了 `parent_tid`,以实现对特定评论的直接回复,而不是简单地在说说下发表新评论。

4.  **优化评论处理逻辑**:
    -   移除了在处理新评论前对已记录回复进行验证的步骤,简化了逻辑,直接检查评论是否已被回复。
2025-09-01 15:07:56 +08:00
Windpicker-owo
9e64806d08 迁移:685c759 (feat:将no_reply功能移动到主循环中) 2025-09-01 14:18:49 +08:00
Windpicker-owo
d49ad0ad01 增加注释 2025-09-01 13:13:56 +08:00
tt-P607
e31722d054 Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot 2025-09-01 13:08:21 +08:00
tt-P607
3acae20ccb fix(qzone): 修复评论回复逻辑以确保正确触发@提醒
- 修改 topicId 格式使用标准评论格式而非针对特定评论
- 在回复内容中明确标示回复对象 "@用户名:"
- 优化 paramstr 参数确保触发@提醒机制
- 添加详细注释说明修复目的
2025-09-01 13:08:04 +08:00