在LangStudio中,可以使用文件类型的变量接收和输出文件,通过文档解析节点或Python节点处理文件。
一、开始节点输入
在开始节点中,可以定义类型为 File(文件) 的输入变量,用于接收用户上传的文件,并作为工作流的初始输入。
支持的文件类型包括:
文档类:PDF, DOCX, PPTX, XLSX, XLS, TXT, MD, CSV, JSONL, HTML, HTM
图片类:JPG, JPEG, PNG, BMP, TIFF
音频类:MP3, WAV, AAC
视频类:MP4, MOV, AVI, MKV, M4V, WMV, FLV, ASF, QT
文件上传方式:在开始节点定义文件类型变量后,在对话面板中单击参数配置,可通过从本地上传和输入URL两种方式上传文件。其中,通过输入URL方式上传时,支持类型包括:
OSS URI:符合阿里云 OSS 规范的文件存储路径,例如:
oss://bucket-name/path/to/file.pdf
。HTTP/HTTPS链接:可通过公网访问的可下载链接,例如:
https://example.com/file.docx
。
二、文件处理
文件类型的输入可通过文档解析节点以及Python节点2种方式处理。
2.1. 文档解析节点
使用文档解析节点,参见文档解析。
2.2. Python节点中自定义使用方式
在Python节点中,可以引用文件类型变量作为节点输入,或生成文件类型对象作为节点输出。
File
是 LangStudio 中用于表示文件的核心类型,需要通过from langstudio.types import File
引入依赖包。
LangStudio中提供了多种方式来构建File
类型对象,并上传至用户的OSS存储路径中。
直接构造
直接创建一个 File
对象。这是最基础的构造方式,适用于引用已有文件。
参数 | 类型 | 描述 | 示例值 |
|
| 必填。文件的原始位置。支持以下格式:
|
|
|
| 可下载的 HTTP/HTTPS 链接。
|
|
|
| 文件的唯一标识符。若未提供,系统将生成 8 位 UUID。 |
|
|
| 文件名。若未提供,系统会从 |
|
|
| 文件的 MIME 类型(如 |
|
示例代码:
from langstudio.types import File
file = File(source_uri="https://example.com/report.pdf")
file = File(source_uri="oss://my-bucket/docs/file.docx")
从字符串构造
File.from_content()
方法支持用户从字符串内容创建File
类型对象,适用于生成文本类文件(如 Markdown、TXT、CSV)。
参数 | 类型 | 描述 | 示例值 |
|
| 必填。要保存的字符串内容,将被 UTF-8 编码后上传。 |
|
|
| 必填。生成的文件名。 |
|
示例代码:
from langstudio.types import File
content = "# 生成报告\n这是由系统自动生成的内容。"
file = File.from_content(content=content, file_name="report.md")
从字节序列构造
File.from_bytes(content, file_name)
方法,支持用户从一个字节序列创建File
类型对象,适用于处理二进制文件(如 PDF、图片、Office 文档)。
参数 | 类型 | 描述 | 示例值 |
|
| 必填。要保存的二进制数据。 |
|
|
| 必填。生成的文件名。 |
|
示例代码:
from langstudio.types import File
# 假设 `pdf_data` 是一个 bytes 对象
file = File.from_bytes(content=pdf_data, file_name="test.pdf")
从本地文件构造
File.from_local_file(local_path, file_name)
支持用户上传一个挂载路径中的本地文件,并创建 File
类型对象,适用于容器内本地文件。
参数 | 类型 | 描述 | 示例值 |
|
| 必填。本地文件系统的路径。 |
|
|
| 生成的文件名。如果未提供,则使用 |
|
示例代码:
from langstudio.types import File
# 假设 /tmp/ 目录下已存在该文件
file = File.from_local_file(local_path="/tmp/output.pptx", file_name="presentation.pptx")
从数据流构造
File.from_stream(stream, file_name)
支持用户从一个数据流(如网络流、BytesIO
或可迭代对象)上传内容并创建 File
对象,适用于大文件或流式处理。
参数 | 类型 | 描述 | 示例值 |
|
| 必填。数据源。可以是:
|
|
|
| 必填。生成的文件名。 |
|
示例代码:
import io
from langstudio.types import File
url = "https://example.com/data.jsonl"
file = File.from_stream(stream=url, file_name="data.jsonl")
三、 结束节点输出
在结束节点中,支持将File
类型对象作为工作流的输出结果。查看时,可通过点击对话面板中的“查看其他输出”,可以对工作流的输出文件进行查看和下载。
四、 权限点注意
涉及 File
类型的操作需要对 OSS 存储空间进行读写访问。在新建运行时及部署应用流时,请注意
选择工作空间默认工作路径作为当前的工作路径。
实例RAM角色推荐选择PAI默认角色;若选择自定义角色,需给该自定义角色授予
AliyunOSSFullAccess
权限,否则将无法在LangStudio实现文件类型输入、输出。
如下查看工作空间默认工作路径:
新建运行时:
部署应用流: