您可以使用 Cloud Run 將 Genkit 流程部署為網頁服務。本頁面會逐步引導您部署預設範例流程。
如果尚未安裝 Google Cloud CLI,請先安裝。
使用 Cloud 控制台建立新的 Google 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
go mod get github.com/firebase/genkit/go
使用 Genkit 建立範例應用程式:
package main import ( "context" "fmt" "log" "net/http" "os" "github.com/firebase/genkit/go/ai" "github.com/firebase/genkit/go/genkit" "github.com/firebase/genkit/go/plugins/googlegenai" "github.com/firebase/genkit/go/plugins/server" ) func main() { ctx := context.Background() // Initialize Genkit with the Google AI plugin and Gemini 2.0 Flash. // Alternatively, use &googlegenai.VertexAI{} and "vertexai/gemini-2.0-flash" // to use Vertex AI as the provider instead. g, err := genkit.Init(ctx, genkit.WithPlugins(&googlegenai.GoogleAI{}), genkit.WithDefaultModel("googleai/gemini-2.0-flash"), ) if err != nil { log.Fatalf("failed to initialize Genkit: %w", err) } flow := genkit.DefineFlow(g, "jokesFlow", func(ctx context.Context, topic string) (string, error) { resp, err := genkit.Generate(ctx, g, ai.WithPrompt(`Tell a short joke about %s. Be creative!`, topic), ) if err != nil { return "", fmt.Errorf("failed to generate joke: %w", err) } return resp.Text(), nil }) mux := http.NewServeMux() mux.HandleFunc("POST /jokesFlow", genkit.Handler(flow)) log.Fatal(server.Start(ctx, "127.0.0.1:"+os.Getenv("PORT"), mux)) }
為已部署的函式提供 API 憑證。根據上述範例中的選擇,選擇所需的憑證:
Gemini (Google AI)
請確認 Google AI 在您所在的地區可用。
使用 Google AI Studio 產生 Gemini API 的 API 金鑰。
在 Cloud Run 環境中提供 API 金鑰:
- 在 Cloud 控制台中啟用 Secret Manager API。
- 在「Secret Manager」頁面上,建立包含 API 金鑰的新密鑰。
- 建立 Secret 後,請在同一個頁面上,授予預設的運算服務帳戶 Secret Manager 密鑰存取者角色,以便存取 Secret。(您可以在 IAM 頁面中查詢預設運算服務帳戶的名稱)。
在後續步驟中,當您部署服務時,需要參照此密鑰的名稱。
Gemini (Vertex AI)
在 Cloud 控制台中,為專案啟用 Vertex AI API。
您只需為本教學課程的模型供應器設定一個機密,但一般來說,您必須為流程使用的每項服務執行類似的操作。
選用:在開發人員 UI 中試用流程:
為所選模型供應商設定本機環境:
Gemini (Google AI)
export GEMINI_API_KEY=<your API key>
Gemini (Vertex AI)
export GOOGLE_CLOUD_PROJECT=<your project ID>
export GOOGLE_CLOUD_LOCATION=us-central1
gcloud auth application-default login
啟動 UI:
genkit start -- go run .
在開發人員 UI (http://localhost:4000/) 中執行流程:
按一下「jokesFlow」。
在「輸入 JSON」分頁中,提供模型的主題:
"bananas"
按一下「執行」。
如果一切運作正常,您可以建構及部署流程:
Gemini (Google AI)
gcloud run deploy --port 3400 \ --update-secrets=GEMINI_API_KEY=<your-secret-name>:latest
Gemini (Vertex AI)
gcloud run deploy --port 3400 \ --set-env-vars GOOGLE_CLOUD_PROJECT=<your-gcloud-project> \ --set-env-vars GOOGLE_CLOUD_LOCATION=us-central1
(
GOOGLE_CLOUD_LOCATION
會設定您要使用的 Vertex API 區域)。系統詢問是否要允許未經驗證的叫用時,請選擇
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 '"bananas"'