本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版。
用户输入节点允许你定义从终端用户收集哪些内容作为应用的输入。
使用此节点启动的应用按需运行,可以通过直接用户交互或 API 调用启动。
你还可以将这些应用发布为独立的 Web 应用或 MCP 服务器,通过后端服务 API 公开它们,或在其他 Dify 应用中作为工具使用。
每个应用画布只能包含一个用户输入节点。
输入变量#
预设#
预设输入变量由系统定义,默认可用。
-
userinput.files:终端用户运行应用时上传的文件。Note对于 Workflow 应用,此预设变量已被视为遗留变量,仅为向后兼容而保留。
我们建议使用自定义文件输入字段来收集用户文件。
-
userinput.query(仅限 Chatflow):从用户最新对话轮次自动捕获的文本消息。
自定义#
你可以在用户输入节点中配置自定义输入字段,以收集不同类型的用户输入。每个字段都会成为下游节点可以引用的变量。
标签名称 会显示给你的终端用户。
若字段的值是你已知的(如产品标识符或租户 ID),且无需由终端用户输入,可将其标记为 隐藏并预填,自行提供值。详见 隐藏并预填输入字段。
文本输入#
接受最多 256 个字符。用于姓名、电子邮件地址、标题或任何单行的简短文本输入。
允许无长度限制的长文本。它为用户提供多行文本区域,用于详细响应或描述。
结构化输入#
显示带有预定义选项的下拉菜单。用户只能从列出的选项中选择,确保数据一致性并防止无效输入。
仅限数值输入,适用于数量、评分、ID 或任何需要数学处理的数据。
提供简单的是/否选项。当用户选中该框时,输出为 true;否则为 false。用于确认或任何需要二元选择的情况。
接受 JSON 对象格式的数据,适用于将复杂的嵌套数据结构传递到你的应用。
你可以选择定义 JSON schema 来验证输入内容,并指导用户了解预期的数据结构和验证要求。定义 schema 后,你还可以在其他节点中引用该对象的各个属性。
文件输入#
允许用户上传任何支持类型的一个文件,可以从设备上传或通过文件 URL。上传的文件作为包含文件元数据(名称、大小、类型等)的变量可用。
支持一次上传多个文件。它适用于批量处理文档、图像或其他文件。
使用列表操作符节点来过滤、排序或提取上传文件列表中的特定文件以进行进一步处理。
文件处理
由于用户输入节点仅收集文件,不读取或解析其内容,上传的文件必须由后续节点适当处理。例如:
-
文档文件可以路由到文档提取器节点以进行文本提取,以便 LLM 能够理解其内容。
-
图像可以发送到具有视觉能力的 LLM 节点或专门的图像处理工具节点。
-
CSV 或 JSON 等结构化数据文件可以使用代码节点进行解析和转换。
当用户上传混合类型的多个文件(例如,图像和文档)时,你可以使用列表操作符节点按文件类型分离它们,然后将它们路由到不同的处理分支。
隐藏并预填输入字段 #
工作流有时需要一些你已知的输入,让终端用户手动填写只会增加摩擦。可将此类字段标记为 隐藏并预填:值由你预先填好,终端用户看不到该字段,而工作流仍能拿到值。
假设你的公司有多个产品的落地页,每个页面都嵌入了 AI 聊天机器人。这些聊天机器人背后的工作流基本相同,只是处理的产品不同。
与其为每个产品维护一个独立的工作流,不如只用一个,并为其添加隐藏的 productName 字段,然后为各个落地页预填不同的值。在终端用户看来,每个页面都有专属的产品聊天机器人,但实际上各个页面只是向同一个工作流传入了不同的 productName。
隐藏字段 并不保密。字段值会出现在 URL 查询字符串中,浏览器地址栏、历史记录和网络流量中都能看到。凭据和 API 密钥需改用 环境变量。
单个文件和文件列表字段不支持此功能。
启用功能
- 在 编辑变量 窗口中,取消勾选 必填(若已勾选)。这两个选项互斥。
- 勾选 隐藏并预填。可同时设置默认值用作兜底。
隐藏字段在 预览 面板中仍会显示,便于你在发布前测试流程。
预填字段值
-
发布应用。
-
根据终端用户访问应用的方式,选择对应的方法。
适用于终端用户通过链接直接打开 Web 应用的场景。
- 在应用的 访问点 标签页中,点击 Web 应用 卡片上的 配置。
- 填入隐藏字段的值并点击 启动。Web 应用打开后,预填值已写入 URL 查询参数。
- 复制地址栏中的 URL 即可分享 Web 应用。
若需生成大量带有不同值的链接,可参照该 URL 模式自行编写更多链接,或让第三方系统自动生成:
Note含空格或特殊字符的值需要 URL 编码(例如
Acme Corp写作Acme%20Corp)。示例:CRM 自动填入客户 ID
客服团队可在 CRM 的工单回复模板中,将
?customerId={{customer.id}}追加到 Web 应用 URL 末尾。客服发送链接时,CRM 会自动替换成实际的客户 ID,聊天机器人无需再询问即可识别客户。
适用于将应用以 iframe 或脚本形式嵌入网站的场景。
适用于所有访客接收相同值的场景(如全站区域、嵌入页面的产品 ID 等)。
-
在应用的 访问点 标签页中,点击 Web 应用 卡片上的 嵌入网站 > 预填隐藏字段。
-
填入隐藏字段的值。这些值会嵌入到 iframe URL 和脚本片段的
inputs对象中。 -
将更新后的代码片段复制到你的网站。
适用于每位访客接收各自值的场景(如登录用户的 ID、当前所在页面等)。
在网站的嵌入脚本中,把每个隐藏字段加到
window.difyChatbotConfig的inputs对象里。值在渲染时根据当前页面上下文动态计算,每位访客都能拿到各自的值。