跳到主要内容

文件端点

使用 /files 端点在本地计算机和 Langflow 之间传输文件。

/v1/files/v2/files 之间的区别

存在两个版本的 /files 端点。

/v2/files 相比 /v1/files 提供以下改进:

  • /v2 文件按 user_id 而不是 flow_id 组织。 这意味着文件由用户拥有,并且不附加到特定的流程中。 您可以一次性将文件上传到 Langflow,并在多个流程中使用它。
  • /v2 文件在 Langflow 数据库中被跟踪。
  • /v2 支持批量上传和删除。
  • /v2 响应包含更丰富的描述性元数据。

但是,/v2/files 不支持图像文件。 要通过 API 将图像文件发送到您的流程中,请使用 上传图像文件 (v1)

文件/V1 端点

使用 /files 端点在本地计算机和 Langflow 之间传输文件。

上传文件 (v1)

将文件上传到 v1/files/upload/$FLOW_ID 端点: 将 FILE_NAME 替换为上传的文件名。


_10
curl -X POST \
_10
"$LANGFLOW_URL/api/v1/files/upload/$FLOW_ID" \
_10
-H "accept: application/json" \
_10
-H "Content-Type: multipart/form-data" \
_10
-H "x-api-key: $LANGFLOW_API_KEY" \
_10
-F "file=@FILE_NAME.txt"

FILE_NAME.txt 替换为您要上传的文件的名称和扩展名。 并非所有文件类型都受支持。

结果

_10
{
_10
"flowId": "92f9a4c5-cfc8-4656-ae63-1f0881163c28",
_10
"file_path": "92f9a4c5-cfc8-4656-ae63-1f0881163c28/2024-12-30_15-19-43_your_file.txt"
_10
}

上传图像文件 (v1)

将图像文件发送到 Langflow 以在流程中使用。

默认文件限制为 100 MB。 要更改此限制,请设置 LANGFLOW_MAX_FILE_SIZE_UPLOAD 环境变量

  1. 使用 --form (-F) 和文件路径将图像附加到 POST /v1/files/upload/$FLOW_ID 请求中:


    _10
    curl -X POST "$LANGFLOW_URL/api/v1/files/upload/$FLOW_ID" \
    _10
    -H "Content-Type: multipart/form-data" \
    _10
    -H "x-api-key: $LANGFLOW_API_KEY" \
    _10
    -F "file=@PATH/TO/FILE.png"

    成功的请求会返回 Langflow 文件管理系统中图像的 file_path,格式为 FLOW_ID/TIMESTAMP_FILENAME.TYPE。 例如:


    _10
    {
    _10
    "flowId": "a430cc57-06bb-4c11-be39-d3d4de68d2c4",
    _10
    "file_path": "a430cc57-06bb-4c11-be39-d3d4de68d2c4/2024-11-27_14-47-50_image-file.png"
    _10
    }

  2. 使用返回的 file_path 将图像文件发送到可以接受文件输入的其他组件。指定文件路径的位置取决于组件类型。

    以下示例运行 Basic Prompting 模板流程,将图像文件和查询 describe this image 作为 Chat Input 组件的输入传递。 在这种情况下,文件路径在 tweaks 中指定。


    _14
    curl -X POST \
    _14
    "$LANGFLOW_URL/api/v1/run/a430cc57-06bb-4c11-be39-d3d4de68d2c4?stream=false" \
    _14
    -H "Content-Type: application/json" \
    _14
    -H "x-api-key: $LANGFLOW_API_KEY" \
    _14
    -d '{
    _14
    "output_type": "chat",
    _14
    "input_type": "chat",
    _14
    "tweaks": {
    _14
    "ChatInput-b67sL": {
    _14
    "files": "a430cc57-06bb-4c11-be39-d3d4de68d2c4/2024-11-27_14-47-50_image-file.png",
    _14
    "input_value": "describe this image"
    _14
    }
    _14
    }
    _14
    }'

    提示

    有关 tweaks 的帮助,请使用流程中 API 访问 窗格的 Input Schema。 使用 Input Schema 设置 tweaks 也会自动填充所需的组件 ID。

列出文件 (v1)

列出与特定流程关联的所有文件。


_10
curl -X GET \
_10
"$LANGFLOW_URL/api/v1/files/list/$FLOW_ID" \
_10
-H "accept: application/json" \
_10
-H "x-api-key: $LANGFLOW_API_KEY"

结果

_10
{
_10
"files": ["2024-12-30_15-19-43_your_file.txt"]
_10
}

