Firebase Genkit dengan Cloud Run

Anda dapat men-deploy alur Firebase Genkit sebagai layanan web menggunakan Cloud Run. Halaman ini, sebagai contoh, akan memandu Anda melalui proses deployment alur contoh default.

  1. Instal alat yang diperlukan:

    1. Pastikan Anda menggunakan Node.js versi 20 atau yang lebih baru (jalankan node --version untuk memeriksa).

    2. Instal Google Cloud CLI.

  2. Buat project Google Cloud baru menggunakan Cloud Console atau pilih yang sudah ada. Project harus ditautkan ke akun penagihan.

    Setelah membuat atau memilih project, konfigurasikan Google Cloud CLI untuk menggunakannya:

    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 project Node.js di direktori project Anda:

    npm init -y
    
  5. Inisialisasi Genkit di project Node.js Anda:

    genkit init
    
    • Pilih Google Cloud sebagai platform deployment.
    • Pilih penyedia model yang ingin Anda gunakan.

    Setujui setelan default untuk dialog lainnya. Alat genkit akan membuat beberapa file sumber contoh untuk membantu Anda mulai mengembangkan alur AI Anda sendiri. Namun, untuk sisa tutorial ini, Anda hanya akan men-deploy contoh alur.

  6. Menyediakan kredensial API untuk fungsi yang di-deploy. Lakukan salah satu hal berikut, bergantung pada penyedia model yang Anda pilih:

    Gemini (AI Google)

    1. Pastikan Google AI tersedia di wilayah Anda.

    2. Buat 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. Di halaman Secret Manager, buat secret baru yang berisi kunci API Anda.
      3. Setelah Anda membuat secret, di halaman yang sama, beri akun layanan komputasi default Anda akses ke secret dengan peran Secret Manager Secret Accessor. (Anda dapat mencari nama akun layanan komputasi default di halaman IAM.)

      Pada langkah selanjutnya, saat men-deploy layanan, Anda perlu merujuk ke nama secret ini.

    4. Opsional: Jika Anda ingin menjalankan flow secara lokal, seperti pada langkah berikut, tetapkan variabel lingkungan GOOGLE_GENAI_API_KEY ke kunci Anda:

      export GOOGLE_GENAI_API_KEY=<your API key>
      

    Gemini (Vertex AI)

    1. Di Konsol Cloud, Aktifkan Vertex AI API untuk project Anda.

    2. Di halaman IAM, pastikan Akun layanan komputasi default diberi peran Vertex AI User.

    3. Opsional: Jika Anda ingin menjalankan alur secara lokal, seperti pada langkah berikutnya, tetapkan beberapa variabel lingkungan tambahan dan gunakan alat gcloud untuk menyiapkan kredensial default aplikasi:

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

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

  7. Opsional: Coba alur Anda di UI developer:

    1. Mulai UI:

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

      1. Klik menuSuggestionFlow.

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

        "banana"
        
      3. Klik Run.

  8. Jika semuanya berfungsi seperti yang diharapkan sejauh ini, Anda dapat mem-build dan men-deploy flow:

    Gemini (AI Google)

    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
    

    Pilih N saat ditanya apakah Anda ingin mengizinkan pemanggilan yang tidak diautentikasi. Menjawab N akan mengonfigurasi layanan Anda untuk mewajibkan kredensial IAM. Lihat Authentication dalam dokumen Cloud Run untuk mengetahui informasi tentang cara memberikan kredensial ini.

Setelah deployment selesai, alat ini 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 '{"data": "banana"}'