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 da fluxo de amostra padrão e indica onde é preciso aplicar instruções específicas do provedor ações.

  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 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 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)
    }
    

    Se seu provedor exigir que você faça a detecção em uma porta específica, e configurar o Genkit de acordo com isso.

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

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

  6. 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 à 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 lidar com secrets com segurança, como chaves de API. Muitas vezes, esses segredos estão disponíveis para seu app no de variáveis de ambiente. Se você puder atribuir sua chave de API ao GOOGLE_GENAI_API_KEY, o Genkit a usará automaticamente. Caso contrário, você precisa modificar a chamada googleai.Init() para explicitamente defina a chave. Mas não incorpore a chave diretamente no código. Usar o gerenciamento de secrets do conteúdo fornecidos pelo seu provedor de hospedagem.

    Gemini (Vertex AI)

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

    2. No IAM crie uma conta de serviço para acessar a API Vertex AI se você ainda não têm uma.

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

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

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

    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.

  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.