您可以使用 Cloud Run 將 Firebase Genkit 流程部署為網路服務。本頁面 ,逐步引導您部署預設範例 流程
使用以下程式碼建立新的 Google Cloud 專案: Cloud 控制台,或選擇現有的資源。 專案必須連結至帳單帳戶。
建立或選擇專案後,請設定要使用的 Google Cloud CLI 它:
gcloud auth login
gcloud init
為 Genkit 範例專案建立目錄:
mkdir -p ~/tmp/genkit-cloud-project
cd ~/tmp/genkit-cloud-project
如果您要使用 IDE,請將其開啟至這個目錄。
在專案目錄中初始化 Go 模組:
go mod init example/cloudrun
在專案中初始化 Genkit:
genkit init
選取要使用的模型供應商。
接受其餘提示的預設值。
genkit
工具會建立 範例來源檔案,協助您開始開發自己的 AI 流程。 但在本教學課程的其餘部分,您將直接部署範例流程。請編輯範例檔案 (
main.go
或genkit.go
) 來明確指定 流量伺服器應監聽的通訊埠:if err := genkit.Init(ctx, &genkit.Options{FlowAddr: ":3400"}, // Add this parameter. ); err != nil { log.Fatal(err) }
將 API 憑證提供給您部署的函式。執行下列任一操作: 視您選擇的模型供應商而定:
Gemini (Google AI)
Google AI 就是 僅適用於您所在的地區。
產生 API 金鑰: 或 Google AI Studio 建立 Gemini API
在 Cloud Run 環境中提供 API 金鑰:
- 在 Cloud 控制台中,啟用 Secret Manager API。
- 每月中的特定幾天 Secret Manager 頁面中,建立包含 API 金鑰的新密鑰。
- 建立密鑰後,在同一個頁面中授予預設密鑰 是「運算服務帳戶」可存取密鑰的 Secret Manager Secret 存取者角色。(您可以查詢名稱 預設運算服務帳戶)。
在後續步驟中部署服務時 參照這個密鑰的名稱
Gemini (Vertex AI)
在 Cloud 控制台中 啟用 Vertex AI API 。
在 IAM 頁面中 頁面,確認已授予預設運算服務帳戶 「Vertex AI 使用者」角色
在這個教學課程中,您只需要為模型設定密鑰 但整體而言,您必須為每個服務進行類似的操作 以及流程使用的容器
選用:請在開發人員 UI 中試用您的流程:
為您選擇的模型供應商設定本機環境:
Gemini (Google AI)
export GOOGLE_GENAI_API_KEY=<your API key>
Gemini (Vertex AI)
export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
gcloud auth application-default login
啟動使用者介面:
genkit start
在開發人員使用者介面 (http://localhost:4000/) 中,執行流程:
按一下「menusuggestionFlow」。
在「Input JSON」(輸入 JSON) 分頁中,提供模型的主旨:
"banana"
按一下「執行」。
如果一切運作正常,則可建構及部署 流程:
Gemini (Google AI)
gcloud run deploy --port 3400 \ --update-secrets=GOOGLE_GENAI_API_KEY=<your-secret-name>:latest
Gemini (Vertex AI)
gcloud run deploy --port 3400 \ --set-env-vars GCLOUD_PROJECT=<your-gcloud-project> \ --set-env-vars GCLOUD_LOCATION=us-central1
(
GCLOUD_LOCATION
會設定要使用的 Vertex API 區域)。當系統詢問您是否要允許未經驗證的叫用時,請選擇「
N
」。 回答N
之後,服務就會設為需要 IAM 憑證。詳情請見 身分驗證 ,瞭解如何提供這些憑證。
部署作業完成後,工具會顯示服務網址。您可以測試
加入 curl
:
curl -X POST https://<service-url>/menuSuggestionFlow \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" -d '"banana"'