Firebase Genkit dengan Cloud Run

Anda dapat men-deploy flow Firebase Genkit sebagai layanan web menggunakan Cloud Run. Halaman ini, sebagai contoh, memandu Anda dalam proses men-deploy sampel default alur kerja.

  1. Instal Google Cloud CLI jika yang belum Anda lakukan.

  2. 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 yang akan digunakan hal tersebut:

    gcloud auth login
    gcloud init
    
  3. 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.

  4. Inisialisasi modul Go di direktori project Anda:

    go mod init example/cloudrun
    
  5. Inisialisasi Genkit di project Anda:

    genkit init
    

    Pilih penyedia model yang ingin Anda gunakan.

    Setujui default untuk perintah yang tersisa. Alat genkit akan membuat contoh file sumber untuk membantu Anda mulai mengembangkan alur AI Anda sendiri. Namun, untuk sisa tutorial ini, Anda hanya akan men-deploy contoh alur.

  6. Edit file contoh (main.go atau genkit.go) untuk menentukan atribut secara eksplisit port yang harus dipantau oleh server alur:

    if err := genkit.Init(ctx,
        &genkit.Options{FlowAddr: ":3400"}, // Add this parameter.
    ); err != nil {
        log.Fatal(err)
    }
    
  7. Sediakan kredensial API untuk fungsi yang Anda deploy. Lakukan salah satu berikut ini, bergantung pada penyedia model yang Anda pilih:

    Gemini (AI Google)

    1. Pastikan AI Google mudah tersedia di wilayah Anda.

    2. Membuat kunci API untuk Gemini API menggunakan Google AI Studio.

    3. Sediakan kunci API di lingkungan Cloud Run:

      1. Di Konsol Cloud, aktifkan Secret Manager API.
      2. Pada Secret Manager halaman, buat rahasia baru yang berisi kunci API Anda.
      3. Setelah Anda membuat rahasia, di halaman yang sama, berikan izin akses akun layanan komputasi ke secret dengan Peran Secret Manager Secret Accessor. (Anda bisa mencari namanya akun layanan komputasi default di halaman IAM.)

      Pada langkah selanjutnya, saat men-deploy layanan, Anda harus mereferensikan nama rahasia ini.

    Gemini (Vertex AI)

    1. Di konsol Cloud, Mengaktifkan Vertex AI API untuk proyek Anda.

    2. Pada IAM pastikan bahwa Akun layanan komputasi default diberikan peran Vertex AI User.

    Satu-satunya rahasia yang perlu Anda siapkan untuk tutorial ini adalah untuk model tetapi secara umum, Anda harus melakukan hal yang sama untuk setiap layanan digunakan oleh alur Anda.

  8. Opsional: Coba alur Anda di UI developer:

    1. Siapkan lingkungan lokal untuk penyedia model yang Anda pilih:

      Gemini (AI Google)

      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
      
    2. Mulai UI:

      genkit start
      
    3. Di UI developer (http://localhost:4000/), jalankan alurnya:

      1. Klik menuSuggestionFlow.

      2. Di tab Input JSON, berikan subjek untuk model:

        "banana"
        
      3. Klik Run.

  9. Jika semuanya telah berfungsi seperti yang diharapkan, Anda bisa membangun dan men-deploy {i>flow<i} (alur):

    Gemini (AI Google)

    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 mengonfigurasi region Vertex API yang ingin Anda gunakan.)

    Pilih N saat ditanya apakah Anda ingin mengizinkan pemanggilan yang tidak diautentikasi. Menjawab N 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 menguji dengan curl:

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