```mdx
---
title: "开始"
description: "工作流和对话流应用程序的入口点"
icon: "play"
---

Start节点是每个工作流和对话流应用程序的入口点。它定义了您的应用程序从终端用户接受的输入，并提供您可以在整个工作流中引用的系统变量。

## 输入变量

您可以在Start节点中配置自定义输入字段以收集用户信息。每个输入字段都会成为流经您的工作流的变量。例如，如果您创建一个名为 `user_name` 的输入字段，您可以在工作流中的任何地方引用它，如 `{{user_name}}`。

### 输入类型

Start节点支持六种输入类型以处理不同类型的用户数据：

<Tabs>
  <Tab title="文本输入">
    **Text** 接受最多256个字符的简短响应。适用于姓名、电子邮件地址、标题或任何适合单行的简短文本输入。

    **Paragraph** 接受不限字符数的长文本。这为用户提供了一个多行文本区域，用于详细响应、描述或任何需要更多空间的内容。
  </Tab>
  
  <Tab title="结构化输入">
    **Select** 向用户呈现一个预定义选项的下拉菜单。用户只能从您指定的选项中选择，确保数据一致性并防止出现意外输入。
    
    **Number** 仅限输入数值。这对于数量、评分、ID或您需要在工作流中进行数学处理的任何数据都是必需的。
  </Tab>
  
  <Tab title="文件输入">
    **Single File** 允许用户上传一个任何支持类型的文件。用户可以从他们的设备上传或提供文件的URL。该文件在您的工作流中作为文件变量可用。
    
    **File List** 的工作方式与单个文件相似，但支持一次性上传多个文件。这在一起处理批量文档、图像或其他文件时非常有用。
  </Tab>
</Tabs>

<Info>
  当用户上传文件时，Dify的文档提取器可以自动处理PDF、Word文档和大多数文本格式。对于图像、音频或视频文件，您需要在工作流中连接适当的处理节点。
</Info>

## 系统变量

除了您的自定义输入外，Start节点提供的系统变量可以让您访问工作流元数据和上下文。这些变量是自动可用的，不能被修改。

<Frame caption="工作流和对话流应用程序中可用的系统变量">
  <img src="/images/2bc13695bb7c41fe54b7362d4b7237a480524aa7c05b42c80649fd1e1209f091.png" alt="系统变量比较" />
</Frame>

可用的系统变量取决于您的应用程序类型。工作流应用程序提供基本的元数据，如 `sys.app_id` 和 `sys.workflow_id`，而对话流应用程序则包括附加的与对话相关的变量，如 `sys.conversation_id` 和 `sys.dialogue_count`。

系统变量特别有助于跟踪执行上下文、实现特定于用户的逻辑或在对话流应用程序中维护对话状态。

## 变量引用

从Start节点的变量可以在任何下游节点中引用。在配置节点的输入字段时，您可以从下拉菜单中选择变量或在文本字段中键入 `/` 以插入变量值。

<Frame caption="使用斜杠命令将变量插入文本输入中">
  <img src="/images/image.png" alt="变量插入界面" />
</Frame>

变量在整个工作流中保持其类型。一种数字输入仍然是一个数字，文件上传仍然是一个文件对象，而文本输入仍然是字符串。这种类型一致性确保下游节点可以正确处理数据。

## 文件处理

通过Start节点上传的文件需要在您的工作流中进行适当处理。Start节点本身仅收集文件并使其作为变量可用。您需要连接特定的节点以提取和处理内容：

文档文件应路由到文档提取器节点以提取文本内容。图像可以发送到具有视觉能力的LLM节点或专门的图像处理工具。像CSV或JSON这样的结构化数据文件可以使用代码节点进行解析和转换。

<Note>
  文件变量包含有关上传文件的元数据，包括其名称、大小和类型。实际的文件内容需要由下游节点提取或处理。
</Note>

## 隐藏变量

您可以将任何输入变量标记为“隐藏”以将其从用户界面中排除，同时仍然使其在您的工作流中可用。

## 配置最佳实践

在设计您的Start节点输入时，请考虑在开始时哪些信息是必要的，以及哪些信息可以在工作流的后续步骤中推导或收集。过多的初始输入要求会给用户带来阻力，而过少则可能限制您的工作流能力。

选择描述性变量名称，以清楚地指示它们包含的数据。变量名称应一致地使用下划线或驼峰命名法，并避免可能导致解析问题的特殊字符。请记住，变量名称是区分大小写的，因此 `userName` 和 `username` 是不同的变量。

对于文件上传，请考虑设置适当的文件类型限制和大小限制。这可以防止下游处理错误，并确保您的工作流接收到预期的输入格式。

## 接下来是什么

在配置您的Start节点后，您通常会将其连接到处理收集输入的节点。常见的模式包括将用户输入发送到LLM节点进行处理，使用知识检索根据输入查找相关信息，或使用基于输入值的条件逻辑路由到不同的工作流分支。
```