minecraft1024a
dd12c441a9
feat(report): 优化报告图表并引入对数坐标轴
...
本次提交对报告页面的 ECharts 图表进行了多项视觉和可用性优化,以提升数据可读性和展示效果。
主要变更包括:
1. **饼图优化**:
- 统一将图例(Legend)固定在图表顶部,以获得更一致和整洁的布局。
- 增大了饼图的半径,使其在视觉上更突出。
2. **Token 对比图重构**:
- 从垂直条形图改为水平条形图,更利于展示较长的标签。
- 将数值轴(现为 X 轴)改为对数(log)坐标轴,有效解决了 Token 数量差异巨大时的显示问题,让小数值也能清晰可见。
- 为对数轴处理了 0 值的情况,并在提示框中恢复显示原始值。
- 数据缩放(dataZoom)也相应调整为在 Y 轴上进行。
3. **其他条形图**:
- 增加了条形的宽度,增强了视觉冲击力。
2025-11-30 14:16:50 +08:00
minecraft1024a
474f86af54
feat(report): migrate charting library from Chart.js to ECharts
...
This commit replaces the Chart.js library with Apache ECharts for all charts in the statistics report page. The migration aims to significantly enhance chart interactivity, visual appeal, and performance, especially with larger datasets.
Key improvements include:
- **Enhanced Interactivity**: Implemented data zooming and panning (`dataZoom`) for all time-series and bar charts, allowing for detailed data exploration.
- **Improved Visuals**: Leveraged ECharts' capabilities to introduce smoother lines, gradient area fills, better animations, and a more modern aesthetic.
- **Smart Legends**: Legends now automatically become scrollable when there are too many items, resolving UI clutter and improving readability.
- **Performance Optimization**: Optimized charts like the model cost bar chart and response time scatter plot to handle large numbers of data points smoothly.
- **Responsive Resizing**: Reworked the chart resizing logic to ensure all charts correctly and smoothly redraw when the window size changes.
2025-11-30 13:53:53 +08:00
minecraft1024a
46f88ebc70
feat(report): 重构统计报告页面,引入全新现代化UI主题
...
本次提交对统计报告页面进行了一次全面的视觉和代码重构,旨在提升用户体验和可维护性。
主要更新包括:
- **UI/UX 重构**: 废弃原有的 Material Design 3 主题,采用更简洁、现代的仪表盘风格,优化了色彩、字体和布局,提升了整体视觉效果和数据可读性。
- **布局优化**: 使用 CSS Grid 构建主布局,提高了响应式设计的灵活性和健壮性。
- **图表美化**: 更新了所有图表的视觉样式,包括新的调色板、交互式工具提示和更清晰的坐标轴。
- **代码优化**:
- 将图表数据从内联 JavaScript 字符串改为通过 `<script type="application/json">` 标签注入,更加安全和规范。
- 实现了图表的懒加载,仅在切换到对应标签页时才进行初始化,提升了初始加载速度。
- 移除大量内联样式,统一使用 CSS 类进行管理,增强了代码的可维护性。
2025-11-30 13:00:09 +08:00
ikun-11451
acafc074b1
依旧修pyright喵喵喵~
2025-11-29 22:20:55 +08:00
ikun-11451
72e7492953
依旧修pyright喵~
2025-11-29 21:26:42 +08:00
minecraft1024a
36dd6ead1a
fix(report): 修复报告图表懒加载时的函数调用问题
...
`showTab` 函数可能会在 `DOMContentLoaded` 事件完全执行完毕之前被调用,此时 `initializeStaticChartsForPeriod` 函数尚未定义,会导致引用错误。
本次修改通过将函数声明提升到外部作用域,并确保在调用前检查其是否存在,解决了这个问题,从而保证了图表懒加载的稳定性。
2025-11-29 11:03:55 +08:00
minecraft1024a
95a221a41d
feat(report): 丰富统计报告,增加多种高级可视化图表
...
新增了五种高级数据可视化图表,以提供更深入的模型性能和使用情况分析:
- **Token使用对比图**: 直观展示各模型的输入与输出Token数量。
- **供应商请求占比图**: 显示不同服务供应商的请求分布。
- **平均响应时间图**: 对比各模型的平均响应速度。
- **模型效率雷达图**: 从多个维度(请求量、TPS、速度、成本、容量)综合评估模型性能。
- **响应时间分布散点图**: 展示每次请求的具体响应时间,分析性能稳定性。
此外,对报告的UI/UX进行了全面优化,包括采用卡片式布局、实现可交互的图例以筛选数据、以及改进图表样式和提示信息,提升了报告的可读性和易用性。
2025-11-29 10:51:34 +08:00
minecraft1024a
9dff133146
feat(report): 增强统计报告,增加模块花费图表并优化UI
...
本次更新对统计报告进行了多项功能增强和界面优化,旨在提供更丰富的分析维度和更佳的用户体验。
主要变更包括:
- **新功能**:
- 新增“按模块花费”饼图,以提供新的成本分析维度。
- 在供应商统计表格中加入“平均耗时”指标,用于性能评估。
- 在报告顶部添加“名词解释”卡片,帮助用户理解关键指标。
- **UI/UX 优化**:
- 重构页面布局为主内容区与图表侧边栏,提升信息密度和可读性,并实现响应式设计。
- 全面优化图表视觉效果,包括更新调色板、增加加载动画、改进提示框,使其更具表现力和交互性。
2025-11-29 10:12:33 +08:00
minecraft1024a
7efbf58dda
feat(report): 重构统计报告,增加效率分析并采用MD3设计
...
本次更新对统计报告进行了全面的重构和视觉升级,旨在提供更深入的数据洞察和更现代化的用户体验。
主要变更包括:
- **新增效率分析模块**: 引入了一系列关键的大模型效率指标,如单条消息成本、Token效率(输出/输入比)、每小时成本/请求数等,并通过新的表格进行详细展示。
- **全新UI设计**: 整体界面采用Material Design 3 (MD3) 风格重新设计,优化了色彩、字体、间距和卡片样式,提升了报告的专业性和可读性。
- **图表功能增强**: 动态图表和静态图表均进行了美化,更新了配色方案,增加了平滑的加载动画和交互效果。饼图升级为更易读的甜甜圈图,并优化了工具提示信息。
- **内容和布局优化**: 增加了更多的摘要卡片以快速概览核心数据。为各个板块标题添加了 Emoji 图标,使信息层次更清晰,并优化了整体布局。
2025-11-29 09:51:46 +08:00
tt-P607
d2d0cfc4db
feat(image): 为 VLM 处理添加自动 GIF 转 JPG 转换功能
...
此提交引入了在将 GIF 图像发送到视觉语言模型 (VLM) 进行描述之前,自动检测并转换为 JPG 格式的功能。这确保了与不支持动画格式的 VLM 的兼容性,防止处理失败。
此外,还添加了若干空值检查断言,以提高代码的健壮性,并防止配置对象未正确初始化时可能出现的运行时错误。还实现了对 `global_config.emoji` 的防御性检查。
2025-11-28 16:00:55 +08:00
Windpicker-owo
43483b934e
feat: 更新机器人配置并添加数据库迁移脚本
...
- 将bot_config_template.toml中的版本升级至7.9.0
- 增强数据库配置选项以支持PostgreSQL
- 引入一个新脚本,用于在SQLite、MySQL和PostgreSQL之间迁移数据
- 实现一个方言适配器,用于处理特定于数据库的行为和配置
2025-11-27 18:45:01 +08:00
拾风
94b889f34e
Merge branch 'dev' into mofox-bus
2025-11-26 22:52:06 +08:00
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
tt-P607
fd65d8c4eb
feat(person_info): 实施基于稳健 ID 的用户信息同步。本次提交重构了用户识别和信息检索系统,使其基于稳定的平台和用户 ID,不再依赖脆弱的姓名解析机制。同时引入了自动后台进程,以保持用户信息的实时更新。主要变更包括:
...
- 在 `PersonInfoManager` 中新增 `sync_user_info` 方法,根据 `platform` 和 `user_id` 来创建和更新用户记录。
- `ChatManager` 现在会在处理消息时触发该同步作为非阻塞后台任务,确保用户数据(如昵称)保持最新。
- 提示生成逻辑,特别是关系和上下文信息的生成,已重构为使用稳定的 `user_id`,而非从回复消息内容中解析姓名。
- `PromptParameters` 已被扩展,以在整个回复生成流程中传递 `platform` 和 `user_id`。
- 弃用依赖名称到 ID 查找的脆弱方法。
2025-11-25 22:01:41 +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