Firebase Genkit com o Cloud Run

É possível implantar fluxos do Firebase Genkit como serviços da Web usando o Cloud Run. Nesta página, como exemplo, você verá o processo de implantação do fluxo de amostra padrão.

  1. Instale as ferramentas necessárias:

    1. Verifique se você está usando o Node.js versão 20 ou mais recente (execute node --version para verificar).

    2. Instale a Google Cloud CLI.

  2. Crie um novo projeto do Google Cloud usando o console do Cloud ou escolha um projeto atual. O projeto precisa estar vinculado a uma conta de faturamento.

    Depois de criar ou escolher um projeto, configure a CLI do Google Cloud para usá-lo:

    gcloud init
    
  3. Crie um diretório para o projeto de amostra do Genkit:

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

    Se você for usar um ambiente de desenvolvimento integrado, abra-o nesse diretório.

  4. Inicialize um projeto Node.js no diretório do projeto:

    npm init -y
    
  5. Inicialize o Genkit no seu projeto do Node.js:

    genkit init
    
    • Selecione o Google Cloud como a plataforma de implantação.
    • Selecione o provedor de modelos que você quer usar.

    Aceite os padrões para as outras solicitações. A ferramenta genkit criará alguns arquivos de origem de amostra para você começar a desenvolver seus próprios fluxos de IA. No entanto, no restante deste tutorial, você apenas implantará o fluxo de amostra.

  6. Disponibilize as credenciais de API para a função implantada. Siga um destes procedimentos, dependendo do provedor de modelos escolhido:

    Gemini (IA do Google)

    1. Verifique se a IA do Google está disponível na sua região.

    2. Gere uma chave de API para a API Genmini usando o Google AI Studio.

    3. Disponibilize a chave de API no ambiente do Cloud Run:

      1. No console do Cloud, ative a API Secret Manager.
      2. Na página do Secret Manager, crie um novo secret com sua chave de API.
      3. Depois de criar o secret, na mesma página, conceda à conta de serviço de computação padrão acesso ao secret com o papel Acessador de secrets do Secret Manager. É possível procurar o nome da conta de serviço padrão do Compute na página do IAM.

      Em uma etapa posterior, quando você implantar o serviço, precisará fazer referência ao nome desse secret.

    4. Opcional: se você quiser executar o fluxo localmente, como na próxima etapa, defina a variável de ambiente GOOGLE_GENAI_API_KEY como sua chave:

      export GOOGLE_GENAI_API_KEY=<your API key>
      

    Gemini (Vertex AI)

    1. No console do Cloud, ative a API Vertex AI para seu projeto.

    2. Na página IAM, verifique se a conta de serviço padrão do Compute recebeu o papel Usuário da Vertex AI.

    3. Opcional: se você quiser executar o fluxo localmente, como na próxima etapa, defina algumas variáveis de ambiente extras e use a ferramenta gcloud para configurar o Application Default Credentials:

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

    A única chave secreta que você precisa configurar neste tutorial é para o provedor do modelo, mas, em geral, é necessário fazer algo semelhante para cada serviço usado pelo fluxo.

  7. Opcional: teste seu fluxo na interface do desenvolvedor:

    1. Inicie a interface:

      genkit start
      
    2. Na interface do desenvolvedor (http://localhost:4000/), execute o fluxo:

      1. Clique em menuSuggestionFlow.

      2. Na guia JSON de entrada, forneça um assunto para o modelo:

        "banana"
        
      3. Clique em Executar.

  8. Se tudo estiver funcionando conforme esperado até agora, crie e implante o fluxo:

    Gemini (IA do 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
    

    Escolha N quando aparecer uma mensagem perguntando se você quer permitir invocações não autenticadas. Responder N vai configurar seu serviço para exigir credenciais do IAM. Consulte Autenticação nos documentos do Cloud Run para ver informações sobre como fornecer essas credenciais.

Quando a implantação terminar, a ferramenta vai mostrar o URL do serviço. É possível testá-lo com curl:

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