跳到主要内容

开始使用 Langflow API

您可以使用 Langflow API 对 Langflow 进行编程交互,例如以下用途:

  • 创建和编辑流程,包括流程的文件管理。
  • 开发使用您流程的应用程序。
  • 开发自定义组件。
  • 将 Langflow 构建为更大应用程序、代码库或服务的依赖项。
  • 为整体 Langflow 代码库做出贡献。

要查看和测试所有可用的端点,您可以在 Langflow 部署的 /docs 端点访问 Langflow API 的 OpenAPI 规范,例如 http://localhost:7860/docs

尝试一下

有关脚本中 Langflow API 的示例,请参阅 Langflow 快速入门

快速入门演示了如何获取流程的自动生成代码片段、使用脚本运行流程以及从 Langflow API 响应中提取数据。

构建 Langflow API 请求

虽然各个端点的选项有所不同,但所有 Langflow API 请求都具有一些共同点,如 URL、方法、参数和身份验证。

作为 Langflow API 请求的示例,以下 curl 命令调用 /v1/run 端点,并向流程的 Chat Output 组件传递运行时覆盖(tweaks)参数:


_14
curl --request POST \
_14
--url "$LANGFLOW_SERVER_URL/api/v1/run/$FLOW_ID?stream=false" \
_14
--header "Content-Type: application/json" \
_14
--header "x-api-key: $LANGFLOW_API_KEY" \
_14
--data '{
_14
"input_value": "hello world!",
_14
"output_type": "chat",
_14
"input_type": "chat",
_14
"tweaks": {
_14
"ChatOutput-6zcZt": {
_14
"should_store_message": true
_14
}
_14
}
_14
}'

基础 URL

默认情况下,本地部署在 http://localhost:7860/api 提供 Langflow API。

远程托管的 Langflow 部署可在托管服务设置的域名上访问,例如 http://IP_OR_DNS/apihttp://IP_OR_DNS:LANGFLOW_PORT/api

您可以在 LANGFLOW_PORT 环境变量 中配置 Langflow 端口号。

  • https://UUID.ngrok.app/api
  • http://IP_OR_DNS/api
  • http://IP_OR_DNS:LANGFLOW_PORT/api

身份验证

在 Langflow 1.5 及更高版本中,大多数 API 端点需要使用 Langflow API 密钥进行身份验证,可以通过 x-api-key 标头或查询参数传递。 有关更多信息,请参阅 API 密钥和身份验证

与任何 API 一样,请遵循行业最佳实践来存储和引用敏感凭据。 例如,您可以为 API 密钥 设置环境变量,然后在 API 请求中引用这些环境变量。

方法、路径和参数

Langflow API 请求使用各种方法、路径、路径参数、查询参数和正文参数。 具体的要求和选项取决于您要调用的端点。

例如,要创建流程,您可以将 JSON 格式的流程定义传递给 POST /v1/flows。 然后,要运行您的流程,您可以在请求正文中使用可选的运行参数调用 POST /v1/run/$FLOW_ID

API 版本

Langflow API 提供 /v1/v2 端点。

某些端点仅存在于单个版本下,而某些端点同时存在于 /v1/v2 版本下。

如果请求失败或产生意外结果,请确保您的端点路径具有正确的版本。

设置环境变量

您可以将常用值存储在环境变量中,以便于重用、简化令牌轮换并安全地引用敏感值。

您可以使用任何您喜欢的方法来设置环境变量,例如 export.envzshrc.curlrc。 然后,在您的 API 请求中引用这些环境变量。 例如:


_22
# 设置环境变量
_22
export LANGFLOW_API_KEY="sk..."
_22
export LANGFLOW_SERVER_URL="https://localhost:7860"
_22
export FLOW_ID="359cd752-07ea-46f2-9d3b-a4407ef618da"
_22
export PROJECT_ID="1415de42-8f01-4f36-bf34-539f23e47466"
_22
export LANGFLOW_API_KEY="sk-..."
_22
_22
# 在 API 请求中使用环境变量
_22
curl --request POST \
_22
--url "$LANGFLOW_SERVER_URL/api/v1/run/$FLOW_ID$?stream=false" \
_22
--header "Content-Type: application/json" \
_22
--header "x-api-key: $LANGFLOW_API_KEY" \
_22
--data '{
_22
"input_value": "hello world!",
_22
"output_type": "chat",
_22
"input_type": "chat",
_22
"tweaks": {
_22
"ChatOutput-6zcZt": {
_22
"should_store_message": true
_22
}
_22
}
_22
}'

Langflow API 请求中常用的值包括您的 Langflow 服务器 URLLangflow API 密钥、流程 ID 和 项目 ID

您可以从 API 访问面板、流程的 URL 以及使用 GET /flows 获取流程 ID。

尝试一些 Langflow API 请求

一旦您有了 Langflow 服务器 URL,请尝试调用这些返回 Langflow 元数据的端点。

获取版本号

返回当前 Langflow API 版本:


_10
curl -X GET \
_10
"$LANGFLOW_SERVER_URL/api/v1/version" \
_10
-H "accept: application/json"
_10
-H "x-api-key: $LANGFLOW_API_KEY"

结果

_10
{
_10
"version": "1.1.1",
_10
"main_version": "1.1.1",
_10
"package": "Langflow"
_10
}

获取配置

返回您的 Langflow 部署的配置详情:


_10
curl -X GET \
_10
"$LANGFLOW_SERVER_URL/api/v1/config" \
_10
-H "accept: application/json" \
_10
-H "x-api-key: $LANGFLOW_API_KEY"

