Commit Graph

1000 Commits

Author SHA1 Message Date
liuwei
b61d20612e fix(value_rank): 社交边标签改为离线偏移避免遮挡线条
- 边标签由中点改为法线方向偏移显示,不再压在线条上

- 标签左右交错摆放,降低多边场景下重叠概率

- 偏移距离随线宽自适应并设置最小值,保证可读性
2026-04-21 15:49:08 +08:00
liuwei
6f4efcfa72 feat(value_rank): 社交边标签改为昵称并增加恶搞关系文案
- 关系图边标签新增双向@次数明细,并在边中点展示

- 标签从 wxid 改为群昵称显示,提升可读性

- 增加恶搞关系标签规则(如双向奔赴、单向上头、单箭头输出等)
2026-04-21 15:47:52 +08:00
liuwei
1742f19120 不显示路径 2026-04-21 15:32:21 +08:00
liuwei
0b43bb7fe9 feat(value_rank): 社交关系图支持群友头像节点渲染
- 关系图节点优先使用 ContactManager 头像地址渲染,缺失头像自动回退昵称首字

- 新增 SVG clipPath 头像裁剪层与节点边框视觉策略,提升核心人物识别度

- 模板新增 __NODE_DEFS__ 占位符,支持头像裁剪定义注入
2026-04-21 15:06:42 +08:00
liuwei
cfae6cfe30 feat(value_rank): 文本消息统一80秒自动撤回
- 新增文本发送封装,身价插件所有文本回复统一登记自动撤回

- 撤回时长默认80秒,可通过 text_auto_revoke_seconds 配置调整

- 社交关系图图片发送保持不撤回,仅文本消息执行撤回策略
2026-04-21 14:45:50 +08:00
liuwei
7d82557699 docs(value_rank): 补充当前实现状态与操作指南
- 新增功能完整度说明,明确已上线命令、定时任务和数据链路状态

- 增加快速上手步骤:配置检查、模板检查、表结构检查、命令验证顺序

- 增加常见问题排查,覆盖社交关系图、社交榜单、趋势数据不足场景
2026-04-21 14:28:07 +08:00
liuwei
22c5101407 refactor(value_rank): 社交关系图改为外部HTML模板渲染
- 新增 social_graph_template_path 配置项,支持独立维护社交图模板路径

- 新增模板文件 plugins/value_rank/templates/social_graph.html,承载关系图样式与占位符

- 移除内嵌模板拼接,改为读取模板文件并进行变量替换后渲染截图
2026-04-21 14:24:57 +08:00
liuwei
46ee371a76 feat(value_rank): 新增社交关系图命令并接入md2img渲染
- 新增社交关系图命令,支持社交关系图 [人数] 生成群友关系图

- 基于 t_social_edges_daily 聚合边数据,构建核心节点和关系边用于可视化

- 使用 markdown2image 的 html_to_image 能力渲染 HTML/SVG 并输出图片

- 补充图谱参数配置:default_graph_nodes、max_graph_nodes、graph_edge_pool_limit
2026-04-21 14:21:45 +08:00
liuwei
2c90bc2ebe feat(value_rank): 新增社交桥梁榜与个人趋势能力
- 新增社交桥梁榜查询能力,基于社交边聚合输出连接人数、触达次数与互动分

- 新增我的趋势命令,支持按天查看近N天身价分与排名变化

- 周报增加社交桥梁人物摘要,提升群聊可读性与趣味性

- 同步扩展插件命令配置与趋势参数配置(default_trend_days/max_trend_days)
2026-04-21 14:17:00 +08:00
liuwei
d64d11a384 将@关系批处理业务迁移到 value_rank 插件
- 从 MessageStorageDB 移除@抽取与社交图写入逻辑,消息层仅保留归档职责

- 从系统级任务移除 process_pending_mentions,取消 message_to_db 中对应入口

- 在 value_rank 插件新增定时动作 value_rank_mentions_extract(每10分钟)

- 在插件内实现窗口化批处理(默认10~20分钟前)、@提取、幂等写入明细/边表/日汇总及 unique_interactors 回填

