Implante fluxos em qualquer plataforma de hospedagem de apps

É possível implantar fluxos do Firebase Genkit como serviços da Web usando qualquer serviço que possa hospedar um binário Go. Esta página, como exemplo, orienta você no processo geral de implantação do fluxo de amostra padrão e mostra onde é preciso realizar ações específicas do provedor.

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

  2. Inicialize um módulo Go no diretório do seu projeto:

    go mod init example/cloudrun
    
  3. 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 vai 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.

  4. Edite o arquivo de amostra (main.go ou genkit.go) para especificar explicitamente a porta que o servidor de fluxo precisa detectar:

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

    Se o provedor exigir que você faça detecções em uma porta específica, configure o Genkit de maneira adequada.

  5. Implemente alguma forma de autenticação e autorização para limitar o acesso aos fluxos que você planeja implantar.

    Como a maioria dos serviços de IA generativa é limitada, provavelmente não convém permitir acesso aberto a nenhum endpoint que os chame. Alguns serviços de hospedagem fornecem uma camada de autenticação como front-end para aplicativos implantados neles, que você pode usar para essa finalidade.

  6. Disponibilize as credenciais da API para a função implantada. Dependendo do provedor de modelo escolhido, siga um destes procedimentos:

    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 Gemini usando o Google AI Studio.

    3. Disponibilizar a chave de API no ambiente implantado.

      A maioria dos hosts de apps fornece algum sistema para processar secrets com segurança, como chaves de API. Muitas vezes, esses secrets estão disponíveis para o aplicativo na forma de variáveis de ambiente. Se você puder atribuir sua chave de API à variável GOOGLE_GENAI_API_KEY, o Genkit a usará automaticamente. Caso contrário, será necessário modificar a chamada googleai.Init() para definir explicitamente a chave. Mas não incorpore a chave diretamente no código. Use os recursos de gerenciamento de secrets disponibilizados pelo seu provedor de hospedagem.

    Gemini (Vertex AI)

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

    2. Na página IAM, crie uma conta de serviço para acessar a API Vertex AI, se você ainda não tiver uma.

      Conceder o papel de Usuário da Vertex AI à conta.

    3. Configure o Application Default Credentials no ambiente de hospedagem.

    4. Configure o plug-in com o ID do projeto do Google Cloud e o local da API Vertex AI que você quer usar. É possível fazer isso definindo as variáveis de ambiente GCLOUD_PROJECT e GCLOUD_LOCATION no seu ambiente de hospedagem ou na sua chamada vertexai.Init().

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

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

  8. Se tudo estiver funcionando como esperado até agora, você poderá criar e implantar o fluxo usando as ferramentas do seu provedor.