Windpicker-owo
9f82671972
Merge branch 'dev' into mofox-bus
2025-11-26 22:25:39 +08:00
Windpicker-owo
0908fb50a0
优化日志
2025-11-26 21:16:16 +08:00
Windpicker-owo
b6de9b5a9c
重构聊天系统中的消息发送与处理
...
- 更新了`uni_message_sender.py`,使用`MessageEnvelope`来发送消息,取代了之前的`MessageSending`结构。
- 引入了`send_envelope`函数,通过改进日志记录和错误处理来简化消息发送流程。
- 修改了`HeartFCSender`以直接处理`MessageEnvelope`,确保与新消息结构的兼容性。
- 重构了`default_generator.py`,以构建`MessageEnvelope`而不是`MessageSending`,从而增强了消息构建逻辑。
- 调整了`utils.py`中的效用函数,以使用`DatabaseUserInfo`来处理用户信息。
- 更新了`send_api.py`以构建和发送`MessageEnvelope`,从而改进了消息分发逻辑。
- 从插件系统中移除了已弃用的`MaiMessages`类,清理了未使用的代码。
- 增强了`napcat_adapter_plugin`以适应新的消息结构,确保消息的正确处理和发送。
- 对代码进行整体清理和整理,以提高可维护性和可读性。
2025-11-25 21:54:27 +08:00
Windpicker-owo
c268ea2fb2
修复ChatStream循环导入问题
2025-11-25 20:29:48 +08:00
minecraft1024a
94b4123039
refactor(plugin_system): 废弃旧版Command系统并重构注册中心
...
本次提交完全移除了对旧版 `BaseCommand` 系统的支持,统一使用 `PlusCommand`。所有旧版命令现在通过一个兼容性适配器在加载时自动转换为 `PlusCommand`,简化了命令处理流程和代码库。
主要变更:
- **移除旧版命令处理**: 删除了 `ChatBot` 中专门处理旧版 `BaseCommand` 的方法 (`_process_commands_with_new_system`) 和相关逻辑,现在所有命令都通过 `PlusCommand` 的处理流程。
- **重构组件注册中心**: 对 `ComponentRegistry` 进行了大规模重构和清理:
- 添加了大量文档字符串和类型提示,显著提升了代码的可读性和可维护性。
- 废弃了特定于 `BaseCommand` 的注册表和查找方法 (`_command_registry`, `_command_patterns`, `find_command_by_text`)。
- 实现了 `unregister_plugin` 和 `remove_component` 方法,支持插件和组件在运行时的动态卸载。
- 统一并简化了各类组件的注册、查询和状态管理逻辑,使其更加一致和健壮。
BREAKING CHANGE: 废弃了 `BaseCommand` 类。所有自定义命令现在必须继承自 `PlusCommand`。虽然系统提供了向后兼容的适配器,但强烈建议将现有命令迁移到 `PlusCommand` 以获得全部功能和最佳性能。直接依赖旧版 `BaseCommand` 注册和查找机制的代码将无法工作。
2025-11-22 12:35:37 +08:00
minecraft1024a
30bf1f68b1
refactor(plugin_system): 重构 Prompt 注入逻辑以实现动态化
...
本次重构的核心目标是将 Prompt 注入规则的处理方式从系统启动时的一次性加载,转变为在每次需要注入时实时、动态地构建。这解决了之前静态加载机制下,运行时启用/禁用 Prompt 组件无法影响其注入行为的问题。
主要变更包括:
- **PromptComponentManager 动态化**:
- 移除了 `load_static_rules` 和 `_initialized` 标志,规则不再在启动时预加载到 `_dynamic_rules` 中。
- `_dynamic_rules` 现在只存储通过 API 动态添加的纯运行时规则。
- 新增 `_build_rules_for_target` 方法,该方法在 `apply_injections` 时被调用,实时从 `component_registry` 获取所有已启用的静态组件规则,并与 `_dynamic_rules` 中的运行时规则合并,确保规则集始终反映当前系统状态。
- **依赖 ComponentRegistry**:
- `PromptComponentManager` 现在直接依赖 `component_registry` 来获取组件的最新启用状态和信息,而不是依赖自己预加载的缓存。
- `get_registered_prompt_component_info`, `get_injection_info`, `get_injection_rules` 等多个 API 方法被修改为 `async`,并重写了内部逻辑,以动态查询和构建信息,确保返回的数据准确反映了当前所有可用组件(包括静态和纯动态)的注入配置。
- **ComponentRegistry 增强**:
- 增加了对 Prompt 组件在禁用时从内部启用的注册表中移除的逻辑。
- 扩展了 `is_component_available` 的逻辑,使其能正确处理不支持局部(stream-specific)状态的组件类型。
2025-11-22 11:15:45 +08:00
Windpicker-owo
fee7611e99
feat: 实现消息编解码器和消息处理模型
...
- 添加编解码器,用于序列化和反序列化MessageEnvelope对象。
- 创建消息模型,包括分段(Seg)、群组信息(GroupInfo)、用户信息(UserInfo)、格式信息(FormatInfo)、模板信息(TemplateInfo)、基础消息信息(BaseMessageInfo)和消息基础(MessageBase)。
引入路由器以管理消息路由和连接。
- 实现运行时机制,通过钩子和路由来处理消息处理。
- 使用HTTP和WebSocket客户端和服务器开发传输层,以进行消息传输。
- 为消息内容和信封定义类型,以标准化消息结构。
2025-11-21 18:40:51 +08:00
Windpicker-owo
2c346c3580
feat: 强制注册长期记忆目标ID,支持中文描述作为ID映射
2025-11-19 20:19:06 +08:00
minecraft1024a
7a2c08c18e
feat(prompt): 为提示词注入添加占位符保护机制
...
为防止注入规则(特别是使用宽泛正则表达式的 REMOVE 或 REPLACE 类型)意外修改或删除核心的 "{...}" 占位符,引入了一套新的占位符保护机制。
该机制通过以下步骤确保注入过程的安全性:
1. **保护**:在应用任何规则之前,模板中的所有占位符都会被替换为唯一的临时标记。
2. **预检与警告**:系统会检查所有危险规则(REMOVE/REPLACE),如果其目标内容可能匹配到被保护的占位符,则会记录一条警告日志。
3. **安全应用**:所有注入规则在已保护的模板上按优先级顺序执行。
4. **恢复**:完成所有注入后,临时标记被恢复为原始的占位符。
此项更改显著提升了提示词系统的鲁棒性,确保了核心模板的完整性不会被插件或动态规则无意中破坏。
2025-11-15 18:47:21 +08:00
minecraft1024a
6f62073630
chore: perform widespread code cleanup and formatting
...
Perform a comprehensive code cleanup across multiple modules to improve code quality, consistency, and maintainability.
Key changes include:
- Removing numerous unused imports.
- Standardizing import order.
- Eliminating trailing whitespace and inconsistent newlines.
- Updating legacy type hints to modern syntax (e.g., `List` -> `list`).
- Making minor improvements for code robustness and style.
2025-11-15 17:12:46 +08:00
minecraft1024a
f980a6f9f4
refactor(prompt): 将注意力和内容混淆统一为提示词扰动
...
本次提交重构了提示词修改逻辑,将之前独立的“注意力优化”和“内容混淆”功能合并为一个统一的概念:“提示词扰动”(Prompt Perturbation)。
主要变更包括:
- 在模型配置中引入新的统一选项:`enable_prompt_perturbation`, `perturbation_strength` 和 `enable_semantic_variants`。
- 将原 `AttentionOptimizer` 中的噪声注入和语义变体逻辑迁移到 `llm_models` 模块中,作为扰动策略的一部分。
- 简化 `attention_optimizer.py`,使其专注于提示词块重排 (`BlockShuffler`)。
- 更新 `_PromptProcessor` 以根据新的统一配置来协调不同的扰动技术。
此项更改为用户简化了配置,并通过集中化相关逻辑,提供了一个更清晰、更易于维护的实现。
BREAKING CHANGE: 内容混淆的相关配置已被替换。`enable_content_obfuscation` 和 `obfuscation_intensity` 配置项已移除。用户需更新配置以使用新的 `enable_prompt_perturbation` 和 `perturbation_strength`。
2025-11-14 20:14:19 +08:00
minecraft1024a
36b1b72e25
refactor(prompt): 移除注意力优化功能
...
注意力优化功能(通过添加随机空白字符或语义变体)被证明效果不佳且可能引入不稳定性。
为了简化代码库、减少用户配置的复杂性并提高系统的稳定性,决定移除此实验性功能。这使得提示词构建过程更加直接和可预测。
BREAKING CHANGE: 移除了注意力优化功能及其所有相关配置。用户需要从配置文件中移除 `[attention_optimization]` 部分。
2025-11-14 16:15:42 +08:00
minecraft1024a
d12c6d9b3a
feat(prompt): 支持为组件添加新的注入规则
...
新增 `add_rule_for_component` 方法,允许为一个已存在的提示词组件添加一条新的注入规则。
该方法会自动查找并复用该组件已有的内容提供者 (content_provider) 和来源 (source),从而简化了为同一组件动态添加多个注入目标的操作。
2025-11-14 13:49:18 +08:00
minecraft1024a
ecf1714baa
feat(prompt): 支持按组件名称批量移除注入规则
...
新增 `remove_all_rules_by_component_name` 方法,用于一次性移除指定提示词组件在所有目标上的注入规则。
此功能简化了组件的停用和清理流程,特别是在动态管理和热插拔组件的场景下,无需再手动遍历所有可能的目标提示词来逐一移除规则。
2025-11-14 13:34:36 +08:00
minecraft1024a
0d2234ca02
feat(prompt): 增强提示词组件信息获取,使其包含动态注入的组件
...
重构 `get_registered_prompt_component_info` 方法,以准确反映系统完整的提示词组件状态,包括静态注册和动态注入的组件。
此前的实现仅能返回静态注册的组件,无法展示通过动态规则注入的纯动态组件,导致信息不完整。
新的实现:
- 合并静态注册的组件和因动态注入规则而存在的组件。
- 为纯动态组件即时创建 `PromptInfo` 实例。
- 实时重建每个组件的 `injection_rules` 列表,以反映当前的注入配置。
这确保了前端或API调用方能够获取到所有可用提示词的最新、最准确的信息。
2025-11-14 13:10:25 +08:00
minecraft1024a
80210cfb58
feat(prompt): 增强 get_core_prompt_contents 方法以支持获取单个提示词
...
为 `get_core_prompt_contents` 方法添加了可选的 `prompt_name` 参数。
当指定 `prompt_name` 时,该方法现在只返回对应提示词模板的内容。如果未指定,则返回所有核心提示词。
BREAKING CHANGE: `get_core_prompt_contents` 方法的返回类型从 `dict[str, str]` 更改为 `list[list[str]]`,以统一处理单个和多个提示词的返回结果,确保接口行为的一致性。
2025-11-14 13:01:05 +08:00
minecraft1024a
ec1ce9db8e
feat(statistic): 为供应商统计增加平均耗时和标准差指标
...
- 为按供应商分类的统计数据新增了平均请求耗时和耗时标准差的计算与展示。
- 重构了统计数据计算逻辑,统一使用 `defaultdict` 的直接索引访问替代 `.get()` 方法,使代码更简洁并提高了健壮性。
- 标准化了与耗时相关的统计键名,以提高代码的一致性和可读性。
2025-11-14 12:23:38 +08:00
tt-P607
a7e188f67c
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-11-13 20:39:14 +08:00
tt-P607
dcc8f6477e
refactor(chat): 简化括号内容过滤
...
将用于过滤 `[表情包:...]` 和 `[图片:...]` 等内容的多个特定正则表达式模式替换为一个更通用的 `[.*?]` 模式。
此更改简化了代码,并通过处理方括号内的任何内容(包括未处理的格式如 `[at=...]`)提高了过滤的稳健性。
2025-11-13 20:38:59 +08:00
minecraft1024a
718584a7da
fix(statistic): 增强统计数据处理的健壮性
...
此前的统计处理逻辑在某些统计项(如模型调用、消息数)在特定周期内未产生数据时,会因为直接访问字典键而引发 `KeyError`,导致统计任务失败。
本次提交通过以下方式解决了该问题:
- 在访问统计字典时,全面使用 `dict.get()` 并提供默认值,避免因键不存在而崩溃。
- 使用 `setdefault` 来确保在计算平均耗时等指标前,相关的数据结构已被初始化。
- 简化并重构了历史总览数据的合并逻辑,使其在处理不完整数据时更加稳健。
2025-11-13 19:47:44 +08:00
minecraft1024a
2f46794a64
feat(statistic): 支持按 provider 统计请求
2025-11-13 18:38:47 +08:00
minecraft1024a
69f132a12e
feat(prompt): 为提示词组件提供注入目标上下文
...
为了让单个提示词组件在注入到不同目标时能够有不同的行为,现在向组件的执行上下文中传递当前注入的目标提示词名称 (`target_prompt_name`)。
这使得组件可以根据注入点动态调整其生成的内容。例如,一个工具列表组件在注入到 planner prompt 和 reflection prompt 时可以提供不同详尽程度的列表。
主要变更:
- `BasePrompt` 初始化时接收 `target_prompt_name`。
- `PromptComponentManager` 在应用注入规则时会传递此参数。
- `add_injection_rule` 方法现在支持批量添加规则,以简化注册流程。
BREAKING CHANGE: `PromptComponentManager.add_injection_rule` 中 `content_provider` 的函数签名已更改,现在需要接受第二个参数 `target_prompt_name: str`。
旧签名: `async def provider(params: PromptParameters) -> str`
新签名: `async def provider(params: PromptParameters, target_prompt_name: str) -> str
2025-11-13 18:18:15 +08:00
minecraft1024a
ce2d1acc7c
refactor(prompt): 简化和统一提示词注入查询方法
...
将多个功能重叠的查询方法整合为两个核心方法,以提供更清晰、更灵活的 API,方便获取注入信息和规则。
- `get_injection_info` 方法取代了原有的 `get_full_injection_map` 和 `get_injections_for_prompt`。它现在支持按目标提示词进行筛选,并能通过 `detailed` 参数控制返回信息的详细程度。
- `get_injection_rules` 方法整合了 `get_all_dynamic_rules`、`get_rules_for_target` 和 `get_rules_by_component` 的功能。现在可以通过一个方法,灵活地按目标、按组件或按两者的组合来筛选注入规则。
- 已更新 `system_management` 插件中的相关命令以适配新的 API。
BREAKING CHANGE: `PromptComponentManager` 的公共 API 已更改。
移除了 `get_full_injection_map`, `get_injections_for_prompt`, `get_all_dynamic_rules`, `get_rules_for_target`, `get_rules_by_component` 方法。
请分别使用新的 `get_injection_info` 和 `get_injection_rules` 方法进行替代。
2025-11-13 17:17:48 +08:00
tt-P607
5e559ee7ea
feat(config): 添加配置以切换知识摘要
...
这在 `lpmm_knowledge` 部分引入了一个新的配置选项 `enable_summary`。用户现在可以将其设置为 `false`,以防止知识库摘要被包含在最终提示上下文中。
这提供了对输出冗长程度的更多控制,并有助于管理令牌消耗。该功能默认启用,以保持现有行为。
2025-11-13 16:27:58 +08:00
minecraft1024a
992a1129ce
refactor(report): 优化报告样式和数据加载逻辑
...
- 调整了报告页面的CSS样式,包括颜色、阴影和布局,以提供更专业、现代的视觉效果。
- 改进了从后端向前端JavaScript传递图表数据的方式。现在通过一个独立的`<script>`标签注入JSON字符串,而不是直接嵌入到JS代码中,这增强了鲁棒性并避免了特殊字符导致的解析错误。
- 在JavaScript中增加了对JSON解析和图表数据有效性的检查,以防止因数据格式错误或缺失导致页面渲染失败。
- 将统计模块中的耗时相关键名统一为大写格式,以提高代码一致性。
2025-11-13 14:31:54 +08:00
minecraft1024a
e1622ca6be
refactor(config): 移除废弃的数据库配置模块
...
旧的数据库配置模块 `src/common/database/config` 已被完全移除。该模块已被标记为废弃,其功能已统一整合到 `global_config` 中。
本次重构旨在:
- 简化代码库,消除冗余和过时的文件。
- 统一配置管理,提高可维护性。
此外,对 `AttentionOptimizer` 中的类变量添加了 `ClassVar` 类型注解,以增强代码的清晰度和类型安全性。
2025-11-13 12:51:42 +08:00
minecraft1024a
7dc4be3555
feat(report): 优化统计报告页面的UI和布局
...
对生成的HTML统计报告进行了全面的视觉和结构重构,以提供更现代化、更具可读性的用户界面。
- 采用仪表盘式的双栏布局(主内容区和侧边栏),将图表移至侧边栏,使数据表格更聚焦。
- 全面更新了CSS样式,包括配色、字体、卡片、表格和标签页,提升了整体的美观度和用户体验。
- 引入了响应式设计,以更好地适配移动设备。
- 将默认输出文件名从 `maibot_statistics.html` 更改为 `mofox_bot_statistics.html` 以保持项目命名一致性。
2025-11-13 12:47:36 +08:00
minecraft1024a
b1a022cc3c
refactor(report): 使用Jinja2模板重构报告生成器
...
将报告生成逻辑与表示层分离,以提高代码的可维护性和可读性。
- HTML、CSS 和 JavaScript 从 Python f-string 中提取到独立的模板文件中。
- 引入 Jinja2 模板引擎动态渲染报告内容,使未来修改报告样式和结构更加方便,实现了逻辑和视图的分离。
2025-11-13 12:09:37 +08:00
minecraft1024a
81b83c88dc
Revert "refactor(report): 移除HTML报告生成功能"
...
This reverts commit bc533880dd .
2025-11-13 11:35:41 +08:00
tt-P607
b1c0ddeb6e
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-11-13 11:28:38 +08:00
tt-P607
08c1d73f77
refactor(chat):简化和改进回复格式过滤
...
之前用于过滤 `[回复...]` 格式的实现依赖于多个正则表达式。这种方法比较复杂,并且无法正确处理深度嵌套的回复字符串。
此提交重构了逻辑,采用更简单、更稳健的基于字符串的方法。通过在以 `[回复` 开头的字符串中找到最后一个闭合括号 `]`,新逻辑可以可靠地去除整个回复前缀,无论嵌套深度如何。这提高了解析的准确性,并简化了代码。
2025-11-13 11:28:25 +08:00
minecraft1024a
bc533880dd
refactor(report): 移除HTML报告生成功能
...
移除了HTML报告生成功能,包括 `HTMLReportGenerator` 类及其在统计输出任务中的调用逻辑。
此举旨在简化代码库,剥离一个维护成本较高的功能。删除该组件可以简化统计模块并减少依赖,同时也为未来可能采用更现代、更灵活的报告方案做准备。
BREAKING CHANGE: 系统不再生成HTML格式的统计报告。
2025-11-13 11:26:28 +08:00
tt-P607
0a6a328644
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-11-13 11:10:26 +08:00
tt-P607
5326c69163
feat(prompt): 添加动态群聊提醒并修复内存搜索
...
在系统提示中引入动态群聊提醒,使其具备上下文意识。现在仅在对话发生在群聊环境中时注入该提醒,从而防止在私聊中可能引起模型混淆。
这是通过向`PromptParameters`添加`group_chat_reminder_block`实现的,该模块会根据聊天类型有条件地填充。
此外,本次提交还包括修复在内存搜索过程中可能出现的`AttributeError`,确保在尝试使用内存模块之前先进行配置。
2025-11-13 11:10:16 +08:00
minecraft1024a
b0efc8d666
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-11-13 10:57:37 +08:00
minecraft1024a
a8e8a5d170
feat(report): 为统计报告引入图形化费用分析视图
...
为增强 HTML 报告的可读性和洞察力,此变更集成了 Chart.js 来将关键的成本数据进行可视化。
现在,报告的每个标签页都会包含一个“数据总览”部分,其中有两个核心图表:
1. **供应商成本构成图 (饼图)**: 直观展示不同供应商的费用占比,帮助快速定位主要开销来源。
2. **模型成本排行榜 (条形图)**: 按费用降序排列各个模型,清晰地识别出成本最高的模型。
这些图表是动态生成的,如果统计周期内数据不足,将显示提示信息,避免用户面对空白图表。
2025-11-13 10:56:33 +08:00
Windpicker-owo
a04cfba202
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-11-12 22:37:47 +08:00
Windpicker-owo
310256e24d
feat(attention): 添加注意力优化器以增强提示词多样性和防止注意力退化
...
refactor(prompt): 使用 asyncio.gather 替代 as_completed 以提升并发性能
refactor(config): 添加注意力优化配置选项
refactor(prompt_params): 增加注意力优化开关
2025-11-12 22:37:35 +08:00
minecraft1024a
87cea527a3
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-11-12 21:26:24 +08:00
minecraft1024a
89ca1651d9
1
2025-11-12 21:26:21 +08:00
Windpicker-owo
c1cda89d65
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-11-12 21:19:27 +08:00
Windpicker-owo
17abfc74ae
refactor(prompt): 优化任务并发执行逻辑,使用 as_completed 提升性能和错误处理
2025-11-12 21:19:19 +08:00
minecraft1024a
6ef1829072
refactor(statistic): decouple statistics collection from report generation
...
Introduces a dedicated `HTMLReportGenerator` class in `report_generator.py` to handle all aspects of HTML and chart rendering. This decouples the report presentation logic from the data collection process within `StatisticOutputTask`.
Key changes include:
- Migrated all HTML and JavaScript generation into the new `HTMLReportGenerator`.
- Extracted all statistic key constants into a separate `statistic_keys.py` file for improved organization.
- Renamed `_generate_chart_data` to `_collect_chart_data` to better reflect its purpose.
- Improved data handling robustness by using `.get()` for dictionary access and safely handling database query results.
2025-11-12 20:34:36 +08:00
Windpicker-owo
09db6c0c88
refactor: 移除对机器人自身用户ID的特殊处理,统一使用QQ号进行比较
2025-11-12 17:33:51 +08:00
minecraft1024a
a6c2820dd9
fix(prompt): 通过延迟导入解决循环依赖问题
...
将 `global_prompt_manager` 的导入操作从模块顶部移动到具体使用它的方法内部。
此举旨在解决 `prompt_component_manager` 和 `prompt` 模块之间潜在的循环导入问题,确保在应用初始化时模块加载顺序的稳定性,避免可能因此引发的 `ImportError`。
2025-11-12 13:24:13 +08:00
minecraft1024a
daf8ea7e6a
refactor: 清理冗余代码并现代化导入语句
...
- 将 `typing.Awaitable` 和 `typing.Callable` 的导入更新为 `collections.abc`,以遵循 Python 3.9+ 的最佳实践。
- 移除了 `sorted()` 函数中不必要的 `set` 到 `list` 的转换。
- 清理了 `plugin_system/__init__.py` 中不再需要公开的 `__all__` 条目。
2025-11-12 12:47:55 +08:00
minecraft1024a
623cebf728
docs(prompt): 为 PromptComponentManager 植入详尽的代码文档与注释
...
为了让提示词注入系统的核心 `PromptComponentManager` 变得更加透明和易于理解,本次提交对代码进行了全面的文档化。此举旨在降低新接手者的认知门槛,并为未来的维护工作铺平道路。
具体而言,我们为类和所有公开方法添加了详细的文档字符串,阐明了其设计哲学、职责边界和参数约定。同时,在关键代码块(如规则数据结构、内容提供者闭包、并发锁的使用)旁增加了内联注释,揭示了其背后的实现考量和工作机制。
2025-11-12 12:46:07 +08:00
minecraft1024a
c76e1ff0e6
fix(prompt): 修复 PromptComponentManager 的方法定义在类外部的问题
...
将多个本应属于 `PromptComponentManager` 的实例方法(如 `get_injections_for_prompt`, `get_rules_for_target` 等)移回正确的类定义内。
这些方法之前因缩进错误被意外地定义在了类外部,导致它们无法作为实例方法被正确调用。本次提交修正了这个问题,确保了类的封装性和方法的正确作用域。
2025-11-12 12:39:51 +08:00
minecraft1024a
ebc74f2fe7
feat(prompt): 新增按目标和组件查询注入规则的功能
...
为了提供更灵活的注入规则审查和调试能力,本次提交重构了规则查询接口。
新增了两个功能更强大的查询方法:
- `get_rules_for_target`: 允许查询所有注入到特定核心提示词的规则。
- `get_rules_by_component`: 允许查询由特定注入组件定义的所有规则,无论其目标为何。
BREAKING CHANGE: 移除了原有的 `get_dynamic_rule` 方法,该方法只能通过组件和目标联合查询单个规则,使用场景有限。请根据查询需求,改用新增的 `get_rules_for_target` 或 `get_rules_by_component` 方法。
2025-11-12 12:35:14 +08:00
minecraft1024a
6438539412
feat(prompt): 为提示词注入系统添加预览和详情查询功能
...
新增了对提示词注入过程进行预览和详细查询的能力,极大地增强了开发和调试的便利性。
- 新增 `preview_prompt_injections` 方法,允许在不修改任何状态的情况下,模拟并预览应用所有注入规则后的最终提示词模板。
- 增强 `get_injections_for_prompt` 方法,使其返回更丰富的注入信息,包括注入来源、类型和具体内容,提高了系统的可观测性。
- 新增 `get_dynamic_rule` 辅助方法,用于查询单条动态注入规则。
BREAKING CHANGE: `get_injections_for_prompt` 方法的返回结构已更改,现包含更详细的注入信息。移除了 `get_full_injection_map` 方法,并重命名 `get_registered_prompt_components` 为 `get_registered_prompt_component_info`。
2025-11-12 12:33:44 +08:00