- 新增插件侧可配置参数 mention_batch_size / mention_window_start_minutes / mention_window_end_minutes
2026-04-21 14:10:25 +08:00
liuwei
d60d496bc3 扩展 value_rank 周报能力并新增周报命令
- 新增命令 身价周报,并接入配置与帮助文案

- 新增每周定时动作 value_rank_weekly_report_push(周一09:35)自动推送周报

- 周报内容包含:综合排行Top5、上升榜Top5、下行榜Top5(对比7天前)

- 扩展 ValueRankDB:新增按日期读取快照分数字典能力,支持周报对比计算

- 调度执行中支持周报推送并补充重算保障,确保周报数据为当天最新
2026-04-21 14:00:57 +08:00
liuwei
0dc55297bb 增强社交统计并扩展 value_rank 社交榜单命令
- 在消息入库增量链路中回填 unique_interactors,实现去重互动人数实时更新

- 新增社交热度榜命令:社交热度榜 [名次],按互动分/被@/主动@展示

- 新增搭子榜命令:搭子榜 [名次],按无向关系边聚合展示成员组合

- 扩展 ValueRankDB 查询接口,支持社交热度与搭子关系窗口聚合

- 同步更新 value_rank 配置命令列表与帮助文案
2026-04-21 13:45:44 +08:00
liuwei
d4d290fec8 实现 value_rank 首版插件并接入定时重算
- 新增 ValueRank 插件入口、配置与主逻辑(我的身价/身价排行/身价说明/重算身价)

- 新增每日 04:00 调度动作,支持按群批量重算并写入快照

- 实现积分/发言/活跃/社交四维打分与潜水惩罚,采用95分位截断与归一化

- 新增 t_value_rank_snapshot 建表迁移脚本,并同步更新 init.sql

- 代码中补充详细中文注释,说明算法意图、边界处理与稳定性策略
2026-04-21 13:42:57 +08:00
liuwei
2730595a88 完善 value_rank 社交图设计并落地 @ 结构化存储
- messages 表新增 mentioned_user_ids 字段设计,使用 JSON 数组字符串存储被@用户清单

- 新增社交图相关表设计:t_message_mentions、t_social_edges_daily、t_value_rank_social_daily

- 增加迁移脚本 20260421_add_mentions_and_social_graph_tables.sql,支持现网平滑升级

- 改造 MessageStorageDB 入库流程:解析 msg_source.atuserlist 并写入 mentioned_user_ids

- 更新 value_rank README:补充社交图数据链路、可产出图表及实现说明
2026-04-21 13:34:19 +08:00
liuwei
a0c9c23e2c 完善 value_rank 插件设计文档:基于现有插件逻辑给出可落地实现方案
- 将创意描述重构为可执行技术文档,明确 V1/V2 分阶段路线

- 对齐 point_trade、daily_ranking、message_sign、inactive_rank 的现有数据来源与接口

- 新增评分模型(归一化+分位截断+潜水惩罚)及解释理由,提升抗刷屏与公平性

- 补充命令设计、定时任务流程、数据库快照表 SQL、防刷规则与灰度上线计划

- 标注当前不合理点与优化建议(被@指标链路、固定阈值称号、过强惩罚玩法)
2026-04-21 13:20:32 +08:00
liuwei
5efbabb879 优化抖音图文发送:标题与图片合并为单次图片消息
变更项:\n1. 图文类型取消先发文本再发图片的流程。\n2. 新增标题渲染逻辑,将文案绘制到合并图第一页顶部后统一发送图片。\n3. 新增中文字体加载与按像素宽度自动换行能力,避免标题超宽截断。\n4. 渲染失败时回退原图,保证发送链路稳定。
2026-04-20 15:47:31 +08:00
liuwei
ef49588485 refactor: 移除LLM旧兼容入口并统一scene单路由
变更项:

1. LLMRegistry 仅保留 scene 入口,删除 backend_name/backend_ref/scene_ref 等兼容解析分支,未声明 scene 时仅保留直连配置。

2. Dify/GlobalNews/GameTask 插件初始化改为仅传 scene,不再拼接 backend/provider/url 等旧兼容字段。

3. 清理插件配置冗余:dify/global_news/game_task/douyu 的 config.toml 删除 backend 字段,统一由 scene 映射后端。

4. 后台 system API 调整为严格模式:插件依赖扫描仅采集 scene;scene 保存时必须绑定有效 backend。

5. 后台页面去除拓扑中的配置Backend冗余列,并新增前端校验,禁止提交空场景或未绑定后端。
2026-04-20 14:45:03 +08:00
liuwei
7b6bd19781 feat: 引入LLM场景路由与后台拓扑管理能力
变更项:

1. 新增 llm.scenes 场景路由层,支持 scene->backend 统一映射,并补充默认场景配置。

2. 扩展 LLMRegistry,新增 scene 解析逻辑;当声明 scene 时强制按场景路由结果生效,保持旧 backend 配置兼容。

3. 扩展后台 /api/system/llm_config 读写能力,支持 scenes 配置保存;新增插件 LLM 依赖扫描与拓扑数据输出。

4. 升级 system_llm 页面:新增场景路由管理区、插件依赖拓扑表,支持可视化查看 插件->scene->backend->provider。

5. 迁移核心插件配置到 scene 模式(保留兼容字段):dify/global_news/game_task/message_summary/ai_auto_response/member_context/douyu。

