Files
dify-docs/zh/use-dify/nodes/user-input.mdx
2025-12-30 15:46:22 +08:00

119 lines
4.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "用户输入"
description: "收集用户输入以启动工作流和对话流应用程序"
icon: "input-text"
---
<Note> ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/nodes/user-input)。</Note>
## 简介
用户输入节点允许你定义从最终用户收集哪些内容作为应用程序的输入。
使用此节点启动的应用程序*按需*运行,可以通过直接用户交互或 API 调用启动。
你还可以将这些应用程序发布为独立的 Web 应用程序或 MCP 服务器,通过后端服务 API 公开它们,或在其他 Dify 应用程序中作为工具使用。
<Info>
每个应用程序画布只能包含一个用户输入节点。
</Info>
## 输入变量
### 预设
预设输入变量由系统定义,默认可用。
- `userinput.files`:最终用户运行应用程序时上传的文件。
<Note>
对于工作流应用程序,此预设变量已被视为*遗留*变量,仅为向后兼容而保留。
我们建议使用[自定义文件输入字段](#file-input)来收集用户文件。
</Note>
- `userinput.query`(仅限对话流):从用户最新对话轮次自动捕获的文本消息。
### 自定义
你可以在用户输入节点中配置自定义输入字段,以收集不同类型的用户输入。每个字段都会成为下游节点可以引用的变量。
<Info>
**标签名称**会显示给你的最终用户。
</Info>
<Tip>
在对话流应用程序中,你可以**隐藏**任何用户输入字段,使其对最终用户不可见,同时保持在对话流中可引用。
请注意,**必填**字段无法隐藏。
</Tip>
#### 文本输入
<Tabs>
<Tab title="短文本">
接受最多 256 个字符。用于姓名、电子邮件地址、标题或任何单行的简短文本输入。
</Tab>
<Tab title="段落">
允许无长度限制的长文本。它为用户提供多行文本区域,用于详细响应或描述。
</Tab>
</Tabs>
#### 结构化输入
<Tabs>
<Tab title="选择">
显示带有预定义选项的下拉菜单。用户只能从列出的选项中选择,确保数据一致性并防止无效输入。
</Tab>
<Tab title="数字">
仅限数值输入——适用于数量、评分、ID 或任何需要数学处理的数据。
</Tab>
<Tab title="复选框">
提供简单的是/否选项。当用户选中该框时,输出为 `true`;否则为 `false`。用于确认或任何需要二元选择的情况。
</Tab>
</Tabs>
#### 文件输入
<Tabs>
<Tab title="单个文件">
允许用户上传任何支持类型的一个文件,可以从设备上传或通过文件 URL。上传的文件作为包含文件元数据名称、大小、类型等的变量可用。
</Tab>
<Tab title="文件列表">
支持一次上传多个文件。它适用于批量处理文档、图像或其他文件。
<Tip>
使用列表操作符节点来过滤、排序或提取上传文件列表中的特定文件以进行进一步处理。
</Tip>
</Tab>
</Tabs>
**文件处理**
由于用户输入节点仅收集文件——它不读取或解析其内容——上传的文件必须由后续节点适当处理。例如:
- 文档文件可以路由到文档提取器节点以进行文本提取,以便 LLM 能够理解其内容。
- 图像可以发送到具有视觉能力的 LLM 节点或专门的图像处理工具节点。
- CSV 或 JSON 等结构化数据文件可以使用代码节点进行解析和转换。
<Tip>
当用户上传混合类型的多个文件(例如,图像和文档)时,你可以使用列表操作符节点按文件类型分离它们,然后将它们路由到不同的处理分支。
</Tip>
## 下一步
设置用户输入节点后,你可以将其连接到其他节点以处理收集的数据。常见模式包括:
- 将输入发送到 LLM 节点进行处理。
- 使用知识检索节点查找与输入相关的信息。
- 使用 If/Else 节点根据输入创建条件分支。