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, orienta você no processo de implantação da amostra padrão fluxo

  1. Instale a Google Cloud CLI se que você ainda não fez.

  2. Crie um novo projeto do Google Cloud usando o Console do Cloud ou escolha um 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 usar ele:

    gcloud auth login
    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 módulo Go no diretório do seu projeto:

    go mod init example/cloudrun
    
  5. Inicialize o Genkit no seu projeto:

    genkit init
    

    Selecione o provedor do modelo que você quer usar.

    Aceite os padrões das outras solicitações. A ferramenta genkit criará um arquivo 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. Edite o arquivo de amostra (main.go ou genkit.go) para especificar explicitamente o porta em que o servidor de fluxo deve detectar:

    if err := genkit.Init(ctx,
        &genkit.Options{FlowAddr: ":3400"}, // Add this parameter.
    ); err != nil {
        log.Fatal(err)
    }
    
  7. Disponibilize as credenciais da API para a função implantada. Siga uma destas etapas a seguir, dependendo do provedor de modelos escolhido:

    Gemini (IA do Google)

    1. Garanta que a IA do Google disponíveis na sua região.

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

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

      1. No console do Cloud, ative API Secret Manager
      2. No(s) dia(s) Secret Manager crie um novo secret com sua chave de API.
      3. Depois de criar o secret, na mesma página, conceda acesso acesso da conta de serviço ao secret com o Acessador de secrets do Secret Manager. Você pode procurar o nome da conta de serviço padrão do Compute na página do IAM.

      Em uma etapa posterior, quando implantar o serviço, será preciso fazer referência ao nome do secret.

    Gemini (Vertex AI)

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

    2. No IAM página, verifique se a Conta de serviço padrão do Compute a função de Usuário da Vertex AI.

    O único secret que você precisa configurar neste tutorial é para o modelo provedor, mas, em geral, é preciso fazer algo semelhante para cada serviço seu fluxo usa.

  8. Opcional: teste o fluxo na interface do desenvolvedor:

    1. Configure seu ambiente local para o provedor de modelo escolhido:

      Gemini (IA do 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. Inicie a interface:

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

      1. Clique em menuSuggestionFlow.

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

        "banana"
        
      3. Clique em Executar.

  9. Se tudo estiver funcionando como esperado até agora, você poderá criar e implantar o fluxo:

    Gemini (IA do Google)

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

    Gemini (Vertex AI)

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

    O GCLOUD_LOCATION configura a região da API Vertex que você quer usar.

    Escolha N quando for perguntado se você quer permitir invocações não autenticadas. Se você responder N, o serviço será configurado para exigir credenciais do IAM. Consulte Autenticação nos documentos do Cloud Run para saber como fazer isso.

Depois que a implantação terminar, a ferramenta imprimirá o URL de serviço. É possível testar com curl:

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