Dify Chat 支持对 AI 回复的各种内容进行渲染,包括图片、视频、代码、图表,以及 Dify 自身返回的各种特殊格式。
目前流行的深度思考标签主要有两种:
<think>
<details>
以上两种标签在 Dify Chat 中都被很好地支持,展示效果如下:
在 Dify 的 Chatflow/Workflow 类型应用运行时,Dify API 会返回工作流日志,展示形式如下:
在 Dify 的 Agent 类型应用运行时,如果有调用到工具,Dify API 会返回工具的调用日志,展示形式如下:
在 AI 回复过程中,如果引用到了知识库的内容,展示效果如下:
当鼠标 hover 到引用链接上时,会展示具体的片段:
支持渲染通过官方的图表插件生成的,或符合 Echarts 数据格式的代码块为图表:
Mermaid 是一种流行的文本绘图格式,展示效果如下:
如果用户发送或者 AI 回复了文件,在对话中的展示效果如下:
Dify 支持通过 jinja2
来配置回复表单供用户填写,本项目也支持了对应的功能。
Dify Chatflow 编排的回复内容示例:
注意:
- 你需要自行在 Chatflow 中对
sys.query
进行正确的逻辑处理,区分普通消息、触发表单的消息及提交信息。- form 标签的
data-format
属性用于指定表单数据的格式,目前支持json
和text
两种格式。
按照上面的内容回复后,默认情况下,在用户点击表单的提交按钮后,会将表单的值对象作为消息发送给同一个 Dify 应用,同时会在消息列表中展示。提交消息的示例文本:
其中,isFormSubmit
字段用于标识这是一个表单提交的消息, 你可以在 Chatflow 编排的条件分支中使用它来进行判断消息类型。
如果你不想展示具体的表单值 json 字符串,而是需要自定义发送的消息文本,可以按照下面的指引,在应用配置中进行配置(此配置只影响界面展示,实际提交到 Dify Chatflow 开始节点的仍然是用户填写的表单值 json 字符串)。
多应用模式
在添加/更新应用配置弹窗中填写字段:
按照如上配置后,效果如下: