createFileInputNode

workflow.createFileInputNode() 用来处理 type: "file" 的 executor param。它接收 file reference、JSON 字符串、数组或路径字符串,并通过 context.files 解析成 WorkflowResolvedFile[]

签名

workflow.createFileInputNode(
  options?: FileInputNodeOptions,
): BaseNode<unknown, WorkflowResolvedFile[]>

参数

参数类型说明
optionsFileInputNodeOptions控制文件数量、文件类型、节点名和元信息。

FileInputNodeOptions

字段类型说明
namestring节点名称,默认 "file-input"
acceptstring[]允许的 MIME 或扩展名,例如 image/*image/png.pdf;空数组表示不限制。
multipleboolean是否允许多个文件,默认 true
historyLimitnumber节点执行历史保留条数,默认 50
metadataWorkflowNodeMetadataInput节点展示元信息。

输入格式

输入示例解析结果
空值undefinednull""[]
路径字符串"./input.png"一个 storage: "path"WorkflowFileReference
JSON 字符串"{\"id\":\"file1\",...}"先 JSON parse,再规范化引用
对象{ id, name, storage, ... }一个文件引用
数组[{ id, ... }, { id, ... }]多个文件引用

WorkflowFileReference

字段说明
id文件 ID 或路径。必填。
name文件名,不传时使用 id
mimeTypeMIME 类型,不传时默认为 application/octet-stream
size文件大小,不传时为 0 或由本地 stat 补齐。
kind文件类型:imagefile;不传时根据 MIME 推断。
storage存储来源:localserverpathurl;默认 path
workflowId关联 workflow。
conversationId关联会话。
createdAt创建时间,不传时补当前时间。
urlURL 文件来源。
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 检查。

示例

const imagesNode = workflow.createFileInputNode({
  name: "images",
  accept: ["image/png", "image/jpeg", "image/webp"],
  multiple: true,
});

const files = await workflow.runNode(imagesNode, input.images, context);
const imageParts = await Promise.all(files.map((file) => file.toLLMImagePart()));