Atualizar dinamicamente a Vertex AI no app do Firebase com a Configuração remota do Firebase

Ao chamar o Gemini API no app usando um SDK Vertex AI in Firebase, a solicitação contém vários parâmetros que controlam as respostas da IA generativa. Geralmente, eles incluem o nome do modelo, a configuração de geração de modelo (tokens máximos, temperatura etc.), configurações de segurança, instruções do sistema e dados de solicitação.

Na maioria dos casos, é recomendável mudar esses valores sob demanda ou conforme necessário para vários cenários:

  • Atualize seu modelo de IA generativa sem lançar um novo app. É possível fazer upgrade para versões de modelo mais recentes e estáveis antes que as versões anteriores sejam desativadas, mudar para modelos de menor custo ou de maior desempenho com base nas necessidades e nos atributos dos usuários ou implantar condicionalmente os modelos mais recentes e melhores em segmentos de usuários específicos (como testadores Beta).
  • Defina o local em que você acessa o modelo para que ele fique mais próximo dos usuários.
  • Faça testes A/B de diferentes instruções e comandos do sistema e, em seguida, implemente aos poucos os valores do experimento vencedor para os usuários.
  • Use flags de recursos para expor ou ocultar rapidamente recursos de IA generativa no app.

O Firebase Remote Config faz tudo isso e mais ainda, permitindo que você atualize os valores dos parâmetros conforme necessário e condicionalmente para instâncias de apps que correspondem às características definidas no console Firebase, sem lançar uma nova versão do app.

Este guia de solução apresenta casos de uso recomendados específicos e descreve como adicionar Remote Config ao seu app de IA generativa.

Ir para a implementação do código

Por que usar Firebase Remote Config com seu app?

O Firebase Remote Config permite ajustar dinamicamente o comportamento do app sem precisar de atualizações. Isso é especialmente útil para apps que usam IA generativa, em que a iteração rápida e o ajuste fino são cruciais.

Casos de uso essenciais para Remote Config com apps de IA generativa

Recomendamos o uso de Remote Config com Vertex AI in Firebase para os seguintes casos de uso essenciais:

  • Faça upgrade para a versão mais recente do modelo sem uma atualização do app:use os parâmetros Remote Config para mudar o nome do modelo conforme necessário, para que você possa fazer upgrade para a versão mais recente do modelo Gemini preferido assim que ela estiver disponível.
  • Atualize as instruções do sistema e as configurações de segurança sem uma atualização do app:armazene as instruções do sistema e as configurações de segurança nos parâmetros Remote Config para garantir que elas possam ser alteradas sob demanda se você descobrir problemas após a implantação.
  • Reduza os riscos e aplique a segurança da IA:use os lançamentos do Remote Config para lançar de maneira segura e gradual as mudanças de IA generativa para usuários de iOS e Android.

Casos de uso avançados e recomendados para Remote Config com apps de IA generativa

Depois de instrumentar o app com Remote Config e Google Analytics, você pode conferir casos de uso avançados:

  • Definir a localização com base na localização do cliente:use condições Remote Config para definir a localização do modelo com base na localização detectada do cliente.
  • Teste modelos diferentes: teste e alterne rapidamente entre vários modelos de IA generativa ou implante modelos diferentes em diferentes segmentos de usuários para encontrar o melhor para seu caso de uso específico.
  • Otimizar o desempenho do modelo: ajuste os parâmetros do modelo, como prompt do sistema, máximo de tokens de saída, temperatura e outras configurações.
  • Use diferentes instruções do sistema, solicitações e configuração de modelo com base nos atributos do cliente:ao usar Remote Config com Google Analytics, é possível criar condições com base nos atributos do cliente ou em públicos-alvo personalizados e definir parâmetros diferentes com base nesses atributos.

    Por exemplo, se você estiver usando a IA generativa para oferecer suporte técnico no app, defina instruções do sistema específicas para a plataforma do app para garantir que instruções precisas sejam fornecidas aos usuários do Android, iOS e da plataforma da Web.

  • Personalize as experiências para cada usuário: use a personalização Remote Config para determinar automaticamente as configurações de IA generativa ideais para cada usuário.

  • Controlar custos: ajuste remotamente quais modelos de IA generativa são chamados, com que frequência eles são usados e configure dinamicamente os valores máximos de token de saída com base no público-alvo do usuário para reduzir custos desnecessários.

  • Otimize a experiência e os resultados do app:use A/B Testing com Remote Config nos seus apps iOS, Android e Flutter para testar mudanças nos parâmetros de IA generativa em diferentes segmentos de usuários e conferir como elas afetam as principais métricas, como retenção e receita.

Ao instrumentar seu app de IA generativa com Firebase Remote Config, você pode criar aplicativos com tecnologia de IA flexíveis, seguros e econômicos, além de criar experiências incríveis para seus usuários.

Adicionar o Firebase Remote Config ao app

Neste guia de solução, você vai usar Firebase Remote Config para atualizar dinamicamente os parâmetros no app Android que usam o SDK Vertex AI in Firebase. Você aprenderá o seguinte:

  • Busque e ative parâmetros, como nomes de modelos e instruções do sistema de Firebase Remote Config.
  • Atualize suas chamadas Gemini API para usar os parâmetros recuperados dinamicamente, permitindo alternar entre modelos diferentes ou modificar instruções do sistema sem uma atualização do app.
  • Controle os parâmetros remotamente, ajustando o comportamento e os recursos do modelo conforme necessário.

Pré-requisitos

Neste guia, pressupomos que você já sabe usar o JavaScript para desenvolver apps da Web. Este guia é independente de framework. Antes de começar, verifique se você fez o seguinte:

  • Conclua o Guia de início do SDK Vertex AI in Firebase. Verifique se você fez o seguinte:

    1. Configure um projeto do Firebase novo ou existente, incluindo o uso do plano de preços Blaze e a ativação das APIs necessárias.
    2. Conecte seu app ao Firebase, incluindo o registro e adição da configuração do Firebase.
    3. Adicione o SDK e inicialize o serviço da Vertex AI e o modelo generativo no seu app.
  • Ative Google Analytics no projeto e adicione o SDK dele ao app (necessário para a segmentação condicional, como a definição do serviço e do local do modelo com base na localização do dispositivo cliente).

Etapa 1: definir valores de parâmetros no Console do Firebase

Crie um modelo de Remote Config do cliente e configure os parâmetros e valores para buscar e usar no app.

  1. Abra o console Firebase e, no menu de navegação, abra Run e selecione Remote Config.
  2. Verifique se o Cliente está selecionado no seletor Cliente/servidor na parte superior da página Remote Config.
    • Se esta é a primeira vez que você usa modelos de cliente Remote Config, clique em Criar configuração. O painel Criar seu primeiro parâmetro é exibido.
    • Se esta não for a primeira vez que você usa modelos Remote Config, clique em Adicionar parâmetro.
  3. Defina os seguintes parâmetros Remote Config:

    Nome do parâmetro Descrição Tipo Valor padrão
    model_name Nome do modelo. Para acessar listas atualizadas de nomes de modelos a serem usados no código, consulte Nomes de modelos disponíveis. String gemini-1.5-flash
    system_instructions As instruções do sistema são como um "preâmbulo" que você adiciona antes que o modelo seja exposto a outras instruções do usuário final para influenciar o comportamento do modelo com base em necessidades e casos de uso específicos. String You are a helpful assistant who knows everything there is to know about Firebase!
    prompt Comando padrão para usar com o recurso de IA generativa. String I am a developer who wants to know more about Firebase!
    vertex_location Controle o local para executar o serviço Vertex AI e acessar um modelo. É possível definir condições para configurar essa opção com base na localização do cliente detectada por Google Analytics. String us-central1
  4. Quando terminar de adicionar parâmetros, clique em Publicar alterações. Se esse não for um novo modelo Remote Config, revise as mudanças e clique em Publicar alterações novamente.

Etapa 2: adicionar e inicializar o SDK do Remote Config

Adicione e inicialize o SDK do Remote Config:

  1. Abra o código em um editor de texto e importe Remote Config:

    import { getRemoteConfig } from 'firebase/remote-config';
    
  2. Na função principal e depois que o app do Firebase for inicializado para o SDK Vertex AI in Firebase, inicialize Remote Config:

      // Initialize Remote Config and get a reference to the service
      const remoteConfig = getRemoteConfig(app);
    
  3. Defina um intervalo mínimo de busca. Nesse exemplo, o intervalo de busca padrão é de 3.600 segundos, mas recomendamos definir um intervalo de busca mínimo relativamente baixo no código durante o desenvolvimento.

    remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
    

Etapa 3: definir valores de parâmetros no app

Defina os valores de parâmetro padrão no app no objeto Remote Config para que ele funcione antes de se conectar ao back-end de Remote Config, se o acesso à rede do cliente for interrompido e/ou se nenhum valor for configurado no back-end.

Neste exemplo, você define manualmente valores padrão para o nome do modelo, as instruções do sistema, a solicitação do usuário e o local Vertex AI:

// Set default Remote Config parameter values
remoteConfig.defaultConfig = {
  model_name: 'gemini-1.5-flash',
  system_instructions:
    'You are a helpful assistant who knows everything there is to know about Firebase!',
  prompt: 'I am a developer who wants to know more about Firebase!',
  vertex_location: 'us-central1',
};

Etapa 4: buscar e ativar valores

  1. Adicione getValue e fetchAndActivate às suas importações:

    import { getValue, fetchAndActivate } from 'firebase/remote-config';
    
  2. Depois que o código adicionado para configurar os valores padrão de Remote Config, busque e ative a configuração e atribua valores às constantes modelName, systemInstructions, prompt e vertexLocation.

    // Fetch and activate Remote Config.
    try {
      await fetchAndActivate(remoteConfig);
    } catch(err) {
      console.error('Remote Config fetch failed', err);
    }
    
    console.log('Remote Config fetched.');
    
    // Assign Remote Config values.
    const modelName = getValue(remoteConfig, 'model_name').asString();
    const systemInstructions = getValue(remoteConfig, 'system_instructions').asString();
    const prompt = getValue(remoteConfig, 'prompt').asString();
    const vertexLocation = getValue(remoteConfig, 'vertex_location').asString();
    

Etapa 5: atualizar as chamadas Vertex AI para usar valores Remote Config

Agora que o Remote Config está totalmente configurado, atualize o código para substituir valores codificados por valores provenientes de Remote Config. Por exemplo, se você estivesse usando o exemplo usado em Começar a usar a API Gemini usando a Vertex AI nos SDKs do Firebase, atualize-o da seguinte maneira:

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Vertex AI service
// Optionally specify a location in which to run the service and access the model
const vertexAI = getVertexAI(firebaseApp, { location: vertexLocation });

// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
const model = getGenerativeModel(vertexAI, {
  model: modelName,
  systemInstruction: systemInstruction
});

// Wrap in an async function so you can use await
async function run() {
  // Provide a prompt that contains text
  const userPrompt = prompt;

  // To generate text output, call generateContent with the text input
  const result = await model.generateContent(userPrompt);

  const response = result.response;
  const text = response.text();
  console.log(text);
}

Etapa 6: executar o app

Execute o app e verifique se ele está funcionando. Faça mudanças na configuração na página Remote Config no console do Firebase, publique as mudanças e verifique o resultado.

Próximas etapas