Skip to main content

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:


_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 提供 AgentBuilder API。

遠端託管的 AgentBuilder 部署可在託管服務設定的網域取得,例如 http://IP_OR_DNS/api 或 http://IP_OR_DNS:LANGFLOW_PORT/api。

您可以在 LANGFLOW_PORT 環境變數 中配置 AgentBuilder 連接埠號碼。

  • https://UUID.ngrok.app/api
  • http://IP_OR_DNS/api
  • http://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
# 設定環境變數
_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
}'

AgentBuilder API 請求中常用的值包括您的 AgentBuilder 伺服器 URL、AgentBuilder API 金鑰、 Flow ID 和 專案 ID。

您可以從 API access 窗格、 Flow的 URL 以及使用 GET /flows 檢索 Flow ID。

嘗試一些 AgentBuilder API 請求​

一旦您有 AgentBuilder 伺服器 URL,請嘗試調用這些返回 AgentBuilder 元資料的 EndPoint。

健康檢查​

返回 AgentBuilder 資料庫和聊天服務的健康狀態:


_10
curl -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 版本:


_10
curl -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 部署的配置詳細資訊:


_10
curl -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 金鑰。


_10
curl -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管理。

  • 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。
  • OpenAI Responses API:

    • POST /v1/responses:使用 OpenAI 相容的請求格式執行FLOW。
  • 部署詳細資訊:

    • GET /v1/version:返回 AgentBuilder 版本。請參閱 獲取版本。
    • GET /v1/config:返回部署配置。請參閱 獲取配置。
    • GET /health_check:驗證資料庫和聊天服務連接的健康檢查端點。如果任何服務不可用,則返回 500 狀態。
  • 專案端點:

    • 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/:返回模板列表。
  • 檔案端點:

    • 檔案 (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刪除檔案。
    • 檔案 (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)。
  • FLOW管理端點:

    • 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 /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}:刪除使用者(不能刪除自己)。
  • 自訂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 程式碼片段。

下一步​

Search