Skip to main content

AgentBuilder 生產環境

AgentBuilder 運行時 Helm chart 是專為在生產環境中部署應用程式而設計的。它專注於穩定性、效能、隔離和安全性,以確保應用程式可靠且高效運行。

warning

出於安全原因,預設的 AgentBuilder 運行時 Helm chart 設定 readOnlyRootFilesystem: true。此設定在運行時防止修改容器的根檔案系統,這是生產環境中推薦的安全措施。

如果 readOnlyRootFilesystem 被停用(false),它會降低您的部署安全性姿勢。只有在您了解安全影響並已實施其他安全措施時,才停用此設定。

更多資訊請參閱 Kubernetes 文件

先決條件

安裝 AgentBuilder 運行時 Helm chart

  1. 將儲存庫新增到 Helm:


    _10
    helm repo add langflow https://langflow-ai.github.io/langflow-helm-charts
    _10
    helm repo update

  2. 使用預設選項在 langflow 命名空間中安裝 AgentBuilder 應用程式。

    如果您有包含打包FLOW的自訂映像,您可以通過使用 --set 旗標覆蓋預設的 values.yaml 來部署 AgentBuilder:


    _10
    helm install my-langflow-app langflow/langflow-runtime -n langflow --create-namespace --set image.repository=myuser/langflow-hello-world --set image.tag=1.0.0

  3. 檢查 pod 的狀態:


    _10
    kubectl get pods -n langflow

存取 AgentBuilder 運行時

  1. 取得您的服務名稱:


    _10
    kubectl get svc -n langflow

    服務名稱是您的發行名稱加上 -langflow-runtime 後綴。例如,如果您使用 helm install my-langflow-app-with-flow,則服務名稱是 my-langflow-app-with-flow-langflow-runtime

  2. 啟用端口轉發以從您的本機機器存取 AgentBuilder:


    _10
    kubectl port-forward -n langflow svc/my-langflow-app-with-flow-langflow-runtime 7860:7860

  3. 通過呼叫 http://localhost:7860/api/v1/flows/ 確認您可以存取 API:


    _10
    curl -v http://localhost:7860/api/v1/flows/

    成功的請求會返回FLOW列表。

  4. 運行打包的FLOW。 以下範例從FLOW列表中取得第一個FLOW ID,然後運行該FLOW:


    _12
    # 取得FLOW ID
    _12
    id=$(curl -s "http://localhost:7860/api/v1/flows/" | jq -r '.[0].id')
    _12
    _12
    # 運行FLOW
    _12
    curl -X POST \
    _12
    "http://localhost:7860/api/v1/run/$id?stream=false" \
    _12
    -H 'Content-Type: application/json' \
    _12
    -d '{
    _12
    "input_value": "Hello!",
    _12
    "output_type": "chat",
    _12
    "input_type": "chat"
    _12
    }'

配置秘密和環境變數

使用 AgentBuilder 運行時 Helm chart 的 values.yaml 檔案的 .env 部分來定義您的 AgentBuilder 部署的環境變數。 這包括內建的 AgentBuilder 環境變數,以及您的FLOW使用的全域變數

AgentBuilder 可以從您的運行時環境中取得全域變數,例如在 values.yaml 中引用的 Kubernetes 秘密。 例如,AgentBuilder 運行時 Helm chart 的範例FLOW JSON 使用了一個作為秘密的全域變數。 如果您想在 Kubernetes 上的 AgentBuilder 部署中運行此FLOW,您需要在運行時配置中包含該秘密。

tip

當您將FLOW匯出為 JSON 檔案時,建議省略秘密。 秘密是否包含取決於您在FLOW中如何宣告秘密,以及是否使用 Save with my API keys 選項。 更多資訊請參閱匯入和匯出FLOW

設定秘密

Kubernetes 秘密是儲存敏感值和憑證的推薦方式。

values.yaml 中使用 secretKeyRef 引用 Kubernetes 秘密:


_10
env:
_10
- name: OPENAI_API_KEY
_10
valueFrom:
_10
secretKeyRef:
_10
name: openai-credentials
_10
key: openai-key

使用 kubectlhelm 建立和設定秘密

您可以使用 kubectlhelm 命令來建立和設定秘密:

  1. 建立秘密:


    _10
    kubectl create secret generic openai-credentials \
    _10
    --namespace langflow \
    _10
    --from-literal=OPENAI_API_KEY=sk...

  2. 驗證秘密存在:


    _10
    kubectl get secrets -n langflow openai-credentials

    結果是加密的。

  3. 升級 Helm 發行以使用秘密:


    _10
    helm upgrade my-langflow-app-image langflow/langflow-runtime -n langflow \
    _10
    --reuse-values \
    _10
    --set "extraEnv[0].name=OPENAI_API_KEY" \
    _10
    --set "extraEnv[0].valueFrom.secretKeyRef.name=openai-credentials" \
    _10
    --set "extraEnv[0].valueFrom.secretKeyRef.key=OPENAI_API_KEY"

    如果您的 shell 需要,請跳脫方括號。

設定日誌等級和其他配置變數

對於非敏感變數,例如 LANGFLOW_LOG_LEVEL,您可以直接在 values.yaml 中設定值:


_10
env:
_10
- name: LANGFLOW_LOG_LEVEL
_10
value: "INFO"

配置擴展

在 AgentBuilder 運行時 Helm chart 的 values.yaml 檔案中使用 replicaCountresources 來配置擴展:

  • 水平擴展:使用 replicaCount 設定您的 AgentBuilder 部署的複本數量。


    _10
    replicaCount: 3

  • 垂直擴展:使用 resources 部分根據您的應用程式需求調整 pod 資源。


    _10
    resources:
    _10
    requests:
    _10
    memory: "2Gi"
    _10
    cpu: "1000m"

另請參閱

Search