minecraft1024a
2e436dff33
rrrrrrrrrrrrrruuuuuuuuuuuuuuuuuuuuffffffffffffffffffffffffff
2025-11-19 22:57:45 +08:00
minecraft1024a
d66e04baff
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-11-19 22:57:44 +08:00
minecraft1024a
0172cf7b8b
refactor(chat): 重构主动思考逻辑并将其集成到主聊天循环
...
将原有的 `ProactiveThinker` 类中的逻辑直接整合进 `HeartFChatting` 类中。此举简化了整体架构,减少了类之间的耦合,并使得主动思考的触发机制与主聊天循环的状态管理更加统一。
主要变更:
- 删除了独立的 `proactive_thinker.py` 文件。
- 将主动思考的监控循环、条件检查、动态间隔计算等功能实现为 `HeartFChatting` 的私有方法。
- 引入了 `ProactiveTriggerEvent` 事件,使触发源更加明确。
- 调整了相关模块的导入路径和配置项的调用方式,以适应新的结构。
2025-11-19 22:57:42 +08:00
minecraft1024a
c6e9d572a5
feat(cross_context): 实现按互通组名称获取聊天记录
...
新增 `get_chat_history_by_group_name` API,允许插件按名称获取指定互通组的聊天记录。此功能增强了插件的上下文感知能力,使其能够利用跨群聊的对话历史。
主要变更:
- 在 `cross_context_api.py` 中添加了 `get_chat_history_by_group_name` 函数。
- Maizone 插件现在利用此 API 来获取跨群聊的上下文,以生成更相关的说说内容。
- 调整了配置文件模板,以反映新的互通组配置方式。
2025-11-19 22:57:41 +08:00
Furina-1013-create
156662014b
fix: 修复 graph_nodes 表 weight 字段缺失问题
...
- 在 GraphNodes 模型中添加 weight 字段,设置默认值为 1.0
- 修复 Hippocampus.py 中插入 GraphNodes 时缺少 weight 字段的问题
- 解决 sqlite3.IntegrityError: NOT NULL constraint failed: graph_nodes.weight 错误
2025-11-19 22:57:40 +08:00
tt-P607
a5b5cdddb1
fix(qzone): 修复子评论回复逻辑
...
移除手动构造的@提醒内容,改为通过传递 `parent_tid` 参数来正确指定父评论。
这利用了平台原生的回复机制,可以更可靠地实现回复和提醒功能。
2025-11-19 22:57:39 +08:00
tt-P607
c76fddd928
fix(api): 修复 reply_to_platform_id 可能未定义的问题
2025-11-19 22:57:38 +08:00
Windpicker-owo
96c7bd753f
加入breaking启用配置
2025-11-19 22:57:36 +08:00
Windpicker-owo
461296e5c3
删除无用函数
2025-11-19 22:57:33 +08:00
雅诺狐
e4f8edd7ba
遥测
2025-11-19 22:57:33 +08:00
minecraft1024a
e9b3125d4a
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-11-19 22:57:32 +08:00
minecraft1024a
b8d31207cb
refactor(chat): 抽象化跨群聊上下文构建逻辑
...
将 `build_cross_context` 方法的实现委托给 `cross_context_api`。
这简化了 `prompt_utils` 中的代码,将复杂的上下文构建逻辑(包括获取其他群聊、根据模式获取和格式化消息)封装到专用的API中,提高了代码的模块化和可维护性。
2025-11-19 22:57:29 +08:00
minecraft1024a
db9bc2f701
refactor(chat): 简化响应处理逻辑
...
- 移除 `send_response` 方法中多余的 `reply_to_str` 参数
- 调整 `text_to_stream` 调用,不再传递消息数据作为回复目标
- 确保 `handle_message_storage` 的 `reason` 参数始终为字符串
2025-11-19 22:57:27 +08:00
minecraft1024a
4b965c300e
refactor(main): 移除多余的ImportError异常处理
2025-11-19 22:57:27 +08:00
minecraft1024a
f8c7acea58
refactor(memory): 使用模拟对象替代条件判断来处理禁用的内存系统
...
通过引入一个`MockHippocampusManager`类,当内存系统在配置中被禁用时,它将提供一个与真实管理器接口相同的模拟对象。这消除了在代码中散布的多个`if global_config.memory.enable_memory:`条件检查。
这种重构简化了`MainSystem`类中的初始化和任务调度逻辑,使得代码更加清晰和易于维护,因为现在可以无条件地调用内存系统的方法,而不用担心它是否被启用。
2025-11-19 22:57:27 +08:00
Windpicker-owo
93fbc31662
fix(chat): 优化breaking模式下的兴趣值累积逻辑
...
重构heartFC_chat中的消息处理机制,使用累积兴趣值替代最近三次记录来判断是否进入breaking模式。主要变更包括:
- 将breaking模式判断基于累积兴趣值而非最近3次记录
- 在消息成功处理时重置累积兴趣值
- 调整阈值计算方式,使用聊天频率进行动态调整
- 修复send_api中的消息查找函数,提高回复消息匹配准确性
这些改动提高了对话节奏控制的稳定性,使breaking模式触发更加合理。
2025-11-19 22:57:25 +08:00
Windpicker-owo
e6adfffa84
更新版本
2025-11-19 22:57:25 +08:00
Windpicker-owo
a20dbbdfcb
typing和防炸
2025-11-19 22:57:24 +08:00
Windpicker-owo
51aad4f952
迁移:1f91967(remove:移除willing系统,移除reply2,移除能量值,移除reply_to改为message)
2025-11-19 22:57:24 +08:00
Windpicker-owo
57ba493a74
fix:修复图片识别爆炸
2025-11-19 22:57:22 +08:00
tt-P607
109631e6a1
emmm,总之大概也许这一版比较稳定,用就对了 😋
2025-11-19 22:57:19 +08:00
tt-P607
2abec18610
fix(qzone): 修复评论回复逻辑以确保正确触发@提醒
...
- 修改 topicId 格式使用标准评论格式而非针对特定评论
- 在回复内容中明确标示回复对象 "@用户名:"
- 优化 paramstr 参数确保触发@提醒机制
- 添加详细注释说明修复目的
2025-11-19 22:57:17 +08:00
Windpicker-owo
91454fe576
fix: at和回复只显示qq号的问题
2025-11-19 22:57:13 +08:00
Windpicker-owo
766a20191b
优化s4u提示词结构,修复复读问题
2025-11-19 22:57:10 +08:00
Windpicker-owo
3660d72d3e
迁移:4b59eda(feat:修改focus value的用途)
2025-11-19 22:57:09 +08:00
Windpicker-owo
0810682c3f
迁移:1515cef(fix:必要性修复)
2025-11-19 22:57:08 +08:00
Windpicker-owo
8b82f4f5aa
迁移:a247be0(ref:彻底合并normal和focus,完全基于planner决定target message)
2025-11-19 22:57:07 +08:00
Windpicker-owo
780cfbd7df
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-11-19 22:57:06 +08:00
tt-P607
2dbce6a738
feat(chat): 添加图片消息判断工具函数
...
增加 `is_image_message` 函数,用于根据消息字典的内容判断该消息是否为图片类型。这有助于在处理不同消息类型时,能够准确识别并分流图片消息。
2025-11-19 22:57:03 +08:00
Windpicker-owo
d86cfa90ad
迁移:3804124,9e9e796
...
(feat:将no_reply内置、fix:优化reply,填补缺失值)
2025-11-19 22:56:51 +08:00
tt-P607
3db6ce86ca
fix(maizone): 修复回复评论时的主题ID和父评论ID
...
根据企鹅空间的最新接口变更,修复了回复评论时 `topicId` 的构造方式,并为子回复添加了 `parent_tid` 参数,以确保能够正确地回复到指定的父评论。
2025-11-19 22:56:11 +08:00
Windpicker-owo
e9dde311ed
fix
2025-11-19 22:56:10 +08:00
tt-P607
2f1dcee7cb
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-11-19 22:56:10 +08:00
Windpicker-owo
6cf59deef3
迁移:69a855d(feat:保存关键词到message数据库)
2025-11-19 22:56:10 +08:00
Windpicker-owo
276c08224e
迁移:685c759 (feat:将no_reply功能移动到主循环中)
2025-11-19 22:56:09 +08:00
Windpicker-owo
5db580a4b5
增加注释
2025-11-19 22:56:08 +08:00
Windpicker-owo
55d6ec4cd9
添加动作修改计时
2025-11-19 22:56:08 +08:00
tt-P607
f120cd94d7
feat(plugin_system): 实现 on_plugin_loaded 异步钩子
...
在插件成功加载和注册后,添加一个新的生命周期钩子 `on_plugin_loaded`。
此钩子允许插件在加载完成后执行异步的初始化任务,例如建立数据库连接、加载数据或启动后台服务。通过使用 `asyncio.create_task`,确保了钩子的执行不会阻塞插件的加载流程,从而提高了系统的响应性和健壮性。
2025-11-19 22:56:07 +08:00
Windpicker-owo
337682e1e3
refactor(napcat-adapter): remove test handler and restructure plugin initialization
...
移除APITestHandler测试类,将插件初始化逻辑重构为独立的事件注册方法,更新日志配置以支持napcat适配器模块。这些更改清理了测试代码并改进了插件架构的清晰度。
2025-11-19 22:56:07 +08:00
minecraft1024a
9aa288d3b9
feat(chat): 在主动思考时默认选取最新消息作为目标
...
当主动思考的 `target_message` 为 `None` 时,系统现在会自动获取聊天流中的最新一条消息作为默认的目标消息。
这确保了即使在没有明确指定目标消息的情况下,主动思考也能够针对最近的上下文执行动作,从而提高了交互的连续性和相关性。
2025-11-19 22:56:06 +08:00
minecraft1024a
50a458b9e1
refactor(context): 将能量值和睡眠压力状态持久化到数据库
...
将HFC上下文中的能量值(energy_value)和睡眠压力(sleep_pressure)的状态管理从本地文件存储(local_storage)迁移到主数据库。
这一重构的主要改动包括:
- 在`ChatStreams`数据库模型中添加`energy_value`和`sleep_pressure`字段。
- 更新`ChatStream`类,使其能够加载和保存这两个新字段。
- 移除`HfcContext`中原有的基于`local_storage`的加载和保存逻辑,改为直接通过`ChatStream`实例进行状态读写。
- 在`EnergyManager`中,每当能量或睡眠压力发生变化时,调用`save_context_state()`方法,确保状态能够实时持久化。
此举统一了应用的状态管理方式,提高了数据的可靠性和一致性,并为后续在多实例或分布式环境下部署应用奠定了基础。
2025-11-19 22:56:06 +08:00
minecraft1024a
72706f15ef
refactor(schedule): 将日程生成转为后台异步任务
...
将即时日程生成的操作从直接调用修改为提交到异步任务管理器执行。这避免了在主流程中等待耗时较长的日程生成过程,改善了请求响应速度。
为此,新增了 `OnDemandScheduleGenerationTask` 类来封装按需生成日程的后台任务逻辑。
2025-11-19 22:56:05 +08:00
minecraft1024a
f2ee93bbee
refactor(schedule): 优化月度计划与日程的生成逻辑
...
将月度计划和每日日程的生成流程从异步非阻塞任务改为同步阻塞模式。这确保了在需要计划数据时,生成过程会先完成,从而避免了因数据未及时生成而导致的潜在问题。
主要变更:
- `ScheduleManager`: 在加载日程失败或数据不存在时,直接调用并等待日程生成,而不是创建一个后台任务。
- `ScheduleManager`: 当日程生成过程中发现月度计划不足时,会直接调用并等待月度计划生成完成,然后再继续。
- `MonthlyPlanManager`: 简化了生成逻辑,移除了原有的非阻塞触发方法 `trigger_generate_monthly_plans`,统一为同步执行的 `generate_monthly_plans`。
- `monthly_plan_db`: 在查询月度计划时增加了按创建时间降序排序,以支持更可靠地删除多余计划。
- `main.py`: 移除了对已不存在的 `ImportError` 的处理。
2025-11-19 22:56:04 +08:00
minecraft1024a
dfbe30f7e6
chore: 调整日志级别和更新默认配置
...
- 将事件注册成功的日志级别从INFO调整为DEBUG,以减少不必要的日志输出。
- 修正`maizone_refactored`插件中图片目录路径的表示方法,使用`.as_posix()`确保跨平台兼容性。
- 将备用Cookie获取服务的默认主机地址从一个具体的IP(`172.20.130.55`)更改为`127.0.0.1`,这更符合本地开发的通用配置。
2025-11-19 22:56:02 +08:00
Windpicker-owo
fe472dff60
修复代码格式和文件名大小写问题
2025-11-19 22:55:55 +08:00
Windpicker-owo
a187130613
refactor(chat): 简化SmartPrompt系统架构,移除缓存机制和依赖检查
2025-11-19 22:54:35 +08:00
Windpicker-owo
649a010078
refactor(chat): 重构SmartPrompt系统简化架构并移除缓存机制
...
- 简化SmartPromptParameters类结构,移除复杂的分层参数架构
- 统一错误处理和降级机制,增强系统稳定性
- 移除缓存相关功能,简化架构并减少复杂性
- 完全继承DefaultReplyer功能,确保功能完整性
- 优化性能和依赖管理,改进并发任务处理
- 增强跨群上下文、关系信息、记忆系统等功能的错误处理
- 统一视频分析结果注入逻辑,避免重复代码
2025-11-19 22:54:35 +08:00
Windpicker-owo
e8e401f656
refactor(chat): 重构SmartPrompt系统使用分层参数架构和共享工具
...
将SmartPrompt系统从平面参数结构重构为分层架构,引入PromptCoreParams、
PromptFeatureParams和PromptContentParams三个层级,提高代码组织性和可维护性。
主要变更:
- 使用新的分层参数结构替代原有的平面参数系统
- 集成PromptUtils共享工具类,消除代码重复
- 添加性能优化:缓存机制、超时控制和性能监控
- 增强错误处理,提供优雅的降级机制
- 添加SmartPromptHealthChecker用于系统健康检查
- 保持向后兼容性,通过属性访问器维持现有API
此重构显著提升了代码的可维护性、性能和可测试性,同时为未来功能
扩展奠定了更好的架构基础。
2025-11-19 22:54:34 +08:00
Windpicker-owo
202a5016b0
feat(chat): 重构SmartPrompt系统完全继承DefaultReplyer功能
...
完成SmartPrompt系统的全面重构,现已完整继承原有DefaultReplyer的复杂提示构建逻辑:
- 新增SmartPromptParameters涵盖所有必需参数并向后兼容
- 实现s4u/normal/minimal三种模式的完整支持
- 集成原有的表达式习惯、记忆块、关系信息等构建逻辑
- 重构缓存系统使用统一稳定的缓存键机制
- DefaultReplyer现已完整迁移到SmartPrompt架构且零API变更
BREAKING CHANGE: SmartPrompt系统现在完全可用,可以安全替换原有提示构建系统
2025-11-19 22:54:32 +08:00
Windpicker-owo
dfa2d8a438
feat(chat): 引入SmartPrompt智能提示构建系统
...
重构DefaultReplyer对话提示构建逻辑,统一使用SmartPrompt抽象组件替代原冗长的模板选择与参数拼装流程。将原160+行的分支式模板处理逻辑压缩为统一的SmartPrompt.build_prompt()调用,实现提示构建策略的可插拔与可维护性提升。
- 新增 src.chat.utils.smart_prompt 模块(SmartPrompt类及参数封装)
- 移除旧的normal/s4u分支硬编码,由SmartPrompt内部按需适配
- 事件管理器仅补充HandlerResult显式导入,无功能变动
2025-11-19 22:54:32 +08:00