Генкит Firebase с Cloud Run

Вы можете развернуть потоки Firebase Genkit как веб-сервисы с помощью Cloud Run. На этой странице в качестве примера описывается процесс развертывания примера потока по умолчанию.

  1. Установите Google Cloud CLI, если вы еще этого не сделали.

  2. Создайте новый проект Google Cloud с помощью консоли Cloud или выберите существующий. Проект должен быть привязан к платежному аккаунту.

    После создания или выбора проекта настройте интерфейс командной строки Google Cloud для его использования:

    gcloud auth login
    gcloud init
    
  3. Создайте каталог для примера проекта Genkit:

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

    Если вы собираетесь использовать IDE, откройте ее в этом каталоге.

  4. Инициализируйте модуль Go в каталоге вашего проекта:

    go mod init example/cloudrun
    
  5. Инициализируйте Genkit в своем проекте:

    genkit init
    

    Выберите поставщика модели, которого вы хотите использовать.

    Примите значения по умолчанию для остальных запросов. Инструмент genkit создаст образец исходного файла, который поможет вам приступить к разработке собственных потоков ИИ. Однако в оставшейся части этого руководства вы просто развернете пример потока.

  6. Отредактируйте файл примера ( main.go или genkit.go ), чтобы явно указать порт, который должен прослушивать сервер потоков:

    if err := genkit.Init(ctx,
        &genkit.Options{FlowAddr: ":3400"}, // Add this parameter.
    ); err != nil {
        log.Fatal(err)
    }
    
  7. Сделайте учетные данные API доступными для развернутой функции. Выполните одно из следующих действий в зависимости от выбранного вами поставщика модели:

    Близнецы (ИИ Google)

    1. Убедитесь, что Google AI доступен в вашем регионе .

    2. Создайте ключ API для Gemini API с помощью Google AI Studio.

    3. Сделайте ключ API доступным в среде Cloud Run:

      1. В облачной консоли включите API Secret Manager .
      2. На странице «Менеджер секретов» создайте новый секрет, содержащий ваш ключ API.
      3. После создания секрета на той же странице предоставьте своей учетной записи вычислительной службы по умолчанию доступ к секрету с помощью роли Секретного доступа диспетчера секретов . (Имя учетной записи вычислительной службы по умолчанию можно найти на странице IAM.)

      На более позднем этапе, когда вы развернете службу, вам нужно будет указать имя этого секрета.

    Близнецы (Vertex AI)

    1. В облачной консоли включите API Vertex AI для своего проекта.

    2. На странице IAM убедитесь, что учетной записи службы вычислений по умолчанию предоставлена ​​роль пользователя Vertex AI .

    Единственный секрет, который вам нужно настроить для этого руководства, — это поставщик модели, но в целом вы должны сделать что-то подобное для каждой службы, которую использует ваш поток.

  8. Необязательно : попробуйте свой алгоритм в пользовательском интерфейсе разработчика:

    1. Настройте локальную среду для выбранного вами поставщика модели:

      Близнецы (ИИ Google)

      export GOOGLE_GENAI_API_KEY=<your API key>
      

      Близнецы (Vertex AI)

      export GCLOUD_PROJECT=<your project ID>
      export GCLOUD_LOCATION=us-central1
      gcloud auth application-default login
      
    2. Запустите пользовательский интерфейс:

      genkit start
      
    3. В пользовательском интерфейсе разработчика (http://localhost:4000/) запустите поток:

      1. Нажмите менюПоток предложений .

      2. На вкладке «Ввод JSON» укажите тему модели:

        "banana"
        
      3. Нажмите «Выполнить» .

  9. Если пока все работает так, как ожидалось, вы можете создать и развернуть поток:

    Близнецы (ИИ Google)

    gcloud run deploy --port 3400 \
      --update-secrets=GOOGLE_GENAI_API_KEY=<your-secret-name>:latest
    

    Близнецы (Vertex AI)

    gcloud run deploy --port 3400 \
      --set-env-vars GCLOUD_PROJECT=<your-gcloud-project> \
      --set-env-vars GCLOUD_LOCATION=us-central1
    

    ( GCLOUD_LOCATION настраивает регион Vertex API, который вы хотите использовать.)

    Выберите N когда вас спросят, хотите ли вы разрешить неаутентифицированные вызовы. Ответ N приведет к тому, что ваша служба будет требовать учетные данные IAM. Информацию о предоставлении этих учетных данных см. в разделе «Аутентификация» в документации Cloud Run.

После завершения развертывания инструмент распечатает URL-адрес службы. Вы можете проверить это с помощью curl :

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