← 返回文章列表

Dify 应用上架门户:分享页每次回答都挂着内部流程节点?一个字段关掉

1. 业务场景

把 Dify 应用做成对外 demo,是交付环节的常规动作:做一个 AI 应用,打开「分享」开关,拿到一个链接,发给客户体验,或者嵌进自己的官网门户。

我们上架了三个应用做门户 demo:一个企业 AI 助理、一个故障诊断助手、一个验收工具。每个都打开了分享链接,放在官网首页的产品卡片里,客户点进去就能试。

2. 场景痛点

客户 demo 的时候,有人提了一个问题:「为什么每次回答,下面都挂着一段『工作流过程』?」

我们一看——分享页里,每次回答的下方都显示:

Workflow Process

开始

意图分类

检索产品服务知识库

知识问答生成

回复知识问答

对开发者来说,这是「工作流过程展示」,挺酷的功能。但对客户来说,这段东西的问题很大:

更要命的是:这不是个别应用的问题——三个应用全部中招。我们当时一度以为是哪个应用配置错了,逐个排查才发现,这是一个平台默认值的坑。

3. 方案:一个字段的事

查 Dify 源码后定位:分享页展示工作流过程,由一个字段控制——show_workflow_steps(是否展示工作流详情)。而这个字段在数据库里的默认值是 true。

也就是说:只要是通过 API 导入创建的应用,site(分享页)配置里没有显式写这个字段,分享页就会默认展示内部工作流过程。UI 上创建的应用可能会走 UI 默认(关闭),但 API 导入的不会自动带这个字段——默认开启,裸奔展示。

修复方法很简单:把分享页配置里的 show_workflow_steps 显式设为 false。

4. 整体架构:分享页配置链路

graph TD A["应用(API 导入)"] --> B["site 分享页配置"] B --> C{"show_workflow_steps"} C -- "默认 true(DB 默认值)" --> D["分享页展示\n工作流过程"] C -- "显式设 false" --> E["分享页只显示\n对话内容"] D --> F["客户看到内部节点名"] E --> G["客户看到干净产品界面"]

关键点:字段没写 = 用数据库默认值 = true。不是「没配置就关闭」,而是「没配置就开启」——这正是它坑的地方。

5. 关键配置

5.1 关闭分享页工作流过程展示

调用 Dify Console API 更新应用的 site 配置:

# 读取当前 site 配置(GET /apps/{app_id} 的 site 字段)

# show_workflow_steps 当前值:true

# 更新 site 配置:关闭工作流过程展示

POST /console/api/apps/{app_id}/site

Content-Type: application/json

{

  "show_workflow_steps": false

}

注意:site 配置更新端点接受 POST 方法(GET/PUT 会返回 405),请求体只需要带要改的字段。

5.2 修改后必须回读验证

改完一定要回读确认,不能只看请求返回 200:

GET /console/api/apps/{app_id}

# 响应 site.show_workflow_steps 应变为 false

我们三个应用逐个改、逐个回读,全部从 true 变为 false。

5.3 顺带:嵌入网页的两个路径

Dify 分享页提供「嵌入到网站中」功能,有三种形态:简单聊天窗、浮动气泡、全屏样式。生成的 iframe 代码里有一个容易混淆的点:

路径 用途
/chat/<token> 独立分享页(单独打开)
/chatbot/<token> 嵌入网页专用(iframe 直嵌)

嵌进官网门户时用 /chatbot/<token> 的 iframe,不要用独立页路径。

6. 运行验证

修复后,三个应用(企业 AI 助理 / 故障诊断助手 / 静态验收中心)的分享页全部不再展示工作流过程:

注意:分享页有浏览器缓存,修改后验证记得用无痕窗口或关闭旧标签重开,否则可能看到旧页面误以为没生效。

7. 实战坑表

