Repository navigation
Undefined v3.16.0
v3.16.0 Bilibili 图文(opus)提取
本版本为 B 站内容自动提取补齐图文(opus / 动态)类型,命中图文链接后发送一次合并转发:第一条是图文元数据、第二条起是正文,文字与图片按原顺序混排,正文超长自动分段;正文里的图文与视频卡片各自成为嵌套转发节点;新增的 bilibili_opus 工具还支持按字数区间或关键词读取正文。
变更内容
- 新增 Bilibili 图文自动提取管线。命中
bilibili.com/opus/<id>、m.bilibili.com/opus/<id>、t.bilibili.com/<id>、b23.tv短链,以及 QQ 小程序与 news 分享卡片中的跳转链接后自动发送合并转发;与视频管线互不干扰,同一条消息同时含 BV 号与图文链接时两条管线各自发送。 - 转发结构与视频一致:第一条节点是图文信息(封面、标题、UP主、时间、阅读 / 点赞 / 评论 / 转发、原文链接),第二条起是正文。正文按单节点 4000 字切分(节点名形如
正文 1/3),不截断、不丢内容,图片作为消息段保留在原文位置并可与文本共处同一节点;正文为空时以占位文案说明。 - 正文里的卡片各自展开为独立节点:图文卡片再拉取一次递归展开,视频卡片真实下载视频文件并复用清晰度、时长、体积与超限策略限制且附带弹幕,链接、商品、直播、投票等其它卡片渲染为单个链接卡片节点。展开受
opus_nested_depth(默认 5 层)与opus_nested_max_cards(默认 8 张)约束,超出边界降级为一行「标题 — 链接」;嵌套失败只降级该节点,不影响整条转发。 - 图文详情兼容两个接口与两种响应结构:优先
x/polymer/web-dynamic/v1/opus/detail,风控(-352)、旧版专栏或动态不可见时回退x/polymer/web-dynamic/v1/detail(带 WBI 签名)。modules为列表或字典(含major.opus.summary摘要)都能解析,段落覆盖文本、图片、分割线、块引用、列表、代码与链接卡片,富文本节点覆盖 @、表情、公式、话题与 BV / CV / 网页链接;指向自身的图文卡片不再被当作嵌套卡片,避免自引用递归。 - 新增
bilibili_opus工具,output_mode与bilibili_video对齐并额外提供 text 模式:send发送合并转发,uid把正文图片逐张登记为<attachment uid="pic_xxx"/>(默认最多 9 张,单张失败不中断并逐条报告原因),info只返回元信息,text按字数读取正文。该工具已暴露给file_analysis_agent,图文图片可直接做多模态分析。 output_mode=text支持起始字、结束字与关键词:默认返回前 1000 字(limit上限 20000),keyword返回命中区间(最多 5 处)与前后各 60 字上下文并自动合并重叠片段。返回头给出正文总字数与本次范围,未读完时提示下一段用start=N继续;关键词未命中、正文为空、start超出范围都有明确文案,非法参数返回可读错误而不是静默截断。- 新增
[bilibili].opus_enabled(默认开启,仍需auto_extract_enabled)、opus_max_items(单条消息最多处理几篇图文)、opus_nested_depth、opus_nested_max_cards;群聊与私聊白名单复用视频侧的auto_extract_group_ids/auto_extract_private_ids,旧config.toml不做改动也可直接运行。 - 图文转发与视频转发同样写入历史:实时 AI 上下文只看到
forward_...UID,需要内容时按层调用messages.get_forward_msg读取,不会因为一张长图文把上下文撑爆。视频与图文的数字缩写、时长、时间戳与 4000 字切分逻辑共用同一份实现,视频原有的提取行为不变。