跳到主要内容

开始使用 Langflow API

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

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

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

试一试

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

快速入门演示了如何为您的工作流获取自动生成的代码片段,使用脚本运行工作流,并从 Langfow API 响应中提取数据。

构建 Langflow API 请求

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

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


_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 端点都需要在 x-api-key 标头或查询参数中使用 Langflow API 密钥进行身份验证。 有关更多信息,请参阅 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 数据库和聊天服务的健康状态:


_10
curl -X GET \
_10
"$LANGFLOW_SERVER_URL/health_check" \
_10
-H "accept: application/json"

结果

_10
{
_10
"status": "ok",
_10
"chat": "ok",
_10
"db": "ok"
_10
}

Langflow 提供了一个额外的 GET /health 端点。 此端点在 Langflow 完全初始化之前由 uvicorn 提供,因此对于检查 Langflow 服务健康状况不可靠。

获取版本

返回当前 Langflow API 版本:


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

结果

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

获取配置

返回 Langflow 部署的配置详细信息。 需要 Langflow API 密钥


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

结果

_20
{
_20
"feature_flags": {
_20
"mvp_components": false
_20
},
_20
"serialization_max_items_length": 1000,
_20
"serialization_max_text_length": 6000,
_20
"frontend_timeout": 0,
_20
"auto_saving": true,
_20
"auto_saving_interval": 1000,
_20
"health_check_max_retries": 5,
_20
"max_file_size_upload": 1024,
_20
"webhook_polling_interval": 5000,
_20
"public_flow_cleanup_interval": 3600,
_20
"public_flow_expiration": 86400,
_20
"event_delivery": "streaming",
_20
"webhook_auth_enable": false,
_20
"voice_mode_available": false,
_20
"default_folder_name": "Starter Project",
_20
"hide_getting_started_progress": false
_20
}

获取所有组件

返回所有 Langflow 组件的字典。 需要 Langflow API 密钥


_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 负载触发工作流。
  • OpenAI 响应 API:

    • POST /v1/responses: 使用 OpenAI 兼容的请求格式执行工作流。
  • 部署详细信息:

    • GET /v1/version: 返回 Langflow 版本。参见 获取版本
    • GET /v1/config: 返回部署配置。参见 获取配置
    • GET /health_check: 验证数据库和聊天服务连接性的健康检查端点。如果任何服务不可用,则返回 500 状态。
  • 项目端点:

    • 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: 保存加密的 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}: 删除用户(不能删除自己)。
  • 自定义组件: 在开发供自己使用或与 Langflow 社区分享的自定义 Langflow 组件时,您可能会使用这些端点:

    • GET /v1/all: 返回所有可用的 Langflow 组件类型。参见 获取所有组件
    • POST /v1/custom_component: 从代码构建自定义组件并返回其节点。
    • POST /v1/custom_component/update: 更新现有自定义组件的构建配置和输出。
    • POST /v1/validate/code: 为自定义组件验证 Python 代码片段。
    • POST /v1/validate/prompt: 验证提示负载。

后续步骤

Search