Get started with the AgentBuilder API
您可以使用 AgentBuilder API 進行與 AgentBuilder 的程式化互動,例如以下用途:
- 建立和編輯 Flow,包括 Flow的檔案管理。
- 開發使用您的 Flow的應用程式。
- 開發自訂Components。
- 將 AgentBuilder 建置為更大應用程式、程式碼庫或服務的依賴項。
- 為整體 AgentBuilder 程式碼庫做出貢獻。
要查看和測試所有可用 EndPoint,您可以在 AgentBuilder 部署的 /docs EndPoint 存取 AgentBuilder API 的 OpenAPI 規範,例如 http://localhost:7860/docs。
有關 AgentBuilder API 在指令碼中的示例,請參閱 AgentBuilder 快速入門。
快速入門演示了如何為您的 Flow獲取自動生成的程式碼片段、使用指令碼運行 Flow,以及從 AgentBuilder API 回應中提取資料。
形成 AgentBuilder API 請求
雖然各 EndPoint 的選項各不相同,但 所有 AgentBuilder API 請求都共享一些共同點,如 URL、方法、參數和認證。
作為 AgentBuilder API 請求的示例,以下 curl 命令調用 /v1/run EndPoint,並將運行時覆蓋 (tweaks) 傳遞給 Flow的 Chat Output Components:
_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
預設情況下,本地部署在 http://localhost:7860/api 提供 AgentBuilder API。
遠端託管的 AgentBuilder 部署可在託管服務設定的網域取得,例如 http://IP_OR_DNS/api 或 http://IP_OR_DNS:LANGFLOW_PORT/api。
您可以在 LANGFLOW_PORT 環境變數 中配置 AgentBuilder 連接埠號碼。
https://UUID.ngrok.app/apihttp://IP_OR_DNS/apihttp://IP_OR_DNS:LANGFLOW_PORT/api
認證
在 AgentBuilder 1.5 及更高版本中,大多數 API EndPoint 需要使用 x-api-key 標頭或查詢參數中的 AgentBuilder API 金鑰進行認證。
有關更多資訊,請參閱 API 金鑰和認證。
與 任何 API 一樣,請遵循業界最佳實務來儲存和引用敏感憑證。 例如,您可以為您的 API 金鑰 設定環境變數,然後在您的 API 請求中引用這些環境變數。
方法、路徑和參數
AgentBuilder API 請求使用各種方法、路徑、路徑參數、查詢參數和主體參數。 具體要求和選項取決於您要調用的 EndPoint。
例如,要建立 Flow,您將 JSON 格式的 Flow定義傳遞給 POST /v1/flows。
然後,要運行您的 Flow,您使用請求主體中的可選運行參數調用 POST /v1/run/$FLOW_ID。
API 版本
AgentBuilder API 提供 /v1 和 /v2 EndPoint。
某些 EndPoint 僅在單一版本下存在,某些在 /v1 和 /v2 版本下都存在。
如果請求失敗或結果意外,請確保您的 EndPoint 路徑具有正確的版本。
設定環境變數
您可以在環境變數中儲存常用值,以促進重用、簡化權杖輪換,並安全地引用敏感值。
您可以使用任何您偏好的方法來設定環境變數,例如 export、.env、zshrc 或 .curlrc。
然後,在您的 API 請求中引用這些環境變數。
例如:
_22# 設定環境變數_22export LANGFLOW_API_KEY="sk..."_22export LANGFLOW_SERVER_URL="https://localhost: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}'
AgentBuilder API 請求中常用的值包括您的 AgentBuilder 伺服器 URL、AgentBuilder API 金鑰、 Flow ID 和 專案 ID。
您可以從 API access 窗格、 Flow的 URL 以及使用 GET /flows 檢索 Flow ID。
嘗試一些 AgentBuilder API 請求
一旦您有 AgentBuilder 伺服器 URL,請嘗試調用這些返回 AgentBuilder 元資料的 EndPoint。
健康檢查
返回 AgentBuilder 資料庫和聊天服務的健康狀態:
_10curl -X GET \_10 "$LANGFLOW_SERVER_URL/health_check" \_10 -H "accept: application/json"
Result
_10{_10 "status": "ok",_10 "chat": "ok",_10 "db": "ok"_10}
AgentBuilder 提供額外的 GET /health EndPoint。
此 EndPoint 由 uvicorn 在 AgentBuilder 完全初始化之前提供,因此不可靠用於檢查 AgentBuilder 服務健康。
獲取版本
返回當前 AgentBuilder API 版本:
_10curl -X GET \_10 "$LANGFLOW_SERVER_URL/api/v1/version" \_10 -H "accept: application/json"
Result
_10{_10 "version": "1.6.0",_10 "main_version": "1.6.0",_10 "package": "Langflow"_10}
獲取配置
返回您的 AgentBuilder 部署的配置詳細資訊:
_10curl -X GET \_10 "$LANGFLOW_SERVER_URL/api/v1/config" \_10 -H "accept: application/json"
Result
_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}
獲取所有Components
返回所有 AgentBuilder Components的字典。 需要 AgentBuilder API 金鑰。
_10curl -X GET \_10 "$LANGFLOW_SERVER_URL/api/v1/all" \_10 -H "accept: application/json" \_10 -H "x-api-key: $LANGFLOW_API_KEY"
可用 EndPoint
因為您可以將 AgentBuilder 作為 IDE(前端和後端)或運行時(無頭、後端專用)運行,它提供支援前端和後端操作的 EndPoint。 許多 EndPoint 用於前端和後端之間的協調、讀寫 AgentBuilder 資料庫,或啟用前端功能,如 Playground。 除非您正在為 AgentBuilder 程式碼庫做出貢獻,否則您不會直接調用大多數 AgentBuilder EndPoint。
對於應用程式開發,最常用的 EndPoint 是 /run 和 /webhook FLOW觸發 EndPoint。
對於某些用例,您可能會使用其他 EndPoint,例如 /files EndPoint 在FLOW中使用檔案。
為了幫助您探索可用 EndPoint,以下列表按主要用例排序,雖然某些 EndPoint 可能支援多個用例。
- 應用程式開發
- 程式碼庫開發
- 已棄用
以下端點對於使用 AgentBuilder 開發應用程式以及管理具有一個或多個使用者的 AgentBuilder 部署很有用。 您最常使用FLOW觸發端點。 其他端點對於特定用例很有幫助,例如無視覺編輯器的運行時部署中的管理員和FLOW管理。
-
- POST
/v1/run/{flow_id_or_name}:運行FLOW。 - POST
/v1/run/advanced/{flow_id}:進階運行,具有明確的inputs、outputs、tweaks和可選的session_id。 - POST
/v1/webhook/{flow_id_or_name}:通過 webhook 載荷觸發FLOW。
- POST
-
- POST
/v1/responses:使用 OpenAI 相容的請求格式執行FLOW。
- POST
-
部署詳細資訊:
-
專案端點:
- POST
/v1/projects/:建立專案。 - GET
/v1/projects/:列出專案。 - GET
/v1/projects/{project_id}:讀取專案(支援分頁FLOW)。 - PATCH
/v1/projects/{project_id}:更新專案資訊和成員資格。 - DELETE
/v1/projects/{project_id}:刪除專案。 - GET
/v1/projects/download/{project_id}:將專案中的所有FLOW匯出為 ZIP。 - POST
/v1/projects/upload/:匯入專案 ZIP(建立專案和FLOW)。 - GET
/v1/starter-projects/:返回模板列表。
- POST
-
檔案端點:
- 檔案 (v1)
- POST
/v1/files/upload/{flow_id}:將檔案上傳到特定FLOW。 - GET
/v1/files/download/{flow_id}/{file_name}:從FLOW下載檔案。 - GET
/v1/files/images/{flow_id}/{file_name}:從FLOW串流圖像。 - GET
/v1/files/profile_pictures/{folder_name}/{file_name}:獲取個人資料圖片資產。 - GET
/v1/files/profile_pictures/list:列出可用的個人資料圖片資產。 - GET
/v1/files/list/{flow_id}:列出FLOW的檔案。 - DELETE
/v1/files/delete/{flow_id}/{file_name}:從FLOW刪除檔案。
- 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/:建立FLOW。 - GET
/v1/flows/:列出FLOW(支援分頁和篩選器)。 - GET
/v1/flows/{flow_id}:按 ID 讀取FLOW。 - GET
/v1/flows/public_flow/{flow_id}:按 ID 讀取公開FLOW。 - PATCH
/v1/flows/{flow_id}:更新FLOW。 - DELETE
/v1/flows/{flow_id}:刪除FLOW。 - POST
/v1/flows/batch/:建立多個FLOW。 - POST
/v1/flows/upload/:從 JSON 檔案匯入FLOW。 - DELETE
/v1/flows/:按 ID 刪除多個FLOW。 - POST
/v1/flows/download/:將FLOW匯出到 ZIP 檔案。 - GET
/v1/flows/basic_examples/:列出基本示例FLOW。
- 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
-
自訂Components:當開發自訂 AgentBuilder Components供自己使用或與 AgentBuilder 社群分享時,您可能會使用這些端點:
- GET
/v1/all:返回所有可用的 AgentBuilder Components類型。請參閱 獲取所有Components。 - POST
/v1/custom_component:從程式碼建置自訂Components並返回其節點。 - POST
/v1/custom_component/update:更新現有自訂Components的建置配置和輸出。 - POST
/v1/validate/code:驗證自訂Components的 Python 程式碼片段。
- GET
以下端點最常在為 AgentBuilder 程式碼庫做出貢獻時使用,以及當您需要理解或調用支援前端到後端協調或其他內部功能的端點時。
-
基礎(元資料):
- GET
/v1/all:返回所有可用的 AgentBuilder Components類型。請參閱 獲取所有Components。 - GET
/v1/version:返回 AgentBuilder 版本。請參閱 獲取版本。 - GET
/v1/config:返回部署配置。請參閱 獲取配置。 - GET
/v1/starter-projects/:返回模板列表。
- GET
-
建置端點(內部編輯器支援):
- POST
/v1/build/{flow_id}/flow:開始FLOW建置並返回作業 ID。 - GET
/v1/build/{job_id}/events:串流或擷取建置事件。 - POST
/v1/build/{job_id}/cancel:取消建置作業。 - POST
/v1/build_public_tmp/{flow_id}/flow:建置沒有認證的公開FLOW。 - POST
/v1/validate/prompt:驗證提示載荷。
- POST
-
- POST
/v1/login:登入並將權杖設定為 cookies。 - GET
/v1/auto_login:自動登入(如果啟用)並設定權杖。 - POST
/v1/refresh:使用重新整理 cookie 重新整理權杖。 - POST
/v1/refresh:登出並清除 cookies。
- POST
-
監視端點:
- GET
/v1/monitor/builds:獲取FLOW的頂點建置。 - DELETE
/v1/monitor/builds:刪除FLOW的頂點建置。 - 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:列出FLOW的交易(分頁)。
- 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}:將FLOW公開為工具的雙向語音會話。 - WS
/v1/voice/ws/flow_as_tool/{flow_id}/{session_id}:同上,具有明確的會話 ID。 - WS
/v1/voice/ws/flow_tts/{flow_id}:運行FLOW並返回 TTS 的語音到文字會話。 - WS
/v1/voice/ws/flow_tts/{flow_id}/{session_id}
- WS