Opções de configuração para experiências híbridas em apps da Web


Nesta página, descrevemos as seguintes opções de configuração:

Também é possível gerar saída estruturada, incluindo JSON e enums.

Antes de começar

Conclua o guia para iniciantes sobre como criar experiências híbridas.

Definir um modo de inferência

Os exemplos no guia de início rápido usam o modo PREFER_ON_DEVICE, mas esse é apenas um dos quatro modos de inferência disponíveis.

  • PREFER_ON_DEVICE: use o modelo no dispositivo se ele estiver disponível. Caso contrário, use o modelo hospedado na nuvem.

    const model = getGenerativeModel(ai, { mode: InferenceMode.PREFER_ON_DEVICE });
    
  • ONLY_ON_DEVICE: use o modelo no dispositivo se ele estiver disponível. Caso contrário, gere uma exceção.

    const model = getGenerativeModel(ai, { mode: InferenceMode.ONLY_ON_DEVICE });
    
  • PREFER_IN_CLOUD: use o modelo hospedado na nuvem se ele estiver disponível. Caso contrário, use o modelo no dispositivo.

    const model = getGenerativeModel(ai, { mode: InferenceMode.PREFER_IN_CLOUD });
    
  • ONLY_IN_CLOUD: use o modelo hospedado na nuvem se ele estiver disponível. Caso contrário, gere uma exceção.

    const model = getGenerativeModel(ai, { mode: InferenceMode.ONLY_IN_CLOUD });
    

Determinar se a inferência no dispositivo ou na nuvem foi usada

Se você usa os modos de inferência PREFER_ON_DEVICE ou PREFER_IN_CLOUD, pode ser útil saber qual modo foi usado para determinadas solicitações. Essas informações são fornecidas pela propriedade inferenceSource de cada resposta (disponível a partir do SDK do JavaScript v12.5.0).

Ao acessar essa propriedade, o valor retornado será ON_DEVICE ou IN_CLOUD.

// ...

console.log('You used: ' + result.response.inferenceSource);

console.log(result.response.text());

Substituir o modelo de fallback padrão

O modelo padrão hospedado na nuvem é gemini-2.5-flash-lite (a partir do SDK do JavaScript v12.8.0).

Esse modelo é o modelo alternativo hospedado na nuvem quando você usa o modo PREFER_ON_DEVICE. Ele também é o modelo padrão quando você usa o modo ONLY_IN_CLOUD ou PREFER_IN_CLOUD.

Use a opção de configuração inCloudParams para especificar um modelo alternativo padrão hospedado na nuvem.

const model = getGenerativeModel(ai, {
  mode: InferenceMode.INFERENCE_MODE,
  inCloudParams: {
    model: "GEMINI_MODEL_NAME"
  }
});

Encontre os nomes de todos os modelos do Gemini compatíveis.

Usar a configuração do modelo para controlar as respostas

Em cada solicitação a um modelo, é possível enviar uma configuração para controlar como ele gera uma resposta. Os modelos hospedados na nuvem e no dispositivo oferecem opções de configuração diferentes.

A configuração é mantida durante toda a vida útil da instância. Se você quiser usar uma configuração diferente, crie uma nova instância GenerativeModel com essa configuração.

Configurar um modelo hospedado na nuvem

Use a opção inCloudParams para configurar um modelo Gemini hospedado na nuvem. Saiba mais sobre os parâmetros disponíveis.

const model = getGenerativeModel(ai, {
  mode: InferenceMode.INFERENCE_MODE,
  inCloudParams: {
    model: "GEMINI_MODEL_NAME"
    temperature: 0.8,
    topK: 10
  }
});

Configurar o modelo no dispositivo

A inferência usando um modelo no dispositivo usa a API Prompt do Chrome.

Use a opção onDeviceParams para configurar um modelo no dispositivo. Saiba mais sobre os parâmetros disponíveis.

const model = getGenerativeModel(ai, {
  mode: InferenceMode.INFERENCE_MODE,
  onDeviceParams: {
    createOptions: {
      temperature: 0.8,
      topK: 8
    }
  }
});