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

Antes de começar

Confira se você concluiu o guia para iniciantes sobre como criar experiências híbridas.

Definir um modo de inferência

Os exemplos no guia de iniciação 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 disponível. Caso contrário, recorra ao modelo hospedado na nuvem.

    const model = getGenerativeModel(ai, { mode: InferenceMode.PREFER_ON_DEVICE });
    
  • ONLY_ON_DEVICE: use o modelo no dispositivo, se 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 disponível. Caso contrário, recorra ao modelo no dispositivo.

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

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

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

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 JS 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 substituição padrão

O modelo padrão hospedado na nuvem é gemini-3.5-flash-lite (começando com o SDK JS v13.0.0).

Esse é o modelo de fallback 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 padrão alternativo 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 para um modelo, é possível enviar uma configuração para controlar como ele gera uma resposta. Os modelos hospedados na nuvem e no dispositivo oferecem diferentes opções de configuração.

A configuração é mantida durante o ciclo de vida da instância. Se você quiser usar uma configuração diferente, crie uma nova instância do GenerativeModel com essa configuração.

Configurar 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",
    generationConfig: {
      maxOutputTokens: 200,
      stopSequences: ["red"]
    }
  }
});

Configurar o modelo no dispositivo

A inferência que usa 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: {
      expectedInputs: [{ type: "text", languages: ["en"] }],
      expectedOutputs: [{ type: "text", languages: ["en"] }],
      initialPrompts: [
        { role: "system", content: [{ type: "text", value: "You are a helpful and concise assistant." }] }
      ]
    }
  }
});


Envie feedback sobre sua experiência com o Firebase AI Logic