跳到主要内容

开始使用 Langflow API

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

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

要查看并测试所有可用的端点,您可以访问 Langflow 部署中 /docs 端点的 OpenAPI 规范,例如 https://:7860/docs

立即体验

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

快速入门演示了如何为工作流获取自动生成的代码片段、如何使用脚本运行工作流以及如何从 Langflow 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

默认情况下,本地部署在 https://: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 请求使用各种方法、路径、路径参数、查询参数和正文参数。具体要求和选项取决于您要调用的端点。

例如,要创建一个工作流,您需要向 POST /v1/flows 传递 JSON 格式的工作流定义。然后,要运行该工作流,您需要调用 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://: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 access 面板、工作流的 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 端点。此端点由 uvicorn 在 Langflow 完全初始化之前提供服务,因此用于检查 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 Responses 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