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

Em cada chamada a um modelo, você pode enviar uma configuração para controlar como ele gera uma resposta. Cada modelo oferece suporte a diferentes opções de configuração, como definir maxOutputTokens ou configurações especializadas para pensamento, modalidades de resposta, imagens ou fala.

Na maioria dos casos de uso ao acessar um modelo Gemini, você configura o modelo usando GenerationConfig. No entanto, se você estiver configurando um modelo Gemini Live API, use LiveGenerationConfig.

Nesta página, mostramos como configurar os modelos Gemini e fornecemos uma descrição de cada parâmetro.

Ir para a configuração Gemini Ir para a configuração Gemini Live API

GenerationConfig para modelos Gemini

Clique no seu provedor de Gemini API para conferir o conteúdo e o código específicos do provedor nesta página.

Defina um GenerationConfig para a maioria dos modelos Gemini, incluindo modelos de uso geral, modelos de geração de imagens (modelos "Nano Banana") e modelos de conversão de texto em voz (TTS).

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

Swift

Defina os valores dos parâmetros em um GenerationConfig como parte da criação de uma instância GenerativeModel.


import FirebaseAILogic

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// Note that temperature, top-K, and top-P are deprecated and ignored by the latest Gemini models.
let config = GenerationConfig(
  candidateCount: 1,
  maxOutputTokens: 200,
  stopSequences: ["red"]
)

// Initialize the Agent Platform Gemini API backend service (formerly Vertex AI).
// Specify the config as part of creating the `GenerativeModel` instance.
let model = FirebaseAI.firebaseAI(backend: .agentPlatform()).generativeModel(
  modelName: "GEMINI_MODEL_NAME",
  generationConfig: config
)

// ...

Kotlin

Defina os valores dos parâmetros em um GenerationConfig como parte da criação de uma instância GenerativeModel.


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// Note that temperature, top-K, and top-P are deprecated and ignored by the latest Gemini models.
val config = generationConfig {
    candidateCount = 1
    maxOutputTokens = 200
    stopSequences = listOf("red")
}

// Initialize the Agent Platform Gemini API backend service (formerly Vertex AI).
// Specify the config as part of creating the `GenerativeModel` instance.
val model = Firebase.ai(backend = GenerativeBackend.agentPlatform()).generativeModel(
    modelName = "GEMINI_MODEL_NAME",
    generationConfig = config
)

// ...

Java

Defina os valores dos parâmetros em um GenerationConfig como parte da criação de uma instância GenerativeModel.


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// Note that temperature, top-K, and top-P are deprecated and ignored by the latest Gemini models.
GenerationConfig.Builder configBuilder = new GenerationConfig.Builder();
configBuilder.candidateCount = 1;
configBuilder.maxOutputTokens = 200;
configBuilder.stopSequences = List.of("red");

GenerationConfig config = configBuilder.build();

// Specify the config as part of creating the `GenerativeModel` instance.
GenerativeModelFutures model = GenerativeModelFutures.from(
        FirebaseAI.getInstance(GenerativeBackend.agentPlatform())
                .generativeModel(
                    "GEMINI_MODEL_NAME",
                    config
                );
);

// ...

Web

Defina os valores dos parâmetros em um GenerationConfig como parte da criação de uma instância GenerativeModel.


// ...

// Initialize the Agent Platform Gemini API backend service (formerly Vertex AI).
const ai = getAI(firebaseApp, { backend: new AgentPlatformBackend() });

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// Note that temperature, top-K, and top-P are deprecated and ignored by the latest Gemini models.
const generationConfig = {
  candidateCount: 1,
  maxOutputTokens: 200,
  stopSequences: ["red"],
};

// Specify the config as part of creating the `GenerativeModel` instance.
const model = getGenerativeModel(ai, { model: "GEMINI_MODEL_NAME",  generationConfig });

// ...

Dart

Defina os valores dos parâmetros em um GenerationConfig como parte da criação de uma instância GenerativeModel.


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// Note that temperature, top-K, and top-P are deprecated and ignored by the latest Gemini models.
final generationConfig = GenerationConfig(
  candidateCount: 1,
  maxOutputTokens: 200,
  stopSequences: ["red"],
);

// Initialize the Agent Platform Gemini API backend service (formerly Vertex AI).
// Specify the config as part of creating the `GenerativeModel` instance.
final model = FirebaseAI.agentPlatform().generativeModel(
  model: 'GEMINI_MODEL_NAME',
  config: generationConfig,
);

// ...

Unity

Defina os valores dos parâmetros em um GenerationConfig como parte da criação de uma instância GenerativeModel.


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// Note that temperature, top-K, and top-P are deprecated and ignored by the latest Gemini models.
var generationConfig = new GenerationConfig(
  candidateCount: 1,
  maxOutputTokens: 200,
  stopSequences: new string[] { "red" }
);

// Initialize the Agent Platform Gemini API backend service (formerly Vertex AI).
// Specify the config as part of creating the `GenerativeModel` instance.
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.AgentPlatform());
var model = ai.GetGenerativeModel(
  modelName: "GEMINI_MODEL_NAME",
  generationConfig: generationConfig
);

Confira uma descrição de cada parâmetro na próxima seção desta página.

É possível testar comandos e configurações de modelo usando Agent  Studio.

LiveGenerationConfig para modelos Gemini Live API

Clique no seu provedor de Gemini API para conferir o conteúdo e o código específicos do provedor nesta página.

Defina um LiveGenerationConfig somente ao usar modelos Gemini Live API.

A configuração é mantida durante todo o ciclo de vida da instância LiveModel. Se você quiser usar uma configuração diferente, crie e use uma nova instância com uma configuração diferente.

Swift

Defina os valores dos parâmetros em liveGenerationConfig durante a inicialização da instância LiveModel:


// ...

// Set parameter values in a `LiveGenerationConfig` (example values shown here).
let config = LiveGenerationConfig(
  maxOutputTokens: 200,
  responseModalities: [.audio],
  speech: SpeechConfig(voiceName: "Fenrir"),
)

// Specify the config as part of creating the `liveModel` instance.
let liveModel = FirebaseAI.firebaseAI(backend: .agentPlatform(location: "us-central1")).liveModel(
  modelName: "GEMINI_LIVE_MODEL_NAME",
  generationConfig: config
)

// ...

Kotlin

Defina os valores dos parâmetros em um LiveGenerationConfig como parte da criação de uma instância LiveModel.


// ...

// Set parameter values in a `LiveGenerationConfig` (example values shown here).
val config = liveGenerationConfig {
    maxOutputTokens = 200
    responseModality = ResponseModality.AUDIO
    speechConfig = SpeechConfig(voice = Voices.FENRIR)
}

// Specify the config as part of creating the `LiveModel` instance.
val liveModel = Firebase.ai(backend = GenerativeBackend.agentPlatform(location = "us-central1")).liveModel(
    modelName = "GEMINI_LIVE_MODEL_NAME",
    generationConfig = config
)

// ...

Java

Defina os valores dos parâmetros em um LiveGenerationConfig como parte da criação de uma instância LiveModel.


// ...

// Set parameter values in a `LiveGenerationConfig` (example values shown here).
LiveGenerationConfig.Builder configBuilder = new LiveGenerationConfig.Builder();
configBuilder.setMaxOutputTokens(200);
configBuilder.setResponseModality(ResponseModality.AUDIO);

configBuilder.setSpeechConfig(new SpeechConfig(Voices.FENRIR));

LiveGenerationConfig config = configBuilder.build();

// Specify the config as part of creating the `LiveModel` instance.
LiveGenerativeModel lm = FirebaseAI.getInstance(GenerativeBackend.agentPlatform("us-central1")).liveModel(
          "GEMINI_LIVE_MODEL_NAME",
          config
);

// ...

Web

Defina os valores dos parâmetros em LiveGenerationConfig durante a inicialização da instância LiveGenerativeModel:


// ...

// Initialize the Agent Platform Gemini API backend service (formerly Vertex AI).
const ai = getAI(firebaseApp, { backend: new AgentPlatformBackend("us-central1") });

// Set parameter values in a `LiveGenerationConfig` (example values shown here).
const liveGenerationConfig = {
  maxOutputTokens: 200,
  responseModalities: [ResponseModality.AUDIO],
  speechConfig: {
    voiceConfig: {
      prebuiltVoiceConfig: { voiceName: "Fenrir" },
    },
  },
};

// Specify the config as part of creating the `LiveGenerativeModel` instance.
const liveModel = getLiveGenerativeModel(ai, {
  model: "GEMINI_LIVE_MODEL_NAME",
  liveGenerationConfig,
});

// ...

Dart

Defina os valores dos parâmetros em um LiveGenerationConfig como parte da criação de uma instância LiveGenerativeModel.


// ...

// Set parameter values in a `LiveGenerationConfig` (example values shown here).
final config = LiveGenerationConfig(
  maxOutputTokens: 200,
  responseModalities: [ResponseModalities.audio],
  speechConfig: SpeechConfig(voiceName: 'Fenrir'),
);

// Specify the config as part of creating the `liveGenerativeModel` instance.
final liveModel = FirebaseAI.agentPlatform(location: 'us-central1').liveGenerativeModel(
  model: 'GEMINI_LIVE_MODEL_NAME',
  liveGenerationConfig: config,
);

// ...

Unity

Defina os valores dos parâmetros em um LiveGenerationConfig como parte da criação de uma instância LiveModel.


// ...

