Cloud Run ile Firebase Genkit

Cloud Run'ı kullanarak Firebase Genkit akışlarını web hizmetleri olarak dağıtabilirsiniz. Örnek olarak bu sayfa, varsayılan örnek akışını dağıtma sürecinde size yol gösterir.

  1. Gerekli araçları yükleyin:

    1. Node.js 20 veya sonraki bir sürümü kullandığınızdan emin olun (kontrol etmek için node --version komutunu çalıştırın).

    2. Google Cloud CLI'ı yükleyin.

  2. Cloud Console'u kullanarak yeni bir Google Cloud projesi oluşturun veya mevcut bir projeyi seçin. Proje bir faturalandırma hesabına bağlı olmalıdır.

    Bir proje oluşturduktan veya seçtikten sonra, bunu kullanması için Google Cloud KSA'yı yapılandırın:

    gcloud init
    
  3. Genkit örnek projesi için bir dizin oluşturun:

    mkdir -p ~/tmp/genkit-cloud-project
    cd ~/tmp/genkit-cloud-project
    

    IDE (Entegre Geliştirme Ortamı) kullanacaksanız IDE'yi bu dizinde açın.

  4. Proje dizininizde bir Node.js projesini başlatın:

    npm init -y
    
  5. Node.js projenizde Genkit'i başlatın:

    genkit init
    
    • Dağıtım platformu olarak Google Cloud'u seçin.
    • Kullanmak istediğiniz model sağlayıcıyı seçin.

    Kalan istemler için varsayılanları kabul edin. genkit aracı, kendi AI akışlarınızı geliştirmeye başlamanız için bazı örnek kaynak dosyalar oluşturur. Ancak bu eğiticinin geri kalanında yalnızca örnek akışı dağıtacaksınız.

  6. API kimlik bilgilerini dağıtılmış işlevinizin kullanımına sunun. Seçtiğiniz model sağlayıcıya bağlı olarak aşağıdakilerden birini yapın:

    Gemini (Google Yapay Zeka)

    1. Google AI'ın bölgenizde kullanılabildiğinden emin olun.

    2. Google AI Studio'yu kullanarak Gemini API için API anahtarı oluşturun.

    3. API anahtarını Cloud Run ortamında kullanılabilir hale getirin:

      1. Cloud Console'da Secret Manager API'yi etkinleştirin.
      2. Secret Manager sayfasında, API anahtarınızı içeren yeni bir gizli anahtar oluşturun.
      3. Gizli anahtarı oluşturduktan sonra aynı sayfada Secret Manager Gizli Anahtar Erişicisi rolüyle varsayılan işlem hizmeti hesabınıza gizli anahtara erişim izni verin. (Varsayılan Compute hizmet hesabının adını IAM sayfasında arayabilirsiniz.)

      Daha sonraki bir adımda, hizmetinizi dağıtırken bu gizli anahtarın adına başvurmanız gerekir.

    4. İsteğe bağlı: Akışınızı bir sonraki adımda olduğu gibi yerel olarak çalıştırmak istiyorsanız GOOGLE_GENAI_API_KEY ortam değişkenini anahtarınıza ayarlayın:

      export GOOGLE_GENAI_API_KEY=<your API key>
      

    Gemini (Vertex AI)

    1. Cloud konsolunda projeniz için Vertex AI API'yi etkinleştirin.

    2. IAM sayfasında Varsayılan işlem hizmeti hesabına Vertex AI Kullanıcısı rolünün verildiğinden emin olun.

    3. İsteğe bağlı: Akışınızı bir sonraki adımda olduğu gibi yerel olarak çalıştırmak istiyorsanız ek ortam değişkenleri ayarlayın ve uygulama varsayılan kimlik bilgilerini ayarlamak için gcloud aracını kullanın:

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

    Bu eğitim için oluşturmanız gereken tek sır model sağlayıcı içindir ancak genel olarak, akışınızın kullandığı her hizmet için benzer bir şey yapmanız gerekir.

  7. İsteğe bağlı: Akışınızı geliştirici kullanıcı arayüzünde deneyin:

    1. Kullanıcı arayüzünü başlatın:

      genkit start
      
    2. Geliştirici kullanıcı arayüzünde (http://localhost:4000/) şu akışı çalıştırın:

      1. menuSuggestionFlow'u tıklayın.

      2. Giriş JSON sekmesinde model için bir konu girin:

        "banana"
        
      3. Çalıştır'ı tıklayın.

  8. Şimdiye kadar her şey beklendiği gibi çalışıyorsa akışı oluşturup dağıtabilirsiniz:

    Gemini (Google Yapay Zeka)

    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
    

    Kimliği doğrulanmayan çağrılara izin vermek isteyip istemediğiniz sorulduğunda N seçeneğini belirleyin. N yanıtını verdiğinizde, hizmetiniz IAM kimlik bilgilerini gerektirecek şekilde yapılandırır. Bu kimlik bilgilerinin sağlanmasıyla ilgili bilgi için Cloud Run belgelerinde Kimlik Doğrulama bölümüne bakın.

Dağıtım tamamlandıktan sonra araç, hizmet URL'sini yazdırır. curl ile test edebilirsiniz:

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