Commit Graph
84 Commits
Author SHA1 Message Date
SXP-SimonandCopilot bb04114cdb [v4.10.2] - Telegram 头像处理修复,支持多地区渲染环境与自定义镜像
Co-authored-by: Copilot <copilot@github.com>
2026-04-25 12:35:18 +08:00
SXP-Simon 948bfb1b5b refactor(render): 解决国内可能存在的资源访问问题,新增大陆资源和海外资源可选项,允许用户根据服务器位置选择不同的资源策略,并且允许自定义资源镜像站
- Updated language attributes in HTML templates to dynamically set based on `t2i_font_source`.
- Replaced hardcoded Google Fonts links with dynamic links using `t2i_google_fonts_mirror` and `t2i_gstatic_mirror`.
- Adjusted font-family declarations to conditionally include 'Noto Sans SC' and 'Noto Sans TC' based on the `t2i_font_source`.
- Ensured consistent formatting and style across various templates including image, quote, topic, and user title items.
- Added missing newlines at the end of several files for consistency.
2026-04-25 12:22:36 +08:00
SXP-Simon fc843fac03 feat: 优化 T2I 渲染与自定义配置
1. 支持配置两轮 T2I 渲染策略,允许用户自定义图片格式(PNG/JPEG)、质量、分辨率及超时时间。
2. 实现 T2I 返回 HTML 错误页的自动识别与摘要提取(如 502 Bad Gateway),提升故障排查效率。

- 参考 #174 关于 T2I 动态超时与配置的建议
- 参考 #171 关于处理 T2I 返回 HTML 错误信息的建议
- 解决了 [Feature Request] 支持配置 PNG/JPEG 渲染优先级,避免大报告场景下因本地大图保护而回退为文件发送 #164
2026-04-23 08:43:51 +08:00
SXP-Simon b119ea741e feat(album): 支持 LLBot 群相册接口并优化 OneBot 适配器 2026-04-22 15:15:59 +08:00
SXP-Simon ed85876b36 feat(mbti): 替换 mbti 简单实现 sbti acgti 功能 2026-04-13 21:43:25 +08:00
Shiitin 911b8b2fb2 feat(html): 增加了html_only_url选项,使在选择输出格式为html时可以单独发送BaseURL (#166 @shiitin)
* 更改了AstrBot中面板的的设置项,增加了html_only_url选项

* 增加了html_only_url

* 增加了单独发送URL

在html_only_url设置被打开且配置了Base URL后,将会单独发送URL

* 加入测试日志,尝试解决存在问题

* 加入测试日志,尝试解决存在问题

* 删除了定时触发部分的测试日志

* 修改了手动触发部分的发送HTML的判断

* 修改了main.py的单行长度过长问题

* 修复了dispatcher.py的缩进问题
2026-04-12 22:03:45 +08:00
SXP-Simon 93b2b847ef fix(output_format): 改为 options 形式处理,提升用户体验 2026-04-07 22:27:34 +08:00
SXP-Simon ae38febca2 fix(pdf): 删除 PDF 模块和相关的功能 2026-04-07 22:17:09 +08:00
SXP-Simon a8a22233d4 fix(ChatQualityAnalyzer): 手动 apply_persona_reinforcement 2026-04-04 20:44:36 +08:00
SXP-Simon 92a365475c feat(persona): 人格设定功能增强,支持插件指定和会话继承的人格分析 2026-04-04 19:40:30 +08:00
SXP-Simon 5375659769 fix(conf): 增强服务稳定性 2026-04-04 19:40:30 +08:00
凉雨 a5c3aa2af1 ATRI风格模板 (#154)
* Add files via upload

* Create test

* Add files via upload

* Delete src/infrastructure/reporting/templates/ATRI/test

* Add files via upload
2026-04-03 13:51:10 +08:00
lekoandSXP-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
lekoandSXP-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