Men-deploy flow ke semua platform app hosting

Anda bisa men-deploy flow Firebase Genkit sebagai layanan web menggunakan layanan apa pun yang dapat menghosting program biner Go. Halaman ini, sebagai contoh, akan memandu Anda melalui proses umum penerapan flow contoh default, dan menunjukkan di mana tindakan khusus penyedia diperlukan.

  1. 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.

  2. Inisialisasi modul Go di direktori project Anda:

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

    genkit init

    Pilih penyedia model yang ingin Anda gunakan.

    Terima setelan default untuk prompt yang tersisa. Alat genkit akan membuat contoh file sumber agar Anda dapat mulai mengembangkan flow AI Anda sendiri. Namun, untuk bagian selanjutnya dari tutorial ini, Anda hanya akan men-deploy contoh flow.

  4. Edit file contoh (main.go atau genkit.go) untuk menentukan port secara eksplisit yang harus diproses oleh server flow:

    if err := genkit.Init(ctx,
    	&genkit.Options{FlowAddr: ":3400"}, // Add this parameter.
    ); err != nil {
    	log.Fatal(err)
    }
    

    Jika penyedia mengharuskan Anda untuk melakukan proses di port tertentu, pastikan Genkit dikonfigurasi secara tepat.

  5. Terapkan beberapa bentuk autentikasi dan otorisasi untuk membatasi akses ke flow yang akan Anda deploy.

    Karena sebagian besar layanan AI generatif bersifat berbayar, kemungkinan besar Anda tidak ingin mengizinkan akses terbuka ke setiap endpoint yang memanggilnya. Beberapa layanan hosting menyediakan lapisan autentikasi sebagai frontend untuk aplikasi yang di-deploy di sana, yang dapat Anda gunakan untuk tujuan ini.

  6. Sediakan kredensial API untuk fungsi yang Anda deploy. Tergantung pada penyedia model yang Anda pilih, lakukan salah satu hal berikut ini:

    Gemini (AI Google)

    1. Pastikan AI Google tersedia di region Anda.

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

    3. Sediakan kunci API di lingkungan yang di-deploy.

      Sebagian besar host aplikasi menyediakan beberapa sistem untuk menangani secret secara aman seperti kunci API. Sering kali, secret ini tersedia untuk aplikasi Anda dalam bentuk variabel lingkungan. Jika Anda dapat menetapkan kunci API ke variabel GOOGLE_GENAI_API_KEY, Genkit akan otomatis menggunakannya. Jika tidak, Anda harus mengubah panggilan googleai.Init() agar secara eksplisit menyetel kuncinya. (Tapi jangan sematkan kunci secara langsung di dalam kode. Gunakan fasilitas pengelolaan secret yang disediakan oleh penyedia hosting Anda.)

    Gemini (Vertex AI)

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

    2. Di halaman IAM, buat akun layanan untuk mengakses API Vertex AI jika Anda belum memilikinya.

      Berikan peran Vertex AI User ke akun tersebut.

    3. Siapkan Kredensial Default Aplikasi di lingkungan hosting Anda.

    4. Konfigurasikan plugin dengan project ID Google Cloud dan lokasi Vertex AI API yang ingin Anda gunakan. Anda dapat melakukannya dengan menyetel variabel lingkungan GCLOUD_PROJECT dan GCLOUD_LOCATION di lingkungan hosting, atau dalam panggilan vertexai.Init() Anda.

    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.

  7. Opsional: Coba flow 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 flow:

      1. Klik menuSuggestionFlow.

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

        "banana"
        
      3. Klik Run.

  8. Jika semuanya telah berfungsi seperti yang diharapkan, Anda bisa membangun dan men-deploy flow menggunakan alat penyedia Anda.