坑 现象 修复
API 导入的应用分享页展示工作流过程 每次回答下方挂着「开始→意图分类→检索→生成」内部节点名 show_workflow_steps 字段 DB 默认值是 true,显式设 false
以为「没配置就是关闭」 查配置发现字段根本不存在,但功能是开启的 没配置 = 用默认值 = 开启;必须显式写 false
只改一个应用 修好一个,另外两个还裸奔 上架的所有应用逐个核对 site 配置,批量修改 + 回读验证
改完刷新还是旧的 浏览器缓存了旧页面 无痕窗口 / 关闭标签重开验证

8. 总结与适用边界

核心结论:API 导入的 Dify 应用,上架分享页前必须显式设置 show_workflow_steps: false——这个字段的默认值是 true,不写就是展示内部工作流过程。 对外 demo 的每一处细节都代表产品完成度,内部节点名出现在客户面前,和代码注释没删干净是一个性质的问题。

适用场景:

不适用/需注意:

本文基于真实项目交付经验撰写(Dify 1.16.x 环境)。文中数据均来自我们自己的实测记录(三个应用的 site 配置核对、修改与回读验证),不构成任何平台的官方结论。

这些 AI 应用能力,如何交付到真实业务场景?看看方案与服务 →
本系列 · Dify 实战
  1. Dify Agent 应用实战:Beta 版「真 Agent」的能力边界实测
  2. Dify workflow 与 Hermes Agent skill 的确定性对比
  3. Dify 意图分类节点总翻车?从 33% 失败率到兜底不崩——可靠性与韧性的三层加固
  4. Dify 标注回复实战:让智能客服记住人工答案的纠错闭环
  5. Dify 知识库元数据过滤实战:检索噪声 75% 降到 0 的确定性闸门
  6. RAG 建库,如何自动设置分段模式
  7. RAG 知识库,一次清洗与分段配合失误的案例:分段切断了代码块
  8. RAG知识库,如何进行持续更新运维
  9. RAG知识库的元数据过滤能力边界
  10. 数据库里的结构化数据,怎么建立 RAG 知识库?两条路线与选型判断
  11. 流程卡在「等人审批」?把审批链接送到企业微信和邮箱
  12. Dify 1.17 升级实测(一):从工作流平台到 Agent 平台,升级前必须知道的 5 件事
  13. Dify 应用上架门户:分享页每次回答都挂着内部流程节点?一个字段关掉
  14. RAG 知识库交付实战(上):4277 页手册喂给 AI——从凌晨故障到三模块方案
  15. RAG 知识库建库前,数据到底该怎么清洗?一条可复用的清洗管线实测
  16. 我们的门户机器人,为什么用 Dify 答、不把 skill 搬上云端 Hermes?
  17. 知识库从需求到交付:清洗、入库、维护全流程,照着走、每一步都能验证
  18. Dify 1.17 升级实测(二):Agent V2 节点与技能包实测——配置在数据库,不在 DSL
  19. RAG 知识库交付实战(中):三大深坑与修复实录——流程图截断/限流风暴/并联污染
  20. DeepSeek 思考模式什么情况下可以关?一次空输出事故的排查实录
  21. Dify 1.17 升级实测(三):循环内人工审批与图片直传实测——两个高频场景的新解法
  22. Dify 定时触发(trigger-schedule)实测:工作流到点自动跑,和三个必须知道的坑
  23. Dify 知识库三种分段模式实测:通用、父子、Q&A 到底怎么选?
  24. Dify 知识库接入 Notion/网页:先搞清三件事,再谈清洗
  25. RAG 知识库交付实战(下):18 条用例与成本测算
  26. 知识库数据清洗后,怎么知道洗得干不干净?一套三层质量门禁实测
  27. Dify 实战:供应商报价单格式五花八门,AI 怎么知道哪列是单价?

联系我

邮箱contact@fishsun.cn

点击邮箱直接写信 · 扫码加微信沟通

微信

微信二维码

扫码加微信 · 备注「门户」更快通过