下载文件 (v1)

从流程中下载特定文件。


_10
curl -X GET \
_10
"$LANGFLOW_URL/api/v1/files/download/$FLOW_ID/2024-12-30_15-19-43_your_file.txt" \
_10
-H "accept: application/json" \
_10
-H "x-api-key: $LANGFLOW_API_KEY" \
_10
--output downloaded_file.txt

结果

_10
File contents downloaded to downloaded_file.txt

删除文件 (v1)

从流程中删除特定文件。


_10
curl -X DELETE \
_10
"$LANGFLOW_URL/api/v1/files/delete/$FLOW_ID/2024-12-30_15-19-43_your_file.txt" \
_10
-H "accept: application/json" \
_10
-H "x-api-key: $LANGFLOW_API_KEY"

结果

_10
{
_10
"message": "File 2024-12-30_15-19-43_your_file.txt deleted successfully"
_10
}

Files/V2 端点

使用 /files 端点在本地计算机和 Langflow 之间移动文件。

/v2/files 端点可以通过 API 密钥或 JWT 进行身份验证。 要创建 Langflow API 密钥并将其导出为环境变量,请参阅 开始使用 Langflow API

上传文件 (v2)

将文件上传到您的用户账户。该文件可在多个流程中使用。

文件以 USER_ID/FILE_ID.FILE_EXTENSION 格式上传,例如 07e5b864-e367-4f52-b647-a48035ae7e5e/d44dc2e1-9ae9-4cf6-9114-8d34a6126c94.pdf

  1. 要获取您的当前 user_id,请调用 /whoami 端点:


    _10
    curl -X GET \
    _10
    "$LANGFLOW_URL/api/v1/users/whoami" \
    _10
    -H "accept: application/json" \
    _10
    -H "x-api-key: $LANGFLOW_API_KEY"

    结果

    _10
    {"id":"07e5b864-e367-4f52-b647-a48035ae7e5e","username":"langflow","profile_image":null,"store_api_key":null,"is_active":true,"is_superuser":true,"create_at":"2025-05-08T17:59:07.855965","updated_at":"2025-05-28T19:00:42.556460","last_login_at":"2025-05-28T19:00:42.554338","optins":{"github_starred":false,"dialog_dismissed":true,"discord_clicked":false,"mcp_dialog_dismissed":true}}

  2. 在向 v2/files 发送的 POST 请求中,将 @FILE_NAME.EXTENSION 替换为上传的文件名及其扩展名。 您必须在请求中包含符号(@),以指示 curl 上传文件内容,而不是字符串 FILE_NAME.EXTENSION


    _10
    curl -X POST \
    _10
    "$LANGFLOW_URL/api/v2/files" \
    _10
    -H "accept: application/json" \
    _10
    -H "Content-Type: multipart/form-data" \
    _10
    -H "x-api-key: $LANGFLOW_API_KEY" \
    _10
    -F "file=@FILE_NAME.EXTENSION"

    文件以 USER_ID/FILE_ID.FILE_EXTENSION 格式上传,API 返回有关上传文件的元数据:


    _10
    {
    _10
    "id":"d44dc2e1-9ae9-4cf6-9114-8d34a6126c94",
    _10
    "name":"engine_manual",
    _10
    "path":"07e5b864-e367-4f52-b647-a48035ae7e5e/d44dc2e1-9ae9-4cf6-9114-8d34a6126c94.pdf",
    _10
    "size":851160,
    _10
    "provider":null
    _10
    }

将文件发送到您的流程 (v2)

important

/v2/files 端点无法将图像文件发送到流程。 要通过 API 将图像文件发送到您的流程,请参阅 上传图像文件 (v1)

此端点将文件上传到您的 Langflow 服务器的文件管理系统。 要在流程中使用上传的文件,请使用 File 组件 将文件路径发送到流程。