// Set parameter values in a `LiveGenerationConfig` (example values shown here).
var config = new LiveGenerationConfig(
  maxOutputTokens: 200,
  responseModalities: new[] { ResponseModality.Audio },
  speechConfig: SpeechConfig.UsePrebuiltVoice("Fenrir")
);

// Specify the config as part of creating the `LiveModel` instance.
var liveModel = FirebaseAI.GetInstance(FirebaseAI.Backend.AgentPlatform(location: "us-central1")).GetLiveModel(
  modelName: "GEMINI_LIVE_MODEL_NAME",
  liveGenerationConfig: config
);

// ...

Confira uma descrição de cada parâmetro na próxima seção desta página.

É possível testar comandos e configurações de modelo usando Agent  Studio.



Descrição dos parâmetros

A tabela a seguir é uma visão geral dos parâmetros disponíveis. Alguns parâmetros são aplicáveis apenas a determinados modelos.

Temperatura, Top-K e Top-P foram descontinuados e são ignorados pelos modelos Gemini mais recentes.

Parâmetro Descrição Limitações Valor padrão
Carimbo de data/hora do áudio
audioTimestamp
Permite o entendimento de carimbos de data/hora para arquivos de entrada somente de áudio.

Booleano

Aplicável apenas ao usar uma configuração GenerativeModel e quando o tipo de entrada é um arquivo somente de áudio.

false
Contagem de candidatos
candidateCount
Especifica o número de variações de resposta a serem retornadas. Para cada solicitação, você paga pelos tokens de saída de todos os candidatos, mas só é cobrado uma vez pelos tokens de entrada.

Valores aceitos: 1 a 8 (inclusive)

Aplicável somente ao usar generateContent.

Não aplicável ao usar generateContentStream, modelos de TTS ou Live API.

1
Máximo de tokens de saída
maxOutputTokens
Especifica o número máximo de tokens que podem ser gerados na resposta. --- ---
Penalidade de frequência
frequencyPenalty

Controla a probabilidade de incluir tokens que aparecem repetidamente na resposta gerada.

Valores positivos penalizam tokens que aparecem repetidamente no conteúdo gerado, diminuindo a probabilidade de repetir conteúdo.

Não aplicável a modelos de TTS. ---
Penalidade de presença
presencePenalty

Controla a probabilidade de incluir tokens que já aparecem na resposta gerada.

Valores positivos penalizam tokens que já aparecem no conteúdo gerado, aumentando a probabilidade de gerar conteúdo mais diversificado.

Não aplicável a modelos de TTS. ---
Sequências de parada
stopSequences
Especifica uma lista de strings que instrui o modelo a parar de gerar conteúdo se uma das strings for encontrada na resposta.

Aplicável apenas ao usar uma configuração de GenerativeModel.

Não aplicável a modelos de TTS.

---
Configurações especializadas
Pensando
thinkingConfig

Controla o "processo de pensamento" dos modelos ao gerar uma resposta.

  • Controle a quantidade de raciocínio que o modelo pode fazer usando um nível de raciocínio (modelos Gemini 3.x e mais recentes).
  • Controle se você quer incluir resumos de ideias.

Valores aceitos: consulte a documentação sobre pensamento

Não aplicável a modelos de TTS.

O Firebase AI Logic ainda não permite definir um thinkingConfig para modelos Live API.

Depende do modelo
Modalidades de resposta
responseModalities
Especifica o tipo de saída (como texto, áudio ou imagens). Aplicável (e obrigatório) somente ao usar modelos de imagem Gemini (modelos "Nano Banana"), modelos de TTS e modelos Live API. ---
Características da imagem
imageConfig
Especifica a proporção e a resolução das imagens geradas.

Valores aceitos: consulte Configurar a geração de imagens

Aplicável somente ao usar modelos de imagem Gemini (modelos "Nano Banana").

Proporção de 1:1 (quadrada)
Resolução de 1024 x 1024
Voz
speechConfig
Especifica a voz usada para a saída de áudio. Aplicável somente ao usar modelos de TTS e Live API.

Obrigatório para modelos de TTS.
Puck





Outras opções para controlar a geração de conteúdo

  • Saiba mais sobre o design de comandos para influenciar o modelo a gerar resultados específicos para suas necessidades.
  • Use as configurações de segurança para ajustar a probabilidade de receber respostas que possam ser consideradas prejudiciais, incluindo discurso de ódio e conteúdo sexualmente explícito.
  • Defina instruções do sistema para orientar o comportamento do modelo. Esse recurso é como um preâmbulo que você adiciona antes que o modelo seja exposto a outras instruções do usuário final.
  • Transmita um esquema de resposta junto com o comando para especificar um esquema de saída específico. Esse recurso é usado com mais frequência ao gerar saída JSON, mas também pode ser usado para tarefas de classificação, como quando você quer que o modelo use rótulos ou tags específicos.