Commit Graph
64 Commits
Author SHA1 Message Date
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
SXP-Simon eb16f78b15 feat(multi-qq-platforms): 尝试适配多个适配器实例,支持填入多个QQ bot账号 (#42) 2025-11-18 00:17:04 +08:00
SXP-Simon 42ef82f00f [v3.7.0] 自定义每部分分析的服务商,兼容 Astrbot 内置生态,提供更加用户友好的配置 (#30) (#40)
* fix(max_query_rounds): 弃用的 max_query_rounds

* feat(provider): 根据配置键获取 Provider,支持多级回退

回退顺序:
1. 尝试从配置获取指定的 provider_id(如 topic_provider_id)
    2. 回退到主 LLM provider_id(llm_provider_id)
    3. 回退到当前会话的 Provider(通过 umo)
    4. 回退到第一个可用的 Provider

* feat: 添加 _special: select_provider 支持并删除 custom_api_key 相关逻辑

* style: 使用 ruff 格式化代码

* refactor: 重构 provider 选择逻辑并修复兼容性问题

* improve: 改进 Provider 选择和 LLM 调用的日志输出

* [v3.7.0] 根据配置键获取 Provider,支持多级回退
2025-11-10 01:00:31 +08:00
SXP-Simon 8793c4d962 [docs] 增加文档说明 2025-11-04 20:20:56 +08:00
SXP-Simon 036a5c3581 [fix] (#34) token 消耗阈值自定义 2025-11-04 18:45:46 +08:00
SXP-Simon bc88955107 [v3.4.1] 避免用户手动卸载插件配置文件的更新,避免受 3.3.0 以及 3.2.0 错误版本的提示词配置影响导致群分析不可用 2025-11-04 17:20:54 +08:00
SXP-Simon 5c7a26847d [v3.4.0] propmt 自定义问题修复,使用丑陋的双花括号完成 conf_schema JSON 块 2025-11-04 14:23:28 +08:00
SXP-Simon ef4143bc35 [fix] conf_schema 中对于 propmt 的写法调整 2025-11-04 14:04:28 +08:00
SXP-Simon f5d251095e [v3.2.0] 自定义提示词模板,推荐根据群聊情况进行自定义修改以满足自己的需求 2025-11-03 14:06:56 +08:00