6. 调整部分插件初始化默认 llm_config,补充 scene 字段,确保后台场景切换可直接生效。
2026-04-20 14:36:56 +08:00
liuwei
1eef1b5bf2 修复斗鱼日报Dify max_length字段类型错误
变更项:\n1. 将斗鱼日报传给 Dify 的 max_length 入参由 int 改为 string。\n2. 增加中文注释说明原因:对应 Workflow 输入表单字段为 paragraph 类型,必须传字符串,否则触发 invalid_param 400。\n3. 保持其他字段与逻辑不变,最小化改动范围,确保快速恢复日报链路。
2026-04-20 13:39:12 +08:00
liuwei
382f3967bd 修复斗鱼日报Dify 400请求并增强错误诊断
变更项:\n1. 在斗鱼插件新增 daily_report_include_structured_inputs 配置(默认 false),Dify 入参默认改为精简字段(task_type/query/system_prompt/user_prompt/room_id 等),避免复杂对象输入触发 400。\n2. 调整 _build_dify_daily_report_inputs:仅在 include_structured_inputs=true 时才附带 report_payload_json,大幅降低 Workflow 入参类型不匹配风险。\n3. 在初始化流程中读取 report_api.include_structured_inputs,支持按环境开关结构化入参。\n4. 在 UnifiedLLMClient 的 Dify 调用中新增 HTTPError 细粒度处理,last_error 与日志会追加 response_body 片段,便于快速定位 Dify 侧具体报错原因。\n5. 更新 douyu 配置模板注释,明确复杂输入导致 400 的风险与开关用途,方便后续维护。
2026-04-20 13:36:56 +08:00
liuwei
6386cd5940 修复斗鱼日报手动触发未走Dify的问题
变更项:\n1. 将普通命令
2026-04-20 13:31:50 +08:00
liuwei
a89eedff15 群聊总结默认改回markdown渲染以保证样式稳定
变更项:\n1. 将 message_summary 插件代码中的 summary_image_mode 默认值从 template 调整为 markdown,确保配置缺失时也走历史稳定样式。\n2. 更新 plugins/message_summary/config.toml 的默认渲染模式为 markdown,立即生效并避免模板样式未完善导致展示异常。\n3. 保留 template 模式能力与失败回退逻辑,后续模板优化完成后可通过配置无缝切回。
2026-04-20 13:29:54 +08:00
liuwei
f719b10c4a 模板化改造斗鱼日报与群聊总结图片渲染,支持HTML模板独立维护
变更项:\n1. 将 plugins/douyu/report_template.py 从内联HTML重构为模板渲染,新增 plugins/douyu/templates/daily_report.html 承载完整样式与结构,Python侧仅保留数据组装与安全注入。\n2. 修复斗鱼日报模板迁移后的样式缺失问题,补齐 metric-card、insight-card、badge-wall、active-user-grid、chart 等所有关键类样式,确保视觉与旧版一致。\n3. 在 plugins/message_summary/main.py 新增模板化图片渲染链路:优先使用 HtmlTemplateRenderer + html_to_image 生成总结图片,模板异常时自动回退 convert_md_str_to_image,保证稳定性。\n4. 新增 plugins/message_summary/templates/summary_card.html 作为群聊总结卡片模板,后续可仅改模板文件完成UI迭代。\n5. 扩展 plugins/message_summary/config.toml 输出配置,增加 summary_image_mode 与 summary_image_template_path,支持模板模式与回退模式按配置切换。\n6. 保持原有业务流程与发送逻辑不变,仅改造渲染层,降低后续维护成本。
2026-04-20 13:23:54 +08:00
liuwei
f1a6f6d565 新增通用HTML模板渲染器并将机器人菜单改为模板驱动输出 2026-04-20 13:12:44 +08:00
liuwei
cfb8af334b 调整菜单卡片功能标题与功能键字号为12 2026-04-20 13:06:11 +08:00
liuwei
77a0fbe33f 移除菜单图片中设计风格来源外露文案 2026-04-20 13:03:45 +08:00
liuwei
d8a57a768d 下调菜单功能卡片字体尺寸以提升三列紧凑展示密度 2026-04-20 13:03:07 +08:00
liuwei
ee368d697b 菜单生图固定三列卡片并移除响应式折叠逻辑 2026-04-20 12:27:27 +08:00
liuwei
7541bba4cd 菜单功能卡片调整为三列紧凑布局并补充分级响应式断点 2026-04-20 12:24:58 +08:00
liuwei
311655de5a 按PlayStation设计规范重构菜单生图并恢复全量功能卡片展示 2026-04-20 12:22:58 +08:00
liuwei
adee05290d 菜单改为小卡片形态并在功能卡片展示开启关闭状态 2026-04-20 12:00:16 +08:00
liuwei
90266804dc 按技能规范重构菜单UI为纵向紧凑风格并聚焦用户可用指令 2026-04-20 11:56:43 +08:00
liuwei
73c92c0735 优化菜单图片风格为纵向紧凑布局并增强视觉层次 2026-04-20 11:53:23 +08:00
liuwei
08810c98c3 优化菜单生图为紧凑使用手册并移除状态与管理员展示 2026-04-20 11:50:03 +08:00
liuwei
64e7e82712 优化积分流水写入为昵称优先并覆盖打劫/保释场景 2026-04-20 11:44:26 +08:00
liuwei
d4b7cb32f6 feat(群级配置): 新增MySQL+Redis持久缓存并接入进群欢迎差异化配置
新增群级插件配置表与服务层,采用MySQL持久化+Redis长期缓存(TTL=-1);后台新增群级插件配置管理页面与API,支持按群按插件维护JSON配置并在修改后同步回填MySQL和刷新Redis;已将群成员变更监控插件接入该配置,支持欢迎文案与卡片URL等按群差异化。
2026-04-20 10:42:46 +08:00
liuwei
6cf90c02e5 refactor(菜单): 抽离菜单渲染工具为独立模块便于维护\n\n- 新增 plugins/robot_menu/menu_render_tool.py,封装菜单渲染与图片发送能力\n- 将输出模式归一化、Markdown/HTML 生成、自定义样式模板、发送与回退策略统一迁移到工具类\n- main.py 仅保留菜单业务流程与命令处理,改为调用独立工具,降低主文件复杂度\n- 使用相对导入接入新工具模块,减少路径耦合风险\n- 补充详细中文注释,说明拆分目的与关键设计 2026-04-20 10:27:14 +08:00
liuwei
b9edf51ca8 feat(菜单): 使用自定义HTML样式生成菜单图片并增强指令展示\n\n- 新增机器人菜单专用 HTML 模板与 CSS 视觉样式,不再依赖 md2image 默认 Markdown 样式\n- 菜单图片新增基础命令区、管理员命令区、功能明细卡片区,展示更规范\n- 每个功能卡片增加状态徽标、功能键、触发方式与启用/关闭管理命令示例\n- 图片发送逻辑改为优先 html_to_image 渲染,自定义模板失败时仍可回退 Markdown 转图兜底\n- 补充详细中文注释,明确渲染策略、兼容策略与超时保护设计 2026-04-20 10:22:43 +08:00
liuwei
9819b43656 feat(菜单): 支持菜单文本/图片可配置输出并接入md2image\n\n- 新增 RobotMenu.output_mode 配置,支持 text 与 image 两种菜单发送模式\n- 新增图片相关配置:image_fallback_to_text、image_render_timeout_seconds、image_render_retries\n- 菜单与菜单状态命令支持按配置走 md2image 生成图片后发送\n- 新增菜单 Markdown 生成逻辑,图片中展示每个插件的序号、功能键、状态、说明、指令信息\n- 图片发送失败时按配置决定是否回退文本,并补充失败提示与日志\n- 补充详细中文注释并保持原文本发送逻辑兼容 2026-04-20 10:19:16 +08:00
liuwei
674ecce4e0 新增斗鱼Dify工作流配置文件
1. 参考群总结AI.yml导出格式创建斗鱼日报AI工作流。\n2. 补充斗鱼插件调用所需输入字段:task_type、system_prompt、user_prompt、report_payload_json、room_id、anchor_day、nickname、max_length。\n3. 配置workflow输出字段为text,便于直接对接斗鱼插件workflow_output_key=text。\n4. 提示词中增加任务路由规则,兼容daily_report与danmu_summary两种生成模式。
2026-04-20 09:16:56 +08:00
liuwei
a933881ab9 斗鱼日报切换Dify工作流并补齐迁移文档
1. douyu插件新增Dify专用日报调用封装,按provider分流,Dify走run(inputs)并传task_type与结构化payload。\n2. 修正斗鱼日报与弹幕总结生成路径,统一改为新封装,保证Dify workflow可接收完整提示词与元信息。\n3. 新增llm后端dify_workflow_douyu_daily_report模板配置,约定workflow_output_key=text与更高超时。\n4. 斗鱼插件report_api后端切换为dify_workflow_douyu_daily_report。\n5. 新增Dify工作流设计文档,包含输入字段、节点编排、代码节点示例与上线检查步骤。
2026-04-20 09:13:49 +08:00
liuwei
59a044a0e2 新增强制重生成日报指令,支持跳过缓存验证弹幕总结效果
1. 新增指令:#强制斗鱼弹幕日报(支持带日期参数)\n2. 强制指令执行时跳过日报缓存读取,直接重生成文本与图片并覆盖缓存\n3. _send_daily_reports 增加 force_regenerate 参数并向下传递\n4. 保留原 #斗鱼弹幕日报 行为不变,兼容既有使用方式\n5. 补充中文注释,说明强制重生成的用途与行为
2026-04-17 11:19:28 +08:00
liuwei
5098c191de 优化斗鱼弹幕总结:新增粉丝向弹幕萃取区块并调整提示词语气 2026-04-17 11:17:16 +08:00
liuwei
e56c0069cc 优化自动回复触发逻辑:疑问句默认仅@机器人时触发
变更项:

