对话输入参数
Dify 应用支持配置初始参数,在对话开启时,展示在界面上供用户输入。
默认情况下,同一个对话只允许输入一次参数值,在后续对话时,将会禁用输入控件。

5.1 支持在对话开始后更新参数
在应用配置中,你可以选择是否允许用户在对话开始后更新参数值。
在界面上编辑应用配置,将 "对话参数配置" 中的 "更新历史参数" 设为 "启用" 即可。

读取 URL 作为应用参数
在实际应用场景下,我们可能有需要在 URL 中动态传入参数值,填入表单。

为了支持此功能,你的 URL 需要定义成如下形式:
<dify-chat-address>/dify-chat/app/<appId>?<paramName>=<encodedParamValue>&isNewCvst=1
应用示例 - 订单号填入
默认情况下,对话参数的值为空:

我们可以在 URL 中拼接参数:
http://localhost:5200/dify-chat/app/${appId}?orderNo=${encodedValue}&isNewCvst=1
说明:
appId
, 应用 ID
encodedValue
, 经过 Gzip
和 encodeUriComponent
处理后的参数值
isNewCvst
, 指定需要开启新对话(如果不指定且存在历史对话时,默认将会选中最近一个对话)
encodedValue
生成方式(NodeJS):
const zlib = require("zlib");
const originalOrderNo = "123456";
const buffer = Buffer.from(originalString, "utf8");
let encodedValue = "";
zlib.gzip(buffer, (err, compressedBuffer) => {
if (err) {
console.error("压缩时出错:", err);
return;
}
const encodedString = compressedBuffer.toString("base64");
encodedValue = encodeURIComponent(encodedString);
});
将 encodedValue
填入链接后访问,可以看到我们定义的 orderNo: 123456
已经被填入表单:
