新增斗鱼主播背景画像Redis缓存与Dify分支\n\n- 为斗鱼插件补充房间背景画像的Redis读写能力与TTL配置\n- 新增基于LLM生成主播背景画像JSON并回写Redis的链路\n- 将自动画像合并进room_context并在日报生成前预热缓存\n- 扩展Dify工作流,新增room_background_profile主分支与回退分支\n- 更新斗鱼配置示例与工作流文档,说明背景画像缓存用法

This commit is contained in:
liuwei
2026-04-27 13:04:13 +08:00
parent 889ce5acdd
commit 033fc1202d
4 changed files with 915 additions and 17 deletions
+26 -10
View File
@@ -4,6 +4,7 @@
-`plugins/douyu` 继续通过一个 Dify Workflow 接收斗鱼日报任务。
- 但在 Workflow 内部按 `task_type` 做真正的 LLM 分支,而不是让一个通用 LLM 节点同时处理三种风格。
- 降低运营日报、弹幕总结、粉丝乐子日报之间的风格串台和幻觉风险。
- 允许额外复用同一个 Workflow,为主播/房间生成可缓存到 Redis 的背景画像 JSON。
## 2. 当前推荐结构
当前推荐的是:
@@ -28,6 +29,7 @@
- `daily_report`:运营版完整日报正文
- `danmu_summary`:运营版图片上半部分弹幕总结
- `fans_daily_report`:粉丝向欢乐恶搞日报
- `room_background_profile`:主播/房间背景画像 JSON
- `query`
- `system_prompt`
- `user_prompt`
@@ -47,12 +49,13 @@
最新推荐图结构如下:
1. `Start`
2. `if-else` 节点:按 `task_type`条业务线
2. `if-else` 节点:按 `task_type`条业务线
3. `运营日报 LLM`
4. `弹幕总结 LLM`
5. `粉丝日报 LLM`
6. 每条业务线各自一个 `fail-branch` 回退 LLM
7. 每条成功路径和回退路径各自输出到 `End.text`
6. `背景画像 LLM`
7. 每条业务线各自一个 `fail-branch` 回退 LLM
8. 每条成功路径和回退路径各自输出到 `End.text`
仓库导出文件见:
- [plugins/douyu/斗鱼日报AI.yml](d:/learn/abot/plugins/douyu/%E6%96%97%E9%B1%BC%E6%97%A5%E6%8A%A5AI.yml)
@@ -71,11 +74,12 @@
- `fans_daily_report` 只看到粉丝乐子日报规则
## 6. if-else 分支规则
建议 `if-else` 节点至少包含个 case
建议 `if-else` 节点至少包含个 case
1. `danmu_summary_case`
2. `fans_daily_report_case`
3. `daily_report_case`
1. `room_background_profile_case`
2. `danmu_summary_case`
3. `fans_daily_report_case`
4. `daily_report_case`
推荐默认 `false` 分支回到 `daily_report`,因为项目侧默认值就是 `daily_report`
@@ -95,6 +99,12 @@
- 重点写欢乐、现场感、接梗、名场面
- 不写策略、建议、转化、数据表现
### 7.4 背景画像分支
- 只输出结构化 JSON
- 优先整理主播领域、职业生涯、相关人物、剧情关键词和梗解释
- 如果 Workflow 已接搜索/知识库,优先检索公开资料后再整理
- 如果证据不足,宁可留空并把 `confidence` 设低
## 8. 回退 LLM 的设计建议
不要把三条主分支都挂到同一个通用回退模型。
@@ -102,6 +112,7 @@
- 运营日报主分支失败 -> 运营日报回退 LLM
- 弹幕总结主分支失败 -> 弹幕总结回退 LLM
- 粉丝日报主分支失败 -> 粉丝日报回退 LLM
- 背景画像主分支失败 -> 背景画像回退 LLM
这样回退时也不会风格跑偏。
@@ -109,10 +120,11 @@
本仓库里的最新版导出已经做了这些事:
1. 新增 `if-else` 节点按 `task_type` 做真实分支
2.类任务拆分主 LLM
3.类任务拆分回退 LLM
2.类任务拆分主 LLM
3.类任务拆分回退 LLM
4. 各分支提示词单独收敛,不再共享一段总 prompt
5. 输出仍统一为 `text`
5. 背景画像分支固定输出 JSON,可直接被插件清洗后写入 Redis
6. 输出仍统一为 `text`
## 10. 项目配置层是否需要改
一般不用改 scene 这一层。
@@ -138,11 +150,15 @@
3. 手动触发 `danmu_summary`
目标:确认摘要依旧短、像现场,不会拉成长文
4. 手动触发 `room_background_profile`
目标:确认返回严格 JSON,并且在无检索证据时会保守留空
## 12. 一句结论
你现在这个判断是对的。
对斗鱼日报这种“同一份材料,多种输出风格”的任务来说:
- 插件侧用一个 scene 保持简单
- Dify 侧用 `if-else + 多 LLM 分支` 保持稳定
- Redis 侧再缓存一份自动背景画像,能进一步减少重复请求和圈内梗理解偏差
这是比“一个 LLM 通吃三类任务”更稳、更高效的方案。