Windpicker-owo
2b04d548b6
refactor(affinity_flow): 重构规划器架构并简化日志输出
...
- 移除ChatterManager中不必要的ActionPlanner实例化
- 在MessageManager中设置默认聊天模式为FOCUS
- 重构BaseChatter构造函数,移除planner依赖
- 统一ChatMode枚举定义,移除GROUP/PRIVATE模式
- 重构AffinityChatter内部planner初始化逻辑
- 大幅简化兴趣评分系统的日志输出
- 修复plan_filter中的动作解析逻辑,支持新格式
- 更新planner_prompts提示词模板,移除私聊限制
- 优化关系追踪器的错误处理和日志输出
2025-11-19 23:08:40 +08:00
Windpicker-owo
502d0b7c59
refactor(plugins): 将亲和力流模块重构为插件架构并移除旧代码
...
本次重构将亲和力流(Affinity Flow)模块从核心聊天系统迁移到插件架构中,主要变更包括:
- 删除 src/chat/planner_actions/ 目录下的 plan_executor.py、plan_filter.py 和 planner.py
- 更新插件系统组件类型,将 FOCUS 聊天模式改为 GROUP 和 PRIVATE 模式
- 调整亲和力流插件中的模式引用,确保与新的聊天模式枚举保持一致
- 统一亲和力流模块的导入路径,使其完全作为插件运行
BREAKING CHANGE: 移除原有的 FOCUS 聊天模式,改为 GROUP 和 PRIVATE 模式,需要更新相关配置和代码引用
2025-11-19 23:08:38 +08:00
Windpicker-owo
f9339b8ad7
refactor(plugins): 重构亲和力流模块的导入路径
...
将 chatter 模块重命名为 affinity_flow_chatter 以明确功能区分,
更新 main.py、base_chatter.py、affinity_chatter.py 和 planner.py
中的相关导入语句,确保模块引用正确性。
2025-11-19 23:08:35 +08:00
minecraft1024a
b98417dec6
先修一下命令无法正常检查聊天类型限制
2025-11-19 23:08:34 +08:00
Windpicker-owo
c9b20aa61a
refactor(chat): 移除亲和力流模块并将其重构为插件架构
...
BREAKING CHANGE: 原有的亲和力流相关模块(src/chat/affinity_flow/)已被完全移除,相关功能已重构为插件形式。需要更新配置文件和相关依赖。
- 删除 src/chat/affinity_flow/ 目录下的所有文件
- 将 AFC 管理器功能移至 chatter 插件中实现
- 更新相关导入路径和引用
- 重构关系追踪器和兴趣评分系统的初始化逻辑
- 调整聊天管理器和消息管理器以适应新的插件架构
2025-11-19 23:08:27 +08:00
Windpicker-owo
bdf43c2455
fix
2025-11-19 23:08:03 +08:00
Windpicker-owo
dce48d38cf
feat: 在插件系统中添加 Chatter 组件
...
- 在 component_types.py 中新增了用于 CHATTER 的 ComponentType。
- 实现了 ChatterInfo 类,用于存储 Chatter 组件的相关信息。
- 增强了 ComponentRegistry,以支持 Chatter 组件的注册与管理。
- 创建了 ChatterManager,用于管理 Chatter 实例并处理聊天流。
- 开发了 BaseChatter 抽象类,用于定义 Chatter 的行为规范。
- 实现了 AffinityChatter,作为具备兴趣评分与关系构建功能的具体 Chatter 组件。
- 添加了一个内置的 Chatter 插件,并附带完整文档与使用示例。
- 更新了 PluginManager,在插件概览中加入 Chatter 组件的统计信息。
2025-11-19 23:08:03 +08:00
tt-P607
8621dcdf75
fix(chat): 修复并优化消息回复与ID处理逻辑
...
先前的消息回复机制存在多个问题:回复行为随机且不可靠,临时消息ID生成逻辑过于复杂,且在规划和执行过程中ID转换容易出错,导致回复失败。
本次提交通过以下几点进行了全面的修复与优化:
- **简化ID生成**:将临时的上下文消息ID生成逻辑从“索引+随机数”简化为纯索引(如 `m1`, `m2`),使其更可预测且易于调试。
- **修正ID替换**:在 `plan_filter` 中增加了关键逻辑,确保在执行 `reply` 动作前,将计划中使用的临时 `target_message_id` 替换为真实的数据库消息ID。
- **稳定回复行为**:移除了 `action_manager` 中的随机回复判断,现在只要存在上下文消息,就会触发引用回复。同时将各 `send_api` 的 `set_reply` 参数默认值改为 `True`,使回复成为默认行为。
- **增强ID兼容性**:修复了 `napcat_adapter` 中将消息ID强制转换为整数的问题,并为 `send_api` 增加了ID回退查找,提高了对不同平台消息ID格式的兼容性。
2025-11-19 23:07:38 +08:00
Windpicker-owo
df3c616d09
ruff,私聊视为提及了bot
2025-11-19 23:07:30 +08:00
minecraft1024a
80283fe77d
fix(plugin): 移除插件配置同步调用并增强错误日志
...
在插件管理器中,移除了加载插件时对已废弃的配置同步方法的调用。
同时,为了更好地排查 `maizone` 插件发送动态失败的问题,增强了其命令的异常日志,现在会额外记录异常类型。
2025-11-19 23:05:50 +08:00
minecraft1024a
9a40e86894
删除插件配置文件的双向迁移逻辑
2025-11-19 23:05:49 +08:00
minecraft1024a
f842c43ab0
ruff
2025-11-19 23:05:47 +08:00
tt-P607
f3b3e60c1c
feat(chat): 增加已读标记以聚焦未读消息
...
为聊天上下文生成逻辑引入了“已读标记” (read_mark) 机制。
当生成回复时,可以在历史消息中插入一个明确的分隔符,以告知模型哪些消息是它已经看过的旧消息,哪些是需要关注的新消息。
这有助于模型更好地聚焦于未读内容,提升上下文感知能力和回复的相关性。
同时,将 Prompt 模板中的“群聊”等硬编码文本参数化,以更好地适配私聊等不同聊天场景。
2025-11-19 23:05:36 +08:00
minecraft1024a
6bf05fd660
fix(permission): 将权限管理器初始化改为异步
...
`PermissionManager` 的 `__init__` 方法中包含了同步的数据库初始化操作,这会在异步环境中阻塞事件循环。
本次提交将数据库连接的逻辑移至一个新的异步方法 `initialize()` 中,并在应用启动时显式调用和等待它。这确保了数据库的初始化过程是异步执行的,避免了潜在的性能问题。
BREAKING CHANGE: `PermissionManager` 实例化后需要手动调用并等待 `initialize()` 方法来完成数据库初始化。
2025-11-19 23:05:35 +08:00
minecraft1024a
83eb5c80c5
fix(plugin_system): 修复无配置插件加载时产生不必要警告
...
对于未定义 `config_schema` 的插件,现在会将其视作一种正常情况,并为其分配一个空的配置。
此举修复了先前版本中,这类插件在加载时会错误地触发“配置文件不存在”警告的问题。同时将生成默认配置文件的日志等级从 debug 调整为 info,使其在默认情况下可见。
2025-11-19 23:05:34 +08:00
雅诺狐
4091a4eadf
更改权限
2025-11-19 23:05:29 +08:00
minecraft1024a
28be81583e
feat(plugin_system): 导出 schedule_api
...
将 schedule_api 添加到插件系统的 API 导出列表中,使其对插件可用。
2025-11-19 23:05:26 +08:00
雅诺狐
679195d792
refactor(db): 修正SQLAlchemy异步操作调用方式
...
移除session.add()方法的不必要await调用,修正异步数据库操作模式。主要变更包括:
- 将 `await session.add()` 统一改为 `session.add()`
- 修正部分函数调用为异步版本(如消息查询函数)
- 重构SQLAlchemyTransaction为完全异步实现
- 重写napcat_adapter_plugin数据库层以符合异步规范
- 添加aiomysql和aiosqlite依赖支持
2025-11-19 23:05:17 +08:00
雅诺狐
0cffc0aa95
refactor(db): 将数据库操作异步化
...
- 将所有 session.add() 改为 await session.add()
- 将所有 session.commit() 改为 await session.commit()
- 将 session.refresh() 改为 await session.refresh()
2025-11-19 23:05:14 +08:00
雅诺狐
883bf3a7ea
Update base_action.py
2025-11-19 23:05:11 +08:00
tt-P607
5892ed1452
refactor(db): 重构数据库交互为异步模式
...
为了提升性能并与项目整体的异步架构保持一致,对核心数据库交互模块进行了异步化重构。
主要修改内容包括:
- 将 `PermissionManager` 中的所有数据库操作从同步改为异步,以避免阻塞事件循环。
- 使用 `async_sessionmaker` 和 `async with session` 替代原有的同步会话管理。
- 将 SQLAlchemy 查询语法更新为异步兼容的 `await session.execute(select(...))` 模式。
- 相应地,调用链中依赖数据库操作的多个方法也已更新为 `async` 函数。
2025-11-19 23:05:09 +08:00
tt-P607
610688f641
6
2025-11-19 23:05:05 +08:00
雅诺狐
93542cadef
perf(methods): 通过移除不必要的 self 参数优化方法签名
...
在包括 chat、plugin_system、schedule 和 mais4u 在内的多个模块中,消除冗余的实例引用。此次改动将无需访问实例状态的实用函数转换为静态方法,从而提升了内存效率,并使方法依赖关系更加清晰。
2025-11-19 23:05:00 +08:00
tt-P607
aba4f1a947
三次修改
2025-11-19 23:02:01 +08:00
tt-P607
65087b8c98
回退“feat: 实现KEYWORD_OR_LLM_JUDGE激活类型”
2025-11-19 23:01:17 +08:00
tt-P607
4890771a87
feat(planner): 引入双模动作激活机制与混合触发类型
...
为了更精细地控制动作在不同聊天模式下的行为,并提升决策效率,本次更新引入了全新的动作激活机制。
- **双模激活**: 为 Action 新增 `normal_activation_type` 和 `focus_activation_type` 属性,允许插件在 `NORMAL` 和 `FOCUS` 模式下拥有不同的激活策略,使行为更符合上下文。
- **混合触发**: 新增 `KEYWORD_OR_LLM_JUDGE` 激活类型。该类型会先进行快速的关键词匹配,若未匹配成功,则回退至 LLM 进行判断,兼顾了响应速度和智能化。
- **流程优化**: 重构了 `PlanGenerator` 的动作筛选逻辑,使其在生成计划前,就根据当前聊天模式和简单的激活规则进行预筛选,为后续的 LLM 决策提供更精准、更高效的候选动作列表。
2025-11-19 23:01:16 +08:00
BuildTools
ca82c1c2f2
优化s4u提示词
2025-11-19 23:00:25 +08:00
tt-P607
b97d03da2a
fix(plugin_system): 解决 base_action 中的循环导入问题
...
将 `component_registry` 的导入移至 `run` 方法内部,以避免在模块加载时产生循环依赖。
2025-11-19 23:00:19 +08:00
minecraft1024a
e607dcb36b
refactor(core): 延迟初始化知识库并优化导入结构
...
将LPMM知识库的初始化逻辑封装到`initialize_lpmm_knowledge`函数中,并将其调用移至`main.py`,以实现延迟加载并改善启动流程。
为了解决循环导入问题,将`component_registry`的导入移至`BaseAction.call`方法内部。
2025-11-19 23:00:18 +08:00
minecraft1024a
fac83665da
feat(plugin): 允许在Action内部调用其他Action
...
在`BaseAction`中新增`call_action`方法,使得一个Action可以方便地调用并执行另一个已注册的Action。
该方法会:
- 从组件注册中心查找并获取目标Action类。
- 复用当前Action的上下文信息(如`chat_stream`, `cycle_timers`等)来实例化目标Action。
- 执行目标Action并返回其执行结果。
这为创建更复杂、可组合的插件逻辑提供了基础,提高了代码的复用性和模块化程度。
2025-11-19 23:00:10 +08:00
Windpicker-owo
97df1011d1
1
2025-11-19 22:59:35 +08:00
Windpicker-owo
f297eed9bb
ada现在支持接收贴表情消息
2025-11-19 22:59:14 +08:00
Windpicker-owo
ea7d3b364f
plugin_name改为permission_group
2025-11-19 22:59:12 +08:00
tt-P607
e374ed7166
refactor(plugin_system): 移除未使用的 ChatType 导入
2025-11-19 22:59:08 +08:00
minecraft1024a
474ab78002
refactor(planner): 移除大小脑规划器类型以简化决策流程
...
本次重构删除了`PlannerType`(大小脑规划器)的枚举及其在动作规划和组件定义中的相关逻辑。通过移除大小脑的概念,简化了`ActionPlanner`的决策过程,使其不再需要根据规划器类型来筛选可用动作。
这一变更统一了动作的处理方式,降低了系统的复杂性,使得未来的功能扩展和维护更加直接和清晰。
2025-11-19 22:59:06 +08:00
minecraft1024a
38032e43d7
feat(plugin_system): 添加ON_STOP事件类型
...
为插件系统增加ON_STOP事件,用于处理程序停止时的任务。
2025-11-19 22:58:56 +08:00
minecraft1024a
796daf8ddc
Revert "feat(chat): 实现发送错别字后自动撤回修正的功能"
...
This reverts commit fd5d951501 .
2025-11-19 22:58:56 +08:00
Windpicker-owo
086a7322b3
fix:修复插件组件无法正确获取插件配置的问题
2025-11-19 22:58:56 +08:00
minecraft1024a
a30652b0bc
feat(planner): 实现大小脑规划器分离以优化决策流程
...
将规划器(Planner)拆分为“大脑”和“小脑”两个部分,以实现更精细化的决策控制。
- **大脑(BIG_BRAIN)**: 负责宏观决策,如是否回复、是否需要@人等高层级意图。
- **小脑(SMALL_BRAIN)**: 负责具体的功能性动作执行。
此重构引入了 `PlannerType` 枚举,并更新了动作(Action)定义,允许将动作明确分配给大脑或小脑,从而提升了AI回复的逻辑性和条理性。同时,新增了 `no_action` 类型,用于在规划阶段明确表示“无动作”,提高了处理流程的清晰度。
2025-11-19 22:58:55 +08:00
minecraft1024a
185e6aad0b
Revert "refactor(chat): 优化错别字生成器逻辑与文档"
...
This reverts commit ceee3c1fbf .
2025-11-19 22:58:54 +08:00
minecraft1024a
33e8e054c9
refactor(chat): 优化错别字生成器逻辑与文档
...
对中文错别字生成器(`ChineseTypoGenerator`)进行了大规模重构和改进,以提升代码的可读性、可维护性和生成质量。
主要变更包括:
- **逻辑拆分**: 将核心的单字替换逻辑从主函数 `create_typo_sentence` 中提取到新的私有方法 `_char_replace`,使主流程更清晰。
- **文档增强**: 全面重写和丰富了所有主要方法的文档字符串(docstrings),详细解释了每个参数的用途、函数的内部工作原理和设计决策,显著提高了代码的可理解性。
- **代码简化**: 优化了同音词的查找逻辑(`_get_word_homophones`),移除了复杂的评分和文件读取过程,直接利用 `jieba.dt.FREQ` 进行有效性验证,使代码更简洁高效。
- **健壮性提升**: 在拼音转换和处理逻辑中增加了更具体的异常捕获(`IndexError`, `TypeError`),提高了代码的稳定性。
- **修正建议格式**: 将修正建议的返回格式从单个字符串更改为 `(错字/词, 正确字/词)` 的元组,提供了更完整的上下文信息。
此外,在 `generator_api.py` 中移除了一段冗余的内容类型检查代码。
2025-11-19 22:58:54 +08:00
minecraft1024a
88ff6093b0
refactor(api): 优化撤回消息的函数调用
...
将 `adapter_command_to_stream` 的直接调用重构为使用更通用的 `command_to_stream` 函数。
此更改统一了命令分发逻辑,提高了代码的可维护性。
2025-11-19 22:58:49 +08:00
minecraft1024a
76d510200e
fix(api): 处理列表类型的 content 输入
...
在 `process_human_text` 函数中,增加了对 `content` 参数的类型检查。如果 `content` 是一个列表,它会被自动转换成字符串,以防止后续处理中出现 `ValueError`。这增强了函数的健壮性,使其能够处理更多样化的输入格式。
2025-11-19 22:58:47 +08:00
minecraft1024a
4b6b5d610c
docs(core): 为核心模块添加日志记录和文档字符串
...
为 `cycle_processor`, `response_handler`, `generator_api`, 和 `send_api` 等核心代码文件补充了日志记录器和详细的文档字符串(docstrings)。
本次更新旨在提高代码的可读性和可维护性,通过清晰的文档注释和日志输出,使其他开发者能更容易地理解代码逻辑和功能,并为未来的调试和功能扩展提供便利。
2025-11-19 22:58:42 +08:00
minecraft1024a
89fad16e0e
feat(chat): 实现发送错别字后自动撤回修正的功能
...
引入了一个新的聊天交互机制:当机器人发送了包含“错别字”的消息后,会在短暂延迟后自动撤回该消息,并发送正确的版本。此功能旨在模拟更真实的人类打字行为,增加交互的趣味性和拟人化程度。
主要变更:
- **错别字处理流程**:
- `ResponseHandler`现在会识别出带有错别字的消息,并在发送后创建一个异步任务来处理后续的修正。
- 新增`handle_typo_correction`方法,该方法会随机延迟2-4秒,然后调用新的`recall_message` API撤回原消息,并重新发送修正后的内容。
- **API扩展**:
- `send_api`中增加了`recall_message`函数,用于调用适配器执行消息撤回操作。
- `send_response`的返回值从单个字符串`reply_text`变更为元组`(reply_text, sent_messages)`,以便将已发送的消息信息(包括ID和类型)传递给上层调用者。
- **数据结构调整**:
- `process_llm_response`的返回类型从`list[str]`调整为`list[dict[str, str]]`,以支持更复杂的响应类型,如包含原文、错别字和修正建议的`typo`类型。
- **代码优化与重构**:
- 对`ChineseTypoGenerator`进行了大量的代码清理、注释补充和逻辑优化,使其代码更清晰、更易于维护。
- 修复了多处代码中的类型注解和潜在的空指针问题,提高了代码的健壮性。
2025-11-19 22:58:42 +08:00
minecraft1024a
02d8e7e5fc
rrrrrrrrrrrrrrrrruuuuuuuuuuuufffffffffffffffffffffffffffffffff x2
2025-11-19 22:58:39 +08:00
Windpicker-owo
03d1f7c57c
继续尝试迁移,但是组件获取插件配置存在问题
2025-11-19 22:58:34 +08:00
Windpicker-owo
3980509caa
refactor(prompt): 重构并统一提示词系统
...
- 删除旧的智能提示词系统(smart_prompt.py)和相关参数模块(prompt_parameters.py)
- 将 prompt_builder.py 重命名为 prompt.py 并精简功能
- 更新所有模块的导入路径从 `src.chat.utils.prompt_builder` 到 `src.chat.utils.prompt`
- 统一提示词构建接口,使用新的 PromptContext 替代 SmartPromptParameters
- 移除重复和冗余代码,简化系统架构
BREAKING CHANGE: 旧的 SmartPrompt 系统已被完全移除,所有相关模块需要改用新的统一 Prompt 系统
2025-11-19 22:58:17 +08:00
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