结果

_10
{
_10
"feature_flags": {
_10
"mvp_components": false
_10
},
_10
"frontend_timeout": 0,
_10
"auto_saving": true,
_10
"auto_saving_interval": 1000,
_10
"health_check_max_retries": 5,
_10
"max_file_size_upload": 100
_10
}

获取所有组件

返回所有 Langflow 组件的字典:


_10
curl -X GET \
_10
"$LANGFLOW_SERVER_URL/api/v1/all" \
_10
-H "accept: application/json" \
_10
-H "x-api-key: $LANGFLOW_API_KEY"

可用端点

由于您可以将Langflow作为IDE(前端和后端)或运行时(无头、仅后端)运行,因此它提供支持前端和后端操作的端点。 许多端点用于前端和后端之间的编排、读写Langflow数据库,或启用前端功能,如Playground。 除非您正在为Langflow代码库做贡献,否则您不会直接调用大多数Langflow端点。

对于应用程序开发,最常用的端点是/run/webhook流触发端点。 对于某些用例,您可能会使用其他一些端点,例如使用/files端点在流中使用文件。

为了帮助您探索可用端点,以下列表按主要用例排序,尽管某些端点可能支持多种用例。

以下端点对于使用Langflow开发应用程序和管理具有一个或多个用户的Langflow部署很有用。 您最常使用的是流触发端点。 其他端点对于特定用例很有帮助,例如在没有可视化编辑器的运行时部署中的管理和流管理。

  • 流触发端点:

    • POST /v1/run/{flow_id_or_name}: 运行流。
    • POST /v1/run/advanced/{flow_id}: 高级运行,具有明确的inputsoutputstweaks和可选的session_id
    • POST /v1/webhook/{flow_id_or_name}: 通过webhook负载触发流。
  • 部署详情:

    • GET /v1/version: 返回Langflow版本。请参阅获取版本
    • GET /v1/config: 返回部署配置。请参阅获取配置
  • 项目端点:

    • POST /v1/projects/: 创建项目。
    • GET /v1/projects/: 列出项目。
    • GET /v1/projects/{project_id}: 读取项目(支持分页流)。
    • PATCH /v1/projects/{project_id}: 更新项目信息和成员资格。
    • DELETE /v1/projects/{project_id}: 删除项目。
    • GET /v1/projects/download/{project_id}: 将项目中的所有流导出为ZIP。
    • POST /v1/projects/upload/: 导入项目ZIP(创建项目和流)。
    • GET /v1/starter-projects/: 返回模板列表。
  • 文件端点:

    • 文件 (v1)
      • POST /v1/files/upload/{flow_id}: 向特定流上传文件。
      • GET /v1/files/download/{flow_id}/{file_name}: 从流中下载文件。
      • GET /v1/files/images/{flow_id}/{file_name}: 从流中流式传输图像。
      • GET /v1/files/profile_pictures/{folder_name}/{file_name}: 获取个人资料图片资源。
      • GET /v1/files/profile_pictures/list: 列出可用的个人资料图片资源。
      • GET /v1/files/list/{flow_id}: 列出流的文件。
      • DELETE /v1/files/delete/{flow_id}/{file_name}: 从流中删除文件。
    • 文件 (v2)
      • POST /v2/files (别名 /v2/files/): 上传当前用户拥有的文件。
      • GET /v2/files (别名 /v2/files/): 列出当前用户拥有的文件。
      • DELETE /v2/files/batch/: 通过ID删除多个文件。
      • POST /v2/files/batch/: 通过ID将多个文件下载为ZIP。
      • GET /v2/files/{file_id}: 通过ID下载文件(或在内部返回原始内容)。
      • PUT /v2/files/{file_id}: 通过ID编辑文件名。
      • DELETE /v2/files/{file_id}: 通过ID删除文件。
      • DELETE /v2/files (别名 /v2/files/): 删除当前用户的所有文件。
  • API密钥和身份验证:

    • GET /v1/api_key/: 列出当前用户的API密钥。
    • POST /v1/api_key/: 创建新的API密钥。
    • DELETE /v1/api_key/{api_key_id}: 删除API密钥。
    • POST /v1/api_key/store: 保存加密的存储API密钥(设置cookie)。
  • 流管理端点:

    • POST /v1/flows/: 创建流。
    • GET /v1/flows/: 列出流(支持分页和过滤)。
    • GET /v1/flows/{flow_id}: 通过ID读取流。
    • GET /v1/flows/public_flow/{flow_id}: 通过ID读取公共流。
    • PATCH /v1/flows/{flow_id}: 更新流。
    • DELETE /v1/flows/{flow_id}: 删除流。
    • POST /v1/flows/batch/: 创建多个流。
    • POST /v1/flows/upload/: 从JSON文件导入流。
    • DELETE /v1/flows/: 通过ID删除多个流。
    • POST /v1/flows/download/: 将流导出为ZIP文件。
    • GET /v1/flows/basic_examples/: 列出基本示例流。* 用户端点:
    • POST /v1/users/: 添加用户(启用认证时需要超级用户权限)。
    • GET /v1/users/whoami: 返回当前已认证的用户。
    • GET /v1/users/: 列出所有用户(需要超级用户权限)。
    • PATCH /v1/users/{user_id}: 更新用户(进行角色检查)。
    • PATCH /v1/users/{user_id}/reset-password: 重置自己的密码。
    • DELETE /v1/users/{user_id}: 删除用户(不能删除自己)。

后续步骤

Search