搭配 Cloud Run 使用 Firebase Genkit

您可以使用 Cloud Run,將 Firebase Genkit 流程部署為網路服務。本頁範例將逐步引導您完成部署預設範例流程的程序。

  1. 安裝必要工具:

    1. 確認您使用的是 Node.js 20 以上版本 (請執行 node --version 檢查)。

    2. 安裝 Google Cloud CLI

  2. 使用 Cloud 控制台建立新的 Google Cloud 專案,或選擇現有專案。專案必須連結至帳單帳戶。

    建立或選擇專案後,請設定 Google Cloud CLI 來使用:

    gcloud init
    
  3. 為 Genkit 範例專案建立目錄:

    mkdir -p ~/tmp/genkit-cloud-project
    cd ~/tmp/genkit-cloud-project
    

    如要使用 IDE,請將其開啟並進入這個目錄。

  4. 在專案目錄中初始化 Node.js 專案:

    npm init -y
    
  5. 初始化 Node.js 專案中的 Genkit:

    genkit init
    
    • 選取「Google Cloud」做為部署平台。
    • 選取您要使用的模型提供者。

    接受其餘提示的預設值。genkit 工具會建立一些範例來源檔案,協助您開始開發自己的 AI 流程。不過,在本教學課程的其餘部分,您將只部署範例流程。

  6. 為已部署的函式提供 API 憑證。請根據您選擇的模型供應商,執行下列其中一項操作:

    Gemini (Google AI)

    1. 確認您所在的地區支援 Google AI

    2. 使用 Google AI Studio 為 Gemini API 產生 API 金鑰

    3. 提供 API 金鑰在 Cloud Run 環境中使用:

      1. 在 Cloud 控制台中,啟用 Secret Manager API
      2. Secret Manager 頁面中,建立包含 API 金鑰的新密鑰。
      3. 建立密鑰之後,在同一個頁面中,使用 Secret Manager Secret Accessor 角色將密鑰的存取權授予預設的運算服務帳戶。如有需要,您可以在「IAM」頁面中查詢預設運算服務帳戶的名稱。

      在後續步驟中,當您部署服務時,您會需要參照這個密鑰的名稱。

    4. 選用:如果您想在本機執行資料流,如同在下一個步驟中一樣,請將 GOOGLE_GENAI_API_KEY 環境變數設為金鑰:

      export GOOGLE_GENAI_API_KEY=<your API key>
      

    Gemini (Vertex AI)

    1. 在 Cloud 控制台中,為專案啟用 Vertex AI API

    2. 在「IAM」頁面中,確認「Default Compute Service 帳戶」已獲得 Vertex AI 使用者角色。

    3. 選用:如果您想在本機執行資料流,請按照下一個步驟設定其他環境變數,並使用 gcloud 工具設定應用程式預設憑證:

      export GCLOUD_PROJECT=<your project ID>
      export GCLOUD_LOCATION=us-central1
      gcloud auth application-default login
      

    本教學課程需要設定的唯一密鑰適用於模型提供者,但一般而言,您必須針對流程使用的各項服務執行類似操作。

  7. 選擇性步驟:請在開發人員 UI 中試用流程:

    1. 啟動使用者介面:

      genkit start
      
    2. 在開發人員 UI (http://localhost:4000/) 中執行流程:

      1. 按一下「menusuggestionFlow」

      2. 在「輸入 JSON」分頁中,提供模型的主旨:

        "banana"
        
      3. 按一下「執行」

  8. 如果目前一切運作正常,您可以建構及部署流程:

    Gemini (Google AI)

    npm run build
    gcloud run deploy --update-secrets=GOOGLE_GENAI_API_KEY=<your-secret-name>:latest
    

    Gemini (Vertex AI)

    npm run build
    gcloud run deploy
    

    當系統詢問是否要允許未經驗證的叫用時,請選擇 N。回應 N 會將您的服務設為需要 IAM 憑證。如要瞭解如何提供這些憑證,請參閱 Cloud Run 文件中的驗證

部署完成後,工具會輸出服務網址。您可以使用 curl 進行測試:

curl -X POST https://<service-url>/menuSuggestionFlow \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" -d '{"data": "banana"}'