Input Block
定义文档的输入参数,让用户或外部调用者在运行时提供数据。
功能说明
Input Block 是文档结构节点,用于声明文档运行时需要接收的输入参数。每个 Input Block 定义一个参数,包含类型、描述、是否必填等配置。在编辑器中运行文档时,用户需要在输入区域填写这些参数;当被 Flow Block 调用时,调用方通过 inputJSON 传入参数值。
当你需要让文档接受外部输入、构建可复用的参数化工作流、或定义 API 接口时,使用 Input Block。
使用场景
- 参数化工作流:定义文本、数字等输入参数,让同一工作流可以处理不同的输入数据
- 文件上传处理:定义图片、音频、PDF、CSV 类型的输入,接收用户上传的文件
- 结构化输入:通过 list 和 object 类型定义复杂的输入结构,收集结构化数据
配置参数
| 属性名 | 类型 | 说明 | 默认值 |
|---|---|---|---|
name | string | 参数名称(同时作为变量引用名) | 自动生成 |
type | string | 输入类型(见下表) | 'text' |
description | string | 参数描述,向用户说明该参数的用途 | '' |
required | boolean | 是否必填 | false |
schema | SchemaDefinition | 类型特有的详细配置 | null |
支持的输入类型
| 类型 | 说明 | 特有配置 |
|---|---|---|
text | 文本输入 | longText: 是否为长文本(多行);default: 默认值 |
number | 数字输入 | default: 默认值 |
boolean | 布尔开关 | default: 默认值 |
image | 图片上传 | acceptedFormats: 接受的格式;maxFileSize: 最大文件大小;maxWidth/maxHeight: 最大尺寸(px) |
audio | 音频上传 | acceptedFormats: 接受的格式;maxFileSize: 最大文件大小 |
pdf | PDF 上传 | acceptedFormats: 接受的格式;maxFileSize: 最大文件大小 |
csv | CSV 上传 | acceptedFormats: 接受的格式;maxFileSize: 最大文件大小 |
list | 列表输入 | items: 列表元素的 Schema 定义 |
object | 对象输入 | properties: 各属性的 Schema 定义 |
select | 下拉选择 | options: 可选项数组;default: 默认值 |
文件类型默认格式
| 类型 | 默认接受格式 |
|---|---|
image | .jpg, .jpeg, .png, .gif, .svg, .webp |
audio | .mp3, .wav, .ogg, .m4a |
pdf | .pdf |
csv | .csv |
输出变量
| 变量名 | 类型 | 说明 |
|---|---|---|
__default__ | dynamic | 用户输入的值,实际类型由 input type 决定 |
引用语法
{{input_0}} -- 第一个 Input 的值
{{input_name}} -- 通过自定义名称引用(如果设置了 name)Input 的输出类型是动态的:text 类型输出 string,number 类型输出 number,image 类型输出文件 URL,以此类推。
使用示例
示例 1:文本参数输入
定义一个问题输入,传给 AI 生成回答:
[Input Block: question] — type: text, required: true, 描述: "请输入你的问题"
|
[Generation Block] — "请回答以下问题: {{question}}"示例 2:多参数输入
定义多个不同类型的输入参数:
[Input Block: topic] — type: text, required: true, 描述: "文章主题"
[Input Block: word_count] — type: number, 描述: "目标字数", default: 1000
[Input Block: style] — type: select, options: ["正式", "轻松", "学术"], default: "正式"
|
[Generation Block] — "写一篇关于 {{topic}} 的文章,{{word_count}} 字左右,风格: {{style}}"运行时约束
- 适用文档类型:所有文档类型(workflow、skill 均可使用)
- 固定位置:Input Block 必须放在文档顶部的 Inputs 容器内,不能在文档任意位置插入
- 不可嵌套场景:Input Block 不能放在 Condition、Loop、Promise 等容器内
文档结构
Input Block 由 Inputs 容器节点包裹,文档结构如下:
doc
├─ inputs (容器)
│ ├─ input (参数 1)
│ ├─ input (参数 2)
│ └─ input (参数 3)
├─ (其他 Block...)注意事项
- 无独立执行器:Input Block 是文档结构节点,不经过后端执行器。它的值在文档运行前由用户填写或由调用方传入
- 动态类型:Input 的输出变量类型由配置的 type 决定。在变量引用菜单中显示为
dynamic类型 - Schema 驱动:Input 的详细配置(如文件大小限制、选项列表等)通过
schema属性承载,schema 的type字段与 Input 的type保持同步 - Flow 调用传参:当文档被 Flow Block 调用时,调用方通过 inputJSON 传入的值会映射到对应 Input 的变量。参数名称需与 Input 的 name 一致
- 必填校验:标记为
required的 Input 在运行前会校验是否已填写,未填写时无法执行 - 默认值:每种类型可通过 schema 的
default字段设置默认值,用户未填写时使用默认值