1. 在 triggers 中新增 question_requires_at 配置,默认要求@机器人才将疑问句升级为 question_trigger。

2. 在 response_planner 中收紧问答兜底策略,疑问句仅在 directed 场景进入模型。

3. 在 config.toml 增加 priority.question_requires_at=true,避免群聊普通疑问句高频误触发。
2026-04-17 10:38:30 +08:00
liuwei
c39b3ba566 补齐插件默认配置并消除启动缺失告警
变更项:\n1. 新增 epic_free 默认配置文件,补充调度与 Epic 参数默认值。\n2. 新增 daily_ranking 默认配置文件,补充排行参数默认值。\n3. 新增 daily_news 默认配置文件,补充新闻源默认值。\n4. 新增 sehuatang_push 默认配置文件,补充推送默认参数。\n5. 全部配置文件加入中文注释,便于后续后台统一维护与扩展。
2026-04-17 09:42:00 +08:00
liuwei
55c3b951d5 修复群总结转图假死:增加阶段进度日志与超时保护
变更项:1) 移除图片渲染前截断,保持完整内容转图。2) 群总结转图增加总超时,超时后快速降级文本,避免任务长期阻塞。3) markdown_to_image 增加每10秒进度心跳日志,定位卡在 markdown_to_html 或 html_to_image。4) 分阶段超时与阶段开始日志完善,解决无错误无进度的问题。
2026-04-17 09:16:26 +08:00
liuwei
e57e521900 优化Epic免费游戏推送:对齐官网活动并支持变化推送
变更项:1) 数据源切换为Epic官方freeGamesPromotions接口,不再依赖第三方页面抓取。2) 活动识别升级:区分当前可领与即将免费,仅提取0%折扣活动,按活动窗口过滤脏数据。3) 推送策略从周五固定时点改为小时级检查,并支持 only_on_change 变化去重,避免重复刷屏。4) 新增地区/语言参数(locale、country、allow_countries)与是否包含即将免费配置。5) 增强推送内容:发行商、原价到现价、开始/截止时间、直达链接,信息更贴近官网展示。6) 增加Redis摘要缓存与中文注释,保证活动变化判断稳定可追踪。
2026-04-16 17:59:26 +08:00
liuwei
bb73d07809 重构:新增定时插件业务逻辑内聚到各自插件目录
- daily_news 插件内置百度新闻与60s图片获取逻辑,移除对 base.func_news 的业务依赖\n- epic_free 插件内置周五判断与免费游戏抓取逻辑,移除对 base.func_epic 的业务依赖\n- daily_ranking 插件内置排行生成与积分奖励逻辑,不再依赖 MessageStorage 业务封装\n- sehuatang_push 改为引用插件目录内的抓取与PDF生成实现,将核心业务代码迁入插件目录\n- 确保新插件可独立承载自身业务逻辑,平台层仅提供调度与基础设施能力
2026-04-16 16:16:07 +08:00
liuwei
9652c2594e 系统业务任务插件化迁移:下沉7项非刚需任务并接入平滑迁移
- 系统任务保留刚需三项:登录巡检、消息计数入库、媒体补偿处理;移除新闻/Epic/排行/PDF/秀人维护等业务型系统任务定义\n- 新增 daily_news、epic_free、daily_ranking、sehuatang_push 四个插件,将原系统业务任务改为插件可调度动作\n- 扩展 xiuren_image 插件调度动作,新增秀人下载、绅士R15下载、图片缓存更新三项维护任务\n- 新增系统任务到插件任务的幂等迁移逻辑:按旧 job_key 映射到插件 action,同步 trigger_type/trigger_config/enabled,并通过 payload 标记防止反复覆盖\n- 在 Robot 启动流程中接入迁移执行与重载,并清理已迁移的历史系统任务记录,避免后台双份维护\n- 扩展插件调度数据库操作:支持按 plugin_name + action_key 精确查询,便于迁移与对账
2026-04-16 16:05:59 +08:00
liuwei
1166323ab5 插件定时能力扩展:接入天气/群总结/百科问答/成员画像并补齐周月触发器编辑
- 将 weather、message_summary、game_task、member_context 从硬编码 async_job 注册迁移为插件调度能力(get_schedule_actions/run_scheduled_action)\n- 保持原有默认时间与默认启用行为,新增执行统计结果用于后台日志展示\n- 为群总结与天气推送增加目标群范围适配,支持按后台配置选择 all/白名单/单群执行\n- 成员交互摘要支持日/周/月三类动作接入调度中心,兼容指定群与全量群刷新\n- 后台插件调度页面新增 every_week_time 与 every_month_last_day_time 的编辑支持
2026-04-16 15:49:02 +08:00