leko and SXP-Simon
47eeff3f61
fix(template-utils): str.format -> string.Template ( #149 )
...
* feat: upgrade prompt templates from str.format to string.Template for improved compatibility
* fix(get_astrbot_data_path): fallback 到 get_astrbot_data_path 方法
* feat: upgrade prompt templates from str.format to string.Template for improved compatibility
* fix: strict mode
* fix: 补齐文件名格式的自动迁移
* fix(ChatQualityAnalyzer): 删除无效的 prompt 提示语句
* ruff
---------
Co-authored-by: SXP-Simon <sxp20061207@163.com >
2026-04-02 16:40:34 +08:00
SXP-Simon
5e2da8c852
fix(get_astrbot_data_path): fallback 到 get_astrbot_data_path 方法
2026-04-02 15:25:07 +08:00
SXP-Simon
05836f64f2
fix: 定时任务超时问题优化
...
Fixes #141
定时分析任务间隔启动,放宽超时配置限制
2026-04-01 21:14:00 +08:00
leko and SXP-Simon
8ba5f69788
feat: 檔案名稱模板支援 ULID 和資料夾路徑 ( #146 @lekoOwO)
...
* feat: Enhance HTML report generation and dispatching with captions
* chore: apply ruff fixes
* fix(ReportGenerator): update HTML caption for report generation
* fix(ReportGenerator): encode filename in HTML report caption URL
* fix(ReportGenerator): refactor golden quotes handling for clarity and consistency
* feat(ReportGenerator): enhance filename formatting with ulid support and path sanitization
* fix(ReportGenerator): enhance path validation and filename uniqueness in report generation
* fix: pylance type error and ruff
* fix: 路径默认使用 ulid 变量
---------
Co-authored-by: SXP-Simon <sxp20061207@163.com >
2026-04-01 20:38:57 +08:00
3662ac3d75
feat(html): Add HTML output format support ( #143 @lekoOwO)
...
* feat: add HTML output format support
- Add HTML settings section to _conf_schema.json with base URL and output directory configuration
- Add HTML configuration methods to ConfigManager (get_html_output_dir, get_html_base_url, get_html_filename_format)
- Create html_template.html files for all themes (fallback to image_template.html)
- Implement generate_html_report method in ReportGenerator to save HTML and JSON files
- Update main.py to handle HTML output format and send both file and URL if base_url is configured
- Update set_output_format command to include HTML as a valid format option
Co-authored-by: lekoOwO <20151124+lekoOwO@users.noreply.github.com >
* feat: enhance JSON serialization in HTML report generation
* fix: 优化输出目录获取逻辑
---------
Co-authored-by: anthropic-code-agent[bot] <242468646+Claude@users.noreply.github.com >
Co-authored-by: lekoOwO <20151124+lekoOwO@users.noreply.github.com >
Co-authored-by: SXP-Simon <sxp20061207@163.com >
2026-03-31 20:06:57 +08:00
SXP-Simon
4200631f17
fix(HatsuneMiku): 完善
2026-03-28 21:18:50 +08:00
SXP-Simon
7e741854a9
feat(response_format): 使用 OpenAI 格式的 response_format 参数约束 json 格式化数据生成,并且兼容旧版本逻辑,等待本体合并相关参数的传入
2026-03-26 22:56:02 +08:00
SXP-Simon
9ed4771730
feat: 完善自动分析名单调度与面板配置说明
...
- 重构自动分析调度流程:以分层名单解析目标群组,统一报告入口,并按群组模式分发传统/增量任务。
- 新增定时名单与增量名单配置能力:补充 scheduled_group_list(_mode)、incremental_group_list(_mode)、incremental_fallback_enabled。
- 优化失败兜底策略:增量最终报告在超时、异常或无有效结果时,可回退至传统全量分析。
- 完善配置与文档说明:在 _conf_schema.json 与 README 中补充面板操作指引、判定顺序与边界场景说明。
- 兼容旧配置行为:保留废弃接口,并在配置管理中统一名单匹配语义(UMO/群号兼容)。
2026-03-26 19:23:49 +08:00
lingyun14
664918e28f
feat: 新增文本/表情回复模式开关) ( #123 @lingyun14beta)
...
fixes #115
2026-03-24 00:03:29 +08:00
SXP-Simon
fcffe7d35a
fix(quality_summary): 优化增量分析逻辑,优化提示词
2026-03-23 13:38:12 +08:00
NyaaByte
4ffcb3065f
fix: 修改提示词同时添加后端校验,保证总占比不超过 100% ( #119 @J621111)
...
* fix: 修改提示词同时添加后端校验,保证总占比不超过 100%
* fix: 将 ai 返回的占比限制在 [0, 100]
2026-03-23 00:42:18 +08:00
SXP-Simon
9a35ed9600
feat(chat_quality_analysis): chat_quality_analysis 模块
2026-03-23 00:42:18 +08:00
SXP-Simon
cd6a6294e1
feat(增量分析): 更新增量分析配置,增加安全上限并优化消息拉取逻辑
2026-03-20 23:59:24 +08:00
SXP-Simon
4cae39d153
feat(分析功能): 添加人格设定的配置选项,并更新相关提示词构建逻辑
...
feat(persona): 自动检测当前群聊激活的对话所绑定的性格
2026-03-16 23:46:03 +08:00
SXP-Simon
4813c8e3df
feat(金句分析): 明确告知 LLM 在 reason(选择理由/锐评)中提到群成员时,应使用 [用户ID] 格式
2026-03-13 17:34:58 +08:00
SXP-Simon
1ae3e877f2
fix: 重构金句分析匹配机制 ( #104 )
...
- [修复] 尝试解决金句头像无法显示的问题。通过将 Prompt 输入改为 [user_id] 标识符,实现 100% 准确的身份回填,彻底消除了由于 LLM 微调内容导致的匹配失败。
- [警告] 强制初始化金句提示词,丢弃原本用户可能自定义的金句提示词模板。重命名配置项为 golden_quote_v2_prompt,避免用户更新后旧版本提示词干扰导致 LLM 金句分析功能失效。
2026-03-13 17:09:42 +08:00
SXP-Simon
1e3d3b922c
feat: 新增群相册上传严格模式
...
- 在 _conf_schema.json 中增加 group_album_strict_mode 开关
- 修改 ReportDispatcher,在严格模式下禁止回退到默认相册
- 优化 OneBotAdapter 的日志输出,使其符合决策逻辑
2026-03-12 15:16:43 +08:00
SXP-Simon
87d5cccdd4
[v4.8.0] - perf(concurrency): 实现群聊分析任务锁及全局资源并发限流控制,增强重试管理器
2026-03-03 21:24:43 +08:00
SXP-Simon
7850697f1a
refactor(perf): 建立三级资源防线并优化并发限流配置
...
- 【异常处理优化】引入自定义任务重复异常,精准区分“因重复运行而跳过”与“实际分析取消”两种不同语义,提升调度健壮性。
- 【三级并发控制架构】针对不同层级的资源消耗,建立了完整的限流保护体系:
- 入口层:控制同时处于活跃状态的任务总数,防止瞬时加载大量消息导致服务器内存溢出 (OOM);
- 接口层:全局限制 LLM API 并发请求数,确保严格遵守服务商的频率限制 (RPM);
- 渲染层:全局限制浏览器图片生成进程,保护物理 CPU 与内存不被高能耗渲染任务耗尽。
- 【配置体验升级】新增「并发限流设置」配置组,统一收纳核心性能参数,并提供面向普通用户的防坑说明与更稳健的默认值。
- 【代码清理】移除陈旧的兼容逻辑与冗余参数,统一配置命名规范。
- 【功能精化】重排增量分析逻辑,确保在任务入口与分段处理流程中均有可靠的信号量保护。
- 【细节完善】优化群文件及群相册上传设置的文案描述,明确功能支持范围与权限要求。
2026-03-03 21:07:51 +08:00
SXP-Simon
ee0bf037b8
feat: 实现群聊分析任务锁及全局资源并发限流控制
...
1. 任务锁定机制 (Group Task Locking):
- 在应用服务层实现基于群组和任务类型的异步锁,使用 asynccontextmanager 生成器函数确保同一群聊在同一时间只能执行一个分析任务。
- 使用弱引用字典 (WeakValueDictionary) 管理锁实例,防止长期的内存占用。
- 在指令入口增加对 CancelledError 的捕获,当任务冲突时向用户反馈“任务正在执行中”的友好提示。
2. 全局并发限流重构 (Resource-level Throttling):
- 资源层限流下沉:将并发控制中心从调度层迁移至具体的资源处理层(T2I/LLM)。
- T2I 渲染保护:在报告生成器中引入全局信号量,严格控制 T2I 引擎的瞬时负载。
- LLM API 保护:在应用服务层引入全局信号量,平滑所有分析请求对 LLM 提供商接口的请求频率。
- 调度逻辑简化:移除调度器内部冗余的信号量,使其仅专注于分发逻辑与 Stagger(交错启动)平滑。
3. 调度与反馈优化:
- 自动分析调度器增加对“跳过”任务的独立统计,并在执行报告中清晰展示“成功、跳过、失败”的具体数量。
- 优化了管理测试指令和增量分析指令的异常处理逻辑。
4. 消息重复发送防护:
- 在重试组件中增加基于消息历史记录的探活逻辑。在重试发送前先核实记录,确认是否已因网络抖动导致“假失败”但已实达,有效拦截重复消息。
2026-03-03 21:07:51 +08:00
RichardLiu
ba30818212
feat(onebot): 新增可选 Base64 图片传输开关 ( #89 )
...
* feat(onebot): add optional base64 image transport toggle
* fix(onebot): logger 信息增强
* fix(base64): 默认开启
2026-02-22 15:08:37 +08:00
SXP-Simon
626a890a58
[v4.7.9] feat(Onebot): 重构 OneBot 消息拉取逻辑,采用分页回溯策略;新增分析报告同步上传至群文件和群相册的功能
2026-02-21 19:40:54 +08:00
SXP-Simon
de3c189d4f
feat: 增强图片上传能力并完成核心架构类型重构
...
- 重构: 优化主类命名逻辑,提升多平台架构的可读性与通用性。
- 功能: 新增分析报告同步上传至群文件和群相册的功能,支持自动化文件管理与清理。
- 类型: 全面修正静态类型错误,确保各分析器模块与基类接口签名严格对齐。
- 优化: 改进内部类成员标注,解决可选参数与类型推断在透传过程中的不匹配问题。
- 稳健性: 完善网络请求超时处理、临时资源管理以及可选依赖项的动态加载逻辑。
- 配置: 扩展配置管理项,支持自定义上传开关、目标目录以及 PDF 渲染参数。
2026-02-21 19:30:51 +08:00
SXP-Simon
36a4819282
chore: 更新 demo 图资源
2026-02-12 21:00:08 +08:00
SXP-Simon
8c58a7b3d3
feat(template): retro_futurism 调整和 hack 模板
2026-02-12 19:55:24 +08:00
SXP-Simon
c2df2f906c
feat(template): 将模板选择改为 options,方便配置
2026-02-12 15:52:30 +08:00
SXP-Simon
2cd97a73b7
fix(debug): 增加每次增量分析完成后发送的配置,用于调试
2026-02-10 23:16:07 +08:00
SXP-Simon
5a81ffea20
refactor(话题分析): 采用 ID-Only Prompt 策略优化头像展示
...
- TopicAnalyzer: 仅向 LLM 发送 [ID] 而非昵称,减少 Token 并消除歧义
- _conf_schema.json: 更新默认 Prompt,强制要求 LLM 输出 ID 引用
- Logic: 后端负责将 ID 映射回昵称,实现精确的头像关联
2026-02-10 21:25:25 +08:00
SXP-Simon
472c78e622
feat(话题分析): 用户头像引用展示
...
- TopicAnalyzer: Prompt中包含 [user_id],引导LLM使用ID引用用户
- ReportGenerator: 解析话题详情中的 [uid] 并替换为内联头像HTML
- Templates: 更新所有主题的 topic_item.html 以支持富文本详情展示
- _conf_schema.json: 更新默认 Prompt,指导 LLM 使用 [用户ID] 引用用户
- ReportGenerator: 实现胶囊样式渲染 (头像+昵称),提升视觉体验
2026-02-10 20:57:51 +08:00
SXP-Simon
c793858f59
fix(typo)
2026-02-10 20:16:04 +08:00
SXP-Simon
1e7ecd57c3
fix(conf): 修复增量分析描述
2026-02-10 19:54:36 +08:00
SXP-Simon
9aa502f01a
refactor(配置): 重构 _conf_schema.json 为 7 组嵌套结构,更新 ConfigManager 适配嵌套配置路径
2026-02-10 16:09:18 +08:00
SXP-Simon
603fa4be07
feat(增量分析): 添加增量分析配置项
...
- ConfigManager 新增 11 个增量分析相关的 getter 方法
- _conf_schema.json 新增增量分析配置项定义,包含详细中文描述和提示
- 配置项包括:启用开关、分析间隔、每日上限、消息阈值、话题/金句数量、活跃时段、交错间隔
- 增量模式默认关闭,保持向后兼容
2026-02-10 14:49:25 +08:00
SXP-Simon
0b096351d5
fix(docs): 完善注释
2026-02-09 02:14:43 +08:00
SXP-Simon
aca6937efc
fix: 多平台,避免注释误解
2026-02-08 21:46:59 +08:00
SXP-Simon
7ea84093da
fix(typo)
2026-02-08 21:27:44 +08:00
SXP-Simon
185c5edcfb
feat(debug): 调试模式,启用后,会在 plugin_data/debug_data 目录下保存每次分析的平台 API 原始历史消息和 Prompt 原文,用于调试和优化提示词
2026-02-08 21:25:20 +08:00
SXP-Simon
c3cc2fd1f4
fix: complete the migration of the group_list configuration to use AstrBot Unified Message Origins (UMOs).
...
Changes Implemented:
Configuration: group_list now supports UMOs (e.g., qq_123456:GroupMessage:123456) while maintaining backward compatibility for simple group IDs.
Logic: ConfigManager and AutoScheduler were updated to handle UMOs for permission checking and group fetching.
Commands: The /分析设置 command now uses the full UMO when enabling/disabling analysis for a group.
2026-02-08 20:19:07 +08:00
SXP-Simon
e24449cac1
fix: 完成多平台逻辑解耦优化
...
配置模式 (_conf_schema.json):
将所有 "QQ号" 描述更名为通用的 "ID" 或 "用户ID"。
更新了 话题分析、用户称号分析、金句分析 的默认 Prompt 模板,将示例 JSON 中的 qq 字段改为 user_id。
保留 bot_qq_ids 配置项名称以维持向后兼容性,但其描述已更新。
数据模型 (data_models.py):
UserTitle 和 GoldenQuote 类中的 qq 字段重命名为 user_id (类型 str)。
为了兼容旧代码,添加了 qq 属性(@property),自动将 user_id 转为 int 返回。
分析逻辑 (analyzers/*.py):
TopicAnalyzer: 通用化了 @ 消息的处理,支持读取 qq、id 或 user_id 字段。
UserTitleAnalyzer & GoldenQuoteAnalyzer: 更新了 Prompt 构建和结果提取逻辑,优先使用 user_id,不再强制依赖 QQ 号格式。
ReportGenerator: 更新了报告生成逻辑,使用 user_id 获取头像。
结果: 插件现在更具通用性,配置和提示词不再默认绑定 QQ 平台术语,能更好地适应 Discord 等其他平台。容器已重启,新配置生效。
2026-02-08 20:09:56 +08:00
SXP-Simon
58c27f9136
feat: integrate with AstrBot lifecycle events and update config schema
2026-02-07 23:49:51 +08:00
SXP-Simon
53be552be1
fix(AutoScheduler): 增强性处理,保持代码健壮性,增加友好提示
2026-02-05 21:51:59 +08:00
SXP-Simon
fe2c9d74c4
feat(auto_analysis_time): 将 auto_analysis_time 配置改为 list,满足支持配置每日多个时间点总结的需求 ( #79 )
2026-02-05 21:35:45 +08:00
SXP-Simon
2438ab5b98
fix(pdf): 迁移为 playwright
2026-01-20 20:26:20 +08:00
SXP-Simon
5bc6c07aa8
fix(conf): PDF 输出目录路径 pdf_output_dir 修正
2026-01-18 13:57:27 +08:00
SXP-Simon
3ca7f71376
fix(typo): 调整文档
2026-01-07 00:28:35 +08:00
SXP-Simon
964f8478ea
[v4.2.7] 模板文档更新
2025-11-26 13:07:49 +08:00
SXP-Simon
150f6c37a9
feat(mutli-templates): 适配多套排版选择
2025-11-25 20:55:33 +08:00
SXP-Simon
7132acdcb9
[v4.1.0] 群黑白名单机制;使用信号量(Semaphore)并发限制和弱引用字典(WeakValueDictionary)优化锁管理
2025-11-23 13:29:12 +08:00
Helian Nuits
e5320969ee
feat(auto_scheduler): 添加自动调度器,使用信号量(Semaphore)并发限制和弱引用字典(WeakValueDictionary)优化锁管理;群黑白名单机制。 ( #50 )
...
* feat(auto_scheduler): 添加自动调度器,使用信号量(Semaphore)并发限制和弱引用字典(WeakValueDictionary)优化锁管理。
* feat(auto_scheduler): 群黑白名单机制
* feat(自动分析最大并发数): 可配置项添加信号量自定义控制
* debug(获取群)
* fix(config)
* fix(pre-commit): cr
2025-11-23 13:26:09 +08:00
SXP-Simon
acca39a162
fix(typo): bot_qq_id 更新配置说明
2025-11-18 00:17:04 +08:00