跳到主要内容

管理文件 (Manage files)

每个 Langflow 服务器都有一个文件管理系统,您可以在其中存储要在工作流中使用的文件。

上传到 Langflow 文件管理的文件存储在 Langflow 的 存储后端(本地或 AWS S3) 中,并且可供您的所有工作流使用。

将文件上传到 Langflow 文件管理可以将文件保存在中心位置,并允许您在不同工作流中重复使用文件,而无需重复手动上传。

使用文件管理 UI

您可以使用文件管理 UI 将文件从本地计算机上传到您自己的 Langflow 服务器。 您还可以管理已上传到 Langflow 服务器的所有文件。

  1. 导航到 Langflow 文件管理:

    • Langflow Desktop: 在 Langflow 中,在 项目 (Projects) 页面 上,点击项目列表下方的 My Files
    • Langflow OSS: 从浏览器导航到 Langflow 服务器的 /files 端点,例如 http://localhost:7860/files。根据需要修改 Langflow 服务器的基准 URL。
    • 仅后端: 对于程序化文件管理,请使用 Langflow API 文件端点。但是,以下步骤假设您使用的是文件管理 UI。
  2. My Files 页面上,点击 Upload

  3. 选择一个或多个要上传的文件。

上传文件后,您可以在文件管理 UI 中重命名、下载、复制或删除文件。 要删除文件,请将鼠标悬停在文件图标上,选择它,然后点击 Delete。 您可以一次性删除多个文件。 要下载文件,请将鼠标悬停在文件图标上,选择它,然后点击 Download。 如果您一次性下载多个文件,它们将一起保存在一个 zip 文件中。

使用 Langflow API 上传和管理文件

通过 Langflow API,您可以在 Langflow 文件管理中上传和管理文件,并且可以在运行时以编程方式向工作流发送文件。

有关更多信息和示例,请参阅 文件端点创建一个可以摄取文件的聊天机器人

设置最大文件大小

默认情况下,最大文件大小为 1024 MB。 要修改此值,请更改 LANGFLOW_MAX_FILE_SIZE_UPLOAD 环境变量

在工作流中使用文件

要在工作流中使用 Langflow 文件管理系统中的文件,请向工作流添加一个接受文件输入的组件,例如 Read File 组件。

例如,向工作流添加一个 Read File 组件,点击 Select files,然后从 My Files 列表中选择文件。

此列表包含服务器文件管理系统中的所有文件,但您只能选择 Read File 组件支持的文件类型。 如果您需要其他文件类型,则必须使用支持该文件类型的其他组件,或者在上传之前将其转换为受支持的类型。

有关 Read File 组件和其他数据加载组件的更多信息,请参阅 Read file 组件

在运行时加载文件

如果您工作流接受文件输入,则可以在工作流中使用预加载的文件,也可以在运行时加载文件。 要在工作流中启用文件输入,请执行以下操作:

  1. 向工作流添加一个 Read File 组件

  2. 点击 Share,选择 API access,然后点击 Input Schema 以在工作流自动生成的代码段中将 tweaks 添加到请求负载。

  3. 展开 File 部分,找到 Files 行,然后启用 Expose Input 以允许通过 Langflow API 在运行时设置该参数。

  4. 关闭 Input Schema 窗格以返回 API access 窗格。 现在,每个代码段中的负载都包含带有 Read File 组件 ID 的 tweaks 以及您在 Input Schema 中启用的 path 键:


    _10
    "tweaks": {
    _10
    "File-qYD5w": {
    _10
    "path": []
    _10
    }
    _10
    }

  5. 当您以编程方式运行此工作流时,您的脚本必须将文件上传到 Langflow 文件管理,然后将返回的 file_path 传递给 /run 请求中的 path tweak:


    _10
    "tweaks": {
    _10
    "FILE_COMPONENT_ID": {
    _10
    "path": [ "file_path" ]
    _10
    }
    _10
    }

    有关完整示例,请参阅 创建一个可以摄取文件的聊天机器人文件端点

    如果要上传多个文件,可以在 path 数组中传递多个 file_path 值,例如 [ "path1", "path2" ]

上传图像

Langflow 支持以下格式的 base64 图像:

  • PNG
  • JPG/JPEG
  • GIF
  • BMP
  • WebP

您可以将图像上传到 Playground 聊天界面,并将其作为 Langflow API 的运行时输入。

  • Playground 中,您可以将图像拖放到聊天输入区域,也可以点击 Attach image 图标选择要上传的图像。

  • 当您通过 /api/v1/run/$FLOW_ID 端点触发工作流时,可以使用 files 参数将图像数据作为 base64 编码的字符串附加:


    _10
    curl -X POST "http://$LANGFLOW_SERVER_ADDRESS/api/v1/run/$FLOW_ID" \
    _10
    -H "Content-Type: application/json" \
    _10
    -H "x-api-key: $LANGFLOW_API_KEY" \
    _10
    -d '{
    _10
    "session_id": "custom_session_123",
    _10
    "input_value": "What is in this image?",
    _10
    "input_type": "chat",
    _10
    "output_type": "chat",
    _10
    "files": ["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."]
    _10
    }'

有关更专业的图像处理,请浏览 [Bundles (捆绑包)] 或 创建您自己的组件

处理视频文件

有关视频,请参阅 Twelve LabsYouTube Bundles (捆绑包)

配置文件存储

Langflow 支持两种用于文件管理的存储后端:

  • 本地存储 (Local storage): Langflow 的默认存储后端。文件本地存储在您的 Langflow 配置目录 中。设置 LANGFLOW_STORAGE_TYPE=local 或不设置以使用本地存储。

  • S3 存储 (S3 storage): 文件存储在 AWS S3 存储桶中。 Langflow 使用 boto3 库与 S3 交互。

要使用 S3 作为文件存储后端,请将以下配置添加到 .env 文件中:


_10
# S3 存储配置
_10
LANGFLOW_STORAGE_TYPE=s3
_10
LANGFLOW_OBJECT_STORAGE_BUCKET_NAME=S3_BUCKET_NAME
_10
LANGFLOW_OBJECT_STORAGE_PREFIX=S3_BUCKET_DIRECTORY
_10
_10
# AWS 凭证 (S3 必需)
_10
AWS_ACCESS_KEY_ID=S3_ACCESS_KEY
_10
AWS_SECRET_ACCESS_KEY=S3_ACCESS_SECRET_KEY
_10
AWS_DEFAULT_REGION=S3_REGION

将以下占位符替换为 S3 实例的实际值:

  • S3_BUCKET_NAME: 您的 S3 存储桶名称。
  • S3_BUCKET_DIRECTORY: 存储桶中存储文件的可选文件夹路径,例如 s3://S3_BUCKET_NAME/S3_BUCKET_DIRECTORY
  • S3_ACCESS_KEY: 您的 AWS Access Key ID。
  • S3_ACCESS_SECRET_KEY: 您的 AWS Secret Access Key。
  • S3_REGION: 存储桶所在的 AWS 区域,例如 us-east-2

您的 AWS 凭据必须具有执行用例所需的 S3 操作所需的权限,例如在 S3 中读取、写入和删除文件。 此示例策略允许对 S3 对象进行基本的 CRUD 操作。


_20
{
_20
"Version": "2012-10-17",
_20
"Statement": [
_20
{
_20
"Sid": "LangflowS3StorageAccess",
_20
"Effect": "Allow",
_20
"Action": [
_20
"s3:PutObject",
_20
"s3:GetObject",
_20
"s3:DeleteObject",
_20
"s3:ListBucket",
_20
"s3:PutObjectTagging",
_20
],
_20
"Resource": [
_20
"arn:aws:s3:::S3_BUCKET_NAME",
_20
"arn:aws:s3:::S3_BUCKET_NAME/S3_BUCKET_DIRECTORY/*"
_20
]
_20
}
_20
]
_20
}

将以下占位符替换为 IAM 策略和 S3 实例的实际值:

  • S3_BUCKET_NAME: 您的 S3 存储桶名称。
  • S3_BUCKET_DIRECTORY: 存储桶中存储文件的可选文件夹路径,例如 s3://S3_BUCKET_NAME/S3_BUCKET_DIRECTORY

有关更多信息,请参阅 AWS 文档

文件存储环境变量

以下环境变量配置了 Langflow 文件管理系统的文件存储后端:

变量格式默认值描述
LANGFLOW_STORAGE_TYPEStringlocal设置文件存储后端。支持的值:local(文件存储在 Langflow 配置目录中)或 s3(文件存储在 AWS S3 中)。对于 S3 存储,您还必须配置 AWS 凭据和存储桶设置。
LANGFLOW_OBJECT_STORAGE_BUCKET_NAMEString未设置用于文件存储的 S3 存储桶名称。当 LANGFLOW_STORAGE_TYPE=s3 时必需。
LANGFLOW_OBJECT_STORAGE_PREFIXString未设置S3 存储桶中存储文件的可选前缀/文件夹路径。如果未设置,文件将存储在存储桶根目录下。
LANGFLOW_OBJECT_STORAGE_TAGSJSON 对象未设置LANGFLOW_STORAGE_TYPE=s3 时,应用于存储文件的可选 S3 对象标签。本地存储将忽略此项。以字符串键到字符串值的 JSON 映射形式提供,例如 {"env": "prod", "owner": "data-team"}

另请参阅

Search