列表操作
Last updated
Last updated
文件列表变量支持同时上传文档文件、图片、音频与视频文件等多种文件。应用使用者在上传文件时,所有文件都存储在同一个 Array[File]
数组类型变量内,不利于后续单独处理文件。列表操作节点可以在数组变量内提取单独的元素,便于后续节点处理。
Array
数据类型意味着该变量的实际值可能为 [1.mp3, 2.png, 3.doc],大语言模型(LLM)仅支持读取图片文件或文本内容等单一值作为输入变量,无法直接读取数组变量,通常需要配合列表操作节点一起使用。
列表操作节点可以对文件的格式类型、文件名、大小等属性进行过滤与提取,将不同格式的文件传递给对应的处理节点,以实现对不同文件处理流的精确控制。
例如在一个应用中,允许用户同时上传文档文件和图片文件两种不同类型的文件。需要使用列表操作节点进行分拣,将不同的文件类型交由不同流程处理。
列表操作节点一般用于提取数组变量中的信息,通过设置条件将其转化为能够被下游节点所接受的变量类型。它的结构分为输入变量、过滤条件、排序(可选)、取前 N 项(可选)、输出变量。
列表操作节点仅接受以下数据结构变量:
Array[string]
Array[number]
Array[file]
处理输入变量中的数组,添加过滤条件。从数组中分拣所有满足条件的数组变量,可以理解为对变量的属性进行过滤。
举例:文件中可能包含多重维度的属性,例如文件名、文件类型、文件大小等属性。过滤条件允许设置筛选条件,选择并提取数组变量中的特定文件。
支持提取以下变量:
type 文件类别,包含图片,文档,音频和视频类型
size 文件大小
name 文件名
url 指的是应用使用者通过 URL 上传的文件,可填写完整 URL 进行筛选
extension 文件拓展名
mime_type
MIME 类型是用来标识文件内容类型的标准化字符串。示例: "text/html" 表示 HTML 文档。
transfer_method
文件上传方式,分为本地上传或通过 URL 上传
提供对于输入变量中数组的排序能力,支持根据文件属性进行排序。
升序排列
默认排序选项,按照从小到大排序。对于字母和文本,按字母表顺序排列(A - Z)
降序排列
由大到小排序,对于字母和文本,按字母表倒序排列(Z - A)
该选项常用于配合输出变量中的 first_record 及 last_record 使用。
可以在 1-20 中选值,用途是为了选中数组变量的前 n 项。
满足各项过滤条件的数组元素。过滤条件、排序和限制可以单独开启。如果同时开启,则返回符合所有条件的数组元素。
Result,过滤结果,数据类型为数组变量。若数组中仅包含 1 个文件,则输出变量仅包含 1 个数组元素;
first_record,筛选完的数组的首元素,即 result[0];
last_record,筛选完的数组的尾元素,即 result[array.length-1]。
在文件交互问答场景中,应用使用者可能会同时上传文档文件或图片文件。LLM 仅支持识别图片文件的能力,不支持读取文档文件。此时需要用到 列表操作 节点预处理文件变量的数组,将不同的文件类型并发送至对应的处理节点。编排步骤如下:
开启 Features 功能,并在文件类型中勾选 “图片” + “文档文件” 类型。
添加两个列表操作节点,在 “过滤” 条件中分别设置提取图片与文档变量。
提取文档文件变量,传递至 “文档提取器” 节点;提取图片文件变量,传递至 “LLM” 节点。
在末尾添加 “直接回复” 节点,填写 LLM 节点的输出变量。
应用使用者同时上传文档文件和图片后,文档文件自动分流至文档提取器节点,图片文件自动分流至 LLM 节点以实现对于混合文件的共同处理。