开始使用 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 组件:
_14curl --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/api 或 http://IP_OR_DNS:LANGFLOW_PORT/api。
您可以在 LANGFLOW_PORT 环境变量中配置 Langflow 端口号。
https://UUID.ngrok.app/apihttp://IP_OR_DNS/apihttp://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、.env、zshrc 或 .curlrc。然后,在 API 请求中引用这些环境变量。例如:
_22# 设置环境变量_22export LANGFLOW_API_KEY="sk..."_22export LANGFLOW_SERVER_URL="https://:7860"_22export FLOW_ID="359cd752-07ea-46f2-9d3b-a4407ef618da"_22export PROJECT_ID="1415de42-8f01-4f36-bf34-539f23e47466"_22export LANGFLOW_API_KEY="sk-..."_22_22# 在 API 请求中使用环境变量_22curl --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 服务器 URL、Langflow API 密钥、工作流 ID 和 项目 ID。
您可以从 API access 面板、工作流的 URL 以及通过 GET /flows 获取工作流 ID。
尝试一些 Langflow API 请求
获得 Langflow 服务器 URL 后,请尝试调用以下返回 Langflow 元数据的端点。
健康检查
返回 Langflow 数据库和聊天服务的运行状况
_10curl -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 版本
_10curl -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 密钥。
_10curl -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 密钥。
_10curl -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}:带有显式inputs、outputs、tweaks和可选session_id的高级运行。 - POST
/v1/webhook/{flow_id_or_name}:通过 Webhook 有效负载触发工作流。
- POST
-
- POST
/v1/responses:使用兼容 OpenAI 的请求格式执行工作流。
- POST
-
部署详情
-
项目端点:
- 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/:返回模板列表。
- POST
-
文件端点:
- 文件 (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}:从工作流中删除文件。
- POST
- 文件 (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/):删除当前用户的所有文件。
- POST
- 文件 (v1)
-
- 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)。
- GET
-
- 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
-
用户端点:
- 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}:删除用户(不能删除自己)。
- POST
-
自定义组件:在为您自己使用或与 Langflow 社区分享而开发自定义 Langflow 组件时,您可能会用到这些端点
- GET
/v1/all:返回所有可用的 Langflow 组件类型。参见 获取所有组件。 - POST
/v1/custom_component:从代码构建自定义组件并返回其节点。 - POST
/v1/custom_component/update:更新现有自定义组件的构建配置和输出。 - POST
/v1/validate/code:为自定义组件验证 Python 代码片段。 - POST
/v1/validate/prompt:验证提示词有效负载。
- GET
以下端点最常用于为 Langflow 代码库做贡献,以及在您需要理解或调用支持前后端编排或其他内部功能的端点时使用。
-
基础 (元数据)
-
构建端点 (内部编辑器支持)
- POST
/v1/build/{flow_id}/flow:开始工作流构建并返回作业 ID。 - GET
/v1/build/{job_id}/events:流式传输或获取构建事件。 - POST
/v1/build/{job_id}/cancel:取消构建作业。 - POST
/v1/build_public_tmp/{flow_id}/flow:在无认证的情况下构建公开工作流。 - POST
/v1/validate/prompt:验证提示词有效负载。
- POST
-
- POST
/v1/login:登录并将令牌设置为 cookie。 - GET
/v1/auto_login:自动登录(如果已启用)并设置令牌。 - POST
/v1/refresh:使用刷新 cookie 刷新令牌。 - POST
/v1/logout:登出并清除 cookie。
- POST
-
监控端点:
- GET
/v1/monitor/builds:获取工作流的顶点构建信息。 - DELETE
/v1/monitor/builds:删除工作流的顶点构建信息。 - GET
/v1/monitor/messages/sessions:列出消息会话 ID(需要认证)。 - GET
/v1/monitor/messages:列出消息,带有可选过滤器。 - DELETE
/v1/monitor/messages:根据 ID 删除消息(需要认证)。 - PUT
/v1/monitor/messages/{message_id}:更新一条消息。 - PATCH
/v1/monitor/messages/session/{old_session_id}:更改该会话中所有消息的会话 ID。 - DELETE
/v1/monitor/messages/session/{session_id}:按会话删除消息。 - GET
/v1/monitor/transactions:列出工作流的事务(分页)。
- GET
-
变量
- POST
/v1/variables/:为用户创建变量,例如 API 密钥。 - GET
/v1/variables/:列出用户的变量。 - PATCH
/v1/variables/{variable_id}:更新一个变量。 - DELETE
/v1/variables/{variable_id}:删除一个变量。
- POST
-
- WS
/v1/voice/ws/flow_as_tool/{flow_id}:将工作流作为工具暴露的双向语音会话。 - WS
/v1/voice/ws/flow_as_tool/{flow_id}/{session_id}:同上,带有显式会话 ID。 - WS
/v1/voice/ws/flow_tts/{flow_id}:运行工作流并返回 TTS 的语音转文本会话。 - WS
/v1/voice/ws/flow_tts/{flow_id}/{session_id}:同上,带有显式会话 ID。 - GET
/v1/voice/elevenlabs/voice_ids:列出用户可用的 ElevenLabs 语音 ID。
- WS
-
MCP 服务器:以下端点用于管理 Langflow MCP 服务器和 MCP 服务器连接。它们通常不被直接调用;相反,它们用于驱动 Langflow 前端的内部功能以及运行调用 MCP 服务器的工作流。Langflow MCP 服务器支持流式 HTTP 和 SSE 传输。
- HEAD
/v1/mcp/streamable:流式 HTTP MCP 健康检查。 - GET
/v1/mcp/streamable:为 MCP 服务器打开流式 HTTP 连接。 - POST
/v1/mcp/streamable:通过流式 HTTP 向 MCP 服务器发送消息。 - DELETE
/v1/mcp/streamable:关闭流式 HTTP 连接。 - HEAD
/v1/mcp/sse(旧版):MCP SSE 健康检查。 - GET
/v1/mcp/sse(旧版):为 MCP 服务器事件打开 SSE 流。 - POST
/v1/mcp/(旧版):向 MCP 服务器发送消息。 - GET
/v1/mcp/project/{project_id}:列出启用了 MCP 的工具和项目认证设置。 - HEAD
/v1/mcp/project/{project_id}/streamable:项目流式 HTTP MCP 健康检查。 - GET
/v1/mcp/project/{project_id}/streamable:打开项目范围的流式 HTTP 连接。 - POST
/v1/mcp/project/{project_id}/streamable:通过流式 HTTP 向项目 MCP 服务器发送消息。 - DELETE
/v1/mcp/project/{project_id}/streamable:关闭项目流式 HTTP 连接。 - HEAD
/v1/mcp/project/{project_id}/sse(旧版):项目 SSE 健康检查。 - GET
/v1/mcp/project/{project_id}/sse(旧版):打开项目范围的 MCP SSE。 - POST
/v1/mcp/project/{project_id}(旧版):向项目 MCP 服务器发送消息。 - PATCH
/v1/mcp/project/{project_id}:更新工作流的 MCP 设置和项目认证设置。 - POST
/v1/mcp/project/{project_id}/install:为 Cursor/Windsurf/Claude 安装 MCP 客户端配置(仅限本地)。 - GET
/v1/mcp/project/{project_id}/installed:检查哪些客户端已安装 MCP 配置。
- HEAD
-
自定义组件:在为您自己使用或与 Langflow 社区分享而开发自定义 Langflow 组件时,您可能会用到这些端点
- GET
/v1/all:返回所有可用的 Langflow 组件类型。参见 获取所有组件。 - POST
/v1/custom_component:从代码构建自定义组件并返回其节点。 - POST
/v1/custom_component/update:更新现有自定义组件的构建配置和输出。 - POST
/v1/validate/code:为自定义组件验证 Python 代码片段。 - POST
/v1/validate/prompt:验证提示词有效负载。
- GET
以下端点已弃用
- POST
/v1/predict/{flow_id}:请改用/v1/run/{flow_id}。 - POST
/v1/process/{flow_id}:请改用/v1/run/{flow_id}。 - GET
/v1/task/{task_id}:已弃用的功能。 - POST
/v1/upload/{flow_id}:请改用/files。 - POST
/v1/build/{flow_id}/vertices:由/monitor/builds取代。 - POST
/v1/build/{flow_id}/vertices/{vertex_id}:由/monitor/builds取代。 - GET
/v1/build/{flow_id}/{vertex_id}/stream:由/monitor/builds取代。 - GET
/v1/store/check/:返回 Store 功能是否已启用。 - GET
/v1/store/check/api_key:检查 Store API 密钥是否存在且有效。 - POST
/v1/store/components/:将组件分享到 Store。 - PATCH
/v1/store/components/{component_id}:更新已分享的组件。 - GET
/v1/store/components/:列出可用的 Store 组件(支持过滤)。 - GET
/v1/store/components/{component_id}:从 Store 下载组件。 - GET
/v1/store/tags:列出 Store 标签。 - GET
/v1/store/users/likes:列出当前用户喜欢的组件。 - POST
/v1/store/users/likes/{component_id}:点赞一个组件。
下一步
- 使用 Langflow API 运行工作流。
- 使用 Langflow API 上传文件。
- 使用 Langflow API 获取工作流日志。
- 在 Langflow API 规范中探索所有端点。