createFileInputNode
workflow.createFileInputNode() 用来处理 type: "file" 的 executor param。它接收 file reference、JSON 字符串、数组或路径字符串,并通过 context.files 解析成 WorkflowResolvedFile[]。
签名
参数
| 参数 | 类型 | 说明 |
|---|---|---|
options | FileInputNodeOptions | 控制文件数量、文件类型、节点名和元信息。 |
FileInputNodeOptions
| 字段 | 类型 | 说明 |
|---|---|---|
name | string | 节点名称,默认 "file-input"。 |
accept | string[] | 允许的 MIME 或扩展名,例如 image/*、image/png、.pdf;空数组表示不限制。 |
multiple | boolean | 是否允许多个文件,默认 true。 |
historyLimit | number | 节点执行历史保留条数,默认 50。 |
metadata | WorkflowNodeMetadataInput | 节点展示元信息。 |
输入格式
| 输入 | 示例 | 解析结果 |
|---|---|---|
| 空值 | undefined、null、"" | [] |
| 路径字符串 | "./input.png" | 一个 storage: "path" 的 WorkflowFileReference |
| JSON 字符串 | "{\"id\":\"file1\",...}" | 先 JSON parse,再规范化引用 |
| 对象 | { id, name, storage, ... } | 一个文件引用 |
| 数组 | [{ id, ... }, { id, ... }] | 多个文件引用 |
WorkflowFileReference
| 字段 | 说明 |
|---|---|
id | 文件 ID 或路径。必填。 |
name | 文件名,不传时使用 id。 |
mimeType | MIME 类型,不传时默认为 application/octet-stream。 |
size | 文件大小,不传时为 0 或由本地 stat 补齐。 |
kind | 文件类型:image 或 file;不传时根据 MIME 推断。 |
storage | 存储来源:local、server、path 或 url;默认 path。 |
workflowId | 关联 workflow。 |
conversationId | 关联会话。 |
createdAt | 创建时间,不传时补当前时间。 |
url | URL 文件来源。 |
path | 本地路径。 |
输出对象
| 方法/字段 | 类型 | 说明 |
|---|---|---|
| 引用字段 | WorkflowFileReference 字段 | 输出对象保留规范化后的引用字段。 |
readBuffer() | Promise<Buffer> | 读取文件内容。 |
readBase64() | Promise<string> | 读取 base64 内容。 |
readDataUrl() | Promise<string> | 读取 data URL。 |
toLLMImagePart() | Promise<LLMImagePart> | 转换成 LLM 图片输入片段。非图片会抛错。 |
toJSON() | WorkflowFileReference | 返回可保存的文件引用,不包含文件内容。 |
依赖的 context
| 字段 | 说明 |
|---|---|
context.files | 必须提供 WorkflowFileStore。没有文件 store 时会抛 input_validation。 |
context.abortSignal | 可选。节点执行时由 runNode 检查。 |