默认文件限制为 100 MB。要配置此值,请更改 LANGFLOW_MAX_FILE_SIZE_UPLOAD 环境变量

  1. 要使用 API 将文件发送到您的流程,请将文件 POST 到 /api/v2/files 端点。

    FILE_NAME.EXTENSION 替换为您要上传的文件的名称和扩展名。 这是在 上传文件 (v2) 中描述的相同步骤,但由于您需要文件名来上传到您的流程,因此在此处包含。


    _10
    curl -X POST \
    _10
    "$LANGFLOW_URL/api/v2/files" \
    _10
    -H "accept: application/json" \
    _10
    -H "Content-Type: multipart/form-data" \
    _10
    -H "x-api-key: $LANGFLOW_API_KEY" \
    _10
    -F "file=@FILE_NAME.EXTENSION"

    文件以 USER_ID/FILE_ID.FILE_EXTENSION 格式上传,API 返回有关上传文件的元数据:


    _10
    {
    _10
    "id":"d44dc2e1-9ae9-4cf6-9114-8d34a6126c94",
    _10
    "name":"engine_manual",
    _10
    "path":"07e5b864-e367-4f52-b647-a48035ae7e5e/d44dc2e1-9ae9-4cf6-9114-8d34a6126c94.pdf",
    _10
    "size":851160,
    _10
    "provider": null
    _10
    }

  2. 要在您的流程中使用此文件,请向您的流程添加一个 File 组件。 此组件从您的本地计算机或 Langflow 文件管理中将文件加载到流程中。

  3. 运行流程,在 tweaks 对象中将 path 传递给 File 组件:


    _16
    curl --request POST \
    _16
    --url "$LANGFLOW_URL/api/v1/run/$FLOW_ID" \
    _16
    --header "Content-Type: application/json" \
    _16
    --header "x-api-key: $LANGFLOW_API_KEY" \
    _16
    --data '{
    _16
    "input_value": "what do you see?",
    _16
    "output_type": "chat",
    _16
    "input_type": "text",
    _16
    "tweaks": {
    _16
    "File-1olS3": {
    _16
    "path": [
    _16
    "07e5b864-e367-4f52-b647-a48035ae7e5e/3a290013-fe1e-4d3d-a454-cacae81288f3.pdf"
    _16
    ]
    _16
    }
    _16
    }
    _16
    }'

    要获取 File 组件的 ID,请调用 读取流程 端点或在可视化编辑器中检查该组件。

    如果文件路径有效,流程将成功运行。

列出文件 (v2)

列出与您的用户账户关联的所有文件。


_10
curl -X GET \
_10
"$LANGFLOW_URL/api/v2/files" \
_10
-H "accept: application/json" \
_10
-H "x-api-key: $LANGFLOW_API_KEY"

结果

_10
[
_10
{
_10
"id": "c7b22c4c-d5e0-4ec9-af97-5d85b7657a34",
_10
"name": "your_file",
_10
"path": "6f17a73e-97d7-4519-a8d9-8e4c0be411bb/c7b22c4c-d5e0-4ec9-af97-5d85b7657a34.txt",
_10
"size": 1234,
_10
"provider": null
_10
}
_10
]

下载文件 (v2)

通过其 ID 和文件扩展名下载特定文件。

您必须在 --output 值中指定您期望的文件类型。


_10
curl -X GET \
_10
"$LANGFLOW_URL/api/v2/files/c7b22c4c-d5e0-4ec9-af97-5d85b7657a34" \
_10
-H "accept: application/json" \
_10
-H "x-api-key: $LANGFLOW_API_KEY" \
_10
--output downloaded_file.txt

结果

_10
文件内容已下载到 downloaded_file.txt

编辑文件名 (v2)

更改文件名。


_10
curl -X PUT \
_10
"$LANGFLOW_URL/api/v2/files/$FILE_ID?name=new_file_name" \
_10
-H "accept: application/json" \
_10
-H "x-api-key: $LANGFLOW_API_KEY"

结果

_10
{
_10
"id": "76543e40-f388-4cb3-b0ee-a1e870aca3d3",
_10
"name": "new_file_name",
_10
"path": "6f17a73e-97d7-4519-a8d9-8e4c0be411bb/76543e40-f388-4cb3-b0ee-a1e870aca3d3.png",
_10
"size": 2728251,
_10
"provider": null
_10
}

删除文件 (v2)

通过其 ID 删除特定文件。


_10
curl -X DELETE \
_10
"$LANGFLOW_URL/api/v2/files/$FILE_ID" \
_10
-H "accept: application/json" \
_10
-H "x-api-key: $LANGFLOW_API_KEY"

结果

_10
{
_10
"message": "文件删除成功"
_10
}

删除所有文件 (v2)

删除与您的用户账户关联的所有文件。


_10
curl -X DELETE \
_10
"$LANGFLOW_URL/api/v2/files" \
_10
-H "accept: application/json" \
_10
-H "x-api-key: $LANGFLOW_API_KEY"

结果

_10
{
_10
"message": "所有文件删除成功"
_10
}

创建上传文件 (已弃用)

此端点已弃用。请改用 /files 端点。

另请参阅

Search