Anda dapat men-deploy flow Genkit sebagai layanan web menggunakan Cloud Run. Halaman ini, sebagai contoh, akan memandu Anda melalui proses deployment flow sampel default.
Instal Google Cloud CLI jika Anda belum melakukannya.
Buat project Google Cloud baru menggunakan Konsol Cloud atau pilih yang sudah ada. Project harus ditautkan ke akun penagihan.
Setelah membuat atau memilih project, konfigurasikan Google Cloud CLI untuk menggunakannya:
gcloud auth login
gcloud init
Buat direktori untuk project contoh Genkit:
mkdir -p ~/tmp/genkit-cloud-project
cd ~/tmp/genkit-cloud-project
Jika Anda akan menggunakan IDE, buka direktori ini.
Lakukan inisialisasi modul Go di direktori project Anda:
go mod init example/cloudrun
go mod get github.com/firebase/genkit/go
Buat aplikasi contoh menggunakan 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)) }
Sediakan kredensial API untuk fungsi yang Anda deploy. Pilih kredensial yang diperlukan berdasarkan pilihan Anda dalam contoh di atas:
Gemini (AI Google)
Pastikan AI Google tersedia di region Anda.
Buat kunci API untuk Gemini API menggunakan Google AI Studio.
Sediakan kunci API di lingkungan Cloud Run:
- Di Konsol Cloud, aktifkan Secret Manager API.
- Pada halaman Secret Manager, buat secret baru yang berisi kunci API Anda.
- Setelah Anda membuat secret di halaman yang sama, berikan akses akun layanan komputasi default ke secret tersebut dengan peran Secret Manager Secret Accessor. (Anda bisa mencari nama akun layanan komputasi default di halaman IAM.)
Pada langkah selanjutnya, saat men-deploy layanan, Anda harus mereferensikan nama secret ini.
Gemini (Vertex AI)
Di Konsol Cloud, Aktifkan API Vertex AI untuk project Anda.
Pada halaman IAM, pastikan bahwa Akun layanan komputasi default diberikan peran Vertex AI User.
Satu-satunya secret yang perlu Anda siapkan untuk tutorial ini adalah untuk penyedia model, tetapi secara umum, Anda harus melakukan hal serupa untuk setiap layanan yang digunakan oleh flow Anda.
Opsional: Coba flow Anda di UI developer:
Siapkan lingkungan lokal untuk penyedia model yang Anda pilih:
Gemini (AI Google)
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
Mulai UI:
genkit start -- go run .
Di UI developer (http://localhost:4000/), jalankan flow:
Klik jokesFlow.
Di tab Input JSON, berikan subjek untuk model:
"bananas"
Klik Run.
Jika semuanya telah berfungsi seperti yang diharapkan, Anda bisa membangun dan men-deploy flow:
Gemini (AI Google)
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
mengonfigurasi region Vertex API yang ingin Anda gunakan.)Pilih
N
saat ditanya apakah Anda ingin mengizinkan pemanggilan yang tidak diautentikasi. MenjawabN
akan mengonfigurasi layanan Anda agar memerlukan kredensial IAM. Lihat Autentikasi di dokumen Cloud Run untuk mengetahui informasi tentang cara memberikan kredensial ini.
Setelah deployment selesai, alat akan mencetak URL layanan. Anda dapat mengujinya
dengan curl
:
curl -X POST https://<service-url>/menuSuggestionFlow \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" -d '"bananas"'