Utilizzare la configurazione del modello per controllare le risposte

In ogni chiamata a un modello, puoi inviare una configurazione del modello per controllare il modo in cui il modello genera una risposta. Ogni modello supporta diverse opzioni di configurazione, come l'impostazione di maxOutputTokens o configurazioni specializzate per il ragionamento, le modalità di risposta, le immagini, il parlato o il rilevamento di attività vocale (VAD).

Per la maggior parte dei casi d'uso, quando accedi a un modello Gemini, lo configuri utilizzando GenerationConfig. Tuttavia, se stai configurando un modello Gemini Live API, utilizza LiveGenerationConfig.

Questa pagina mostra come impostare la configurazione per i modelli Gemini e fornisce una tabella dei parametri disponibili.

Vai alla configurazione Gemini Vai alla configurazione Gemini Live API

GenerationConfig per i modelli Gemini

Fai clic sul tuo provider Gemini API per visualizzare i contenuti e il codice specifici del provider in questa pagina.

Imposta un GenerationConfig per la maggior parte dei modelli Gemini, inclusi i modelli di uso generale, i modelli di generazione di immagini (Nano Banana) e i modelli di conversione da testo a voce (TTS).

La configurazione viene mantenuta per tutta la durata dell'istanza GenerativeModel. Se vuoi utilizzare una configurazione diversa, crea e utilizza una nuova istanza con una configurazione diversa.

L'esempio seguente mostra una configurazione del modello molto semplice. Per ulteriori opzioni (soprattutto per i modelli specializzati), consulta la tabella dei parametri disponibili più avanti in questa pagina.

Swift

Imposta i valori dei parametri in un GenerationConfig durante la creazione di un'istanza GenerativeModel.


import FirebaseAILogic

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// For the latest general-use Gemini models, the following parameters are now unsupported:
// temperature, top-K, top-P, frequency penalty, presence penalty, and candidate count
let config = GenerationConfig(
  maxOutputTokens: 200,
  stopSequences: ["red"]
)

// Initialize the Gemini Developer API backend service.
// Specify the config as part of creating the `GenerativeModel` instance.
let model = FirebaseAI.firebaseAI(backend: .googleAI()).generativeModel(
  modelName: "GEMINI_MODEL_NAME",
  generationConfig: config
)

// ...

Kotlin

Imposta i valori dei parametri in un GenerationConfig nell'ambito della creazione di un'istanza GenerativeModel.


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// For the latest general-use Gemini models, the following parameters are now unsupported:
// temperature, top-K, top-P, frequency penalty, presence penalty, and candidate count
val config = generationConfig {
    maxOutputTokens = 200
    stopSequences = listOf("red")
}

// Initialize the Gemini Developer API backend service.
// Specify the config as part of creating the `GenerativeModel` instance.
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
    modelName = "GEMINI_MODEL_NAME",
    generationConfig = config
)

// ...

Java

Imposta i valori dei parametri in un GenerationConfig durante la creazione di un'istanza GenerativeModel.


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// For the latest general-use Gemini models, the following parameters are now unsupported:
// temperature, top-K, top-P, frequency penalty, presence penalty, and candidate count
GenerationConfig.Builder configBuilder = new GenerationConfig.Builder();
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.googleAI())
                .generativeModel(
                    "GEMINI_MODEL_NAME",
                    config
                );
);

// ...

Web

Imposta i valori dei parametri in un GenerationConfig nell'ambito della creazione di un'istanza GenerativeModel.


// ...

// Initialize the Gemini Developer API backend service.
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// For the latest general-use Gemini models, the following parameters are now unsupported:
// temperature, top-K, top-P, frequency penalty, presence penalty, and candidate count
const generationConfig = {
  maxOutputTokens: 200,
  stopSequences: ["red"],
};

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

// ...

Dart

Imposta i valori dei parametri in un GenerationConfig durante la creazione di un'istanza GenerativeModel.


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// For the latest general-use Gemini models, the following parameters are now unsupported:
// temperature, top-K, top-P, frequency penalty, presence penalty, and candidate count
final generationConfig = GenerationConfig(
  maxOutputTokens: 200,
  stopSequences: ["red"],
);

// Initialize the Gemini Developer API backend service.
// Specify the config as part of creating the `GenerativeModel` instance.
final model = FirebaseAI.googleAI().generativeModel(
  model: 'GEMINI_MODEL_NAME',
  generationConfig: generationConfig,
);

// ...

Unity

Imposta i valori dei parametri in un GenerationConfig nell'ambito della creazione di un'istanza GenerativeModel.


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// For the latest general-use Gemini models, the following parameters are now unsupported:
// temperature, top-K, top-P, frequency penalty, presence penalty, and candidate count
var generationConfig = new GenerationConfig(
  maxOutputTokens: 200,
  stopSequences: new string[] { "red" }
);

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

Puoi sperimentare con i prompt e le configurazioni dei modelli utilizzando Google AI Studio.

LiveGenerationConfig per i modelli Gemini Live API

Fai clic sul tuo provider Gemini API per visualizzare i contenuti e il codice specifici del provider in questa pagina.

Imposta un LiveGenerationConfig solo quando utilizzi i modelli Gemini Live API.

La configurazione viene mantenuta per tutta la durata dell'istanza LiveModel. Se vuoi utilizzare una configurazione diversa, crea e utilizza una nuova istanza con una configurazione diversa.

L'esempio seguente mostra una configurazione del modello molto semplice. Per ulteriori opzioni (come la configurazione del rilevamento di attività vocale (VAD)), consulta la tabella dei parametri disponibili più avanti in questa pagina.

Swift

Imposta i valori dei parametri in liveGenerationConfig durante l'inizializzazione dell'istanza 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: .googleAI()).liveModel(
  modelName: "GEMINI_LIVE_MODEL_NAME",
  generationConfig: config
)

// ...

Kotlin

Imposta i valori dei parametri in un LiveGenerationConfig durante la creazione di un'istanza LiveModel.


// ...

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

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

// ...

Java

Imposta i valori dei parametri in un LiveGenerationConfig durante la creazione di un'istanza 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(new Voice("FENRIR")));

LiveGenerationConfig config = configBuilder.build();

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

// ...

Web

Imposta i valori dei parametri in LiveGenerationConfig durante l'inizializzazione dell'istanza LiveGenerativeModel:


// ...

// Initialize the Gemini Developer API backend service.
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// 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

Imposta i valori dei parametri in un LiveGenerationConfig nell'ambito della creazione di un'istanza 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.googleAI().liveGenerativeModel(
  model: 'GEMINI_LIVE_MODEL_NAME',
  liveGenerationConfig: config,
);

// ...

Unity

Imposta i valori dei parametri in un LiveGenerationConfig durante la creazione di un'istanza 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.GoogleAI()).GetLiveModel(
  modelName: "GEMINI_LIVE_MODEL_NAME",
  liveGenerationConfig: config
);

// ...

Puoi sperimentare con i prompt e le configurazioni dei modelli utilizzando Google AI Studio.



Parametri del modello disponibili

La tabella seguente fornisce una panoramica generale dei parametri disponibili per la configurazione del modello. Alcuni parametri sono applicabili solo a determinati modelli.

Parametro Descrizione Limitazioni Valore predefinito
Timestamp audio
audioTimestamp
Abilita la comprensione dei timestamp per i file di input solo audio.

Booleano

Applicabile solo quando utilizzi una configurazione GenerativeModel e il tipo di input è un file di solo audio.

false
Numero massimo di token di output
maxOutputTokens

Specifica il numero massimo di token che possono essere generati nella risposta.

Per gemini-4-argon, i limiti predefiniti e massimi dei token di output sono 32,768 token per le richieste non in streaming e 65,536 token per le richieste in streaming. Tieni presente che Firebase AI Logic non supporta ancora la decodifica lunga, ma questa funzionalità sarà disponibile a breve.

--- ---
Sequenze di interruzioni
stopSequences
Specifica un elenco di stringhe che indica al modello di interrompere la generazione di contenuti se una delle stringhe viene rilevata nella risposta.

Applicabile solo quando utilizzi una configurazione GenerativeModel.

Non applicabile ai modelli Nano Banana o TTS.

---
Configurazioni specializzate
Ragionamento
thinkingConfig

Controlla il "processo di ragionamento" dei modelli durante la generazione di una risposta.

  • Controlla la quantità di ragionamento che il modello può eseguire utilizzando un livello di ragionamento.
  • Controllare se includere i riepiloghi dei pensieri.

Valori supportati: consulta la documentazione sul ragionamento

Non applicabile ai modelli TTS.

Firebase AI Logic non supporta ancora l'impostazione di un thinkingConfig per i modelli Live API.

Dipende dal modello
Modalità di risposta
responseModalities
Specifica il tipo di output (ad esempio testo, audio o immagini). Applicabile (e obbligatorio) solo quando utilizzi i modelli Nano Banana, TTS e Live API. ---
Caratteristiche delle immagini
imageConfig
Specifica le proporzioni e la risoluzione delle immagini generate.

Valori supportati: consulta Configura la generazione di immagini

Applicabile solo quando utilizzi i modelli Nano Banana.

Proporzioni 1:1 (quadrato)
Risoluzione 1024 x 1024
Voce
speechConfig
Specifica la voce utilizzata per l'output audio. Applicabile solo quando si utilizzano modelli TTS e modelli Live API.

Obbligatorio per i modelli TTS.
Puck
Rilevamento di attività vocale (VAD)
realtimeInputConfig
Configura il rilevamento di attività vocale (VAD), la gestione delle interruzioni e la copertura del contesto del turno o disattiva il VAD automatico.

Valori supportati: consulta Configura VAD

Applicabile solo quando utilizzi i modelli Live API.

VAD abilitato

Consulta i valori predefiniti per le singole impostazioni.



Altre opzioni per controllare la generazione di contenuti

  • Scopri di più sulla progettazione dei prompt per influenzare il modello in modo che generi un output specifico per le tue esigenze.
  • Utilizza le impostazioni di sicurezza per regolare la probabilità di ricevere risposte che potrebbero essere considerate dannose, tra cui incitamento all'odio e contenuti sessualmente espliciti.
  • Imposta le istruzioni di sistema per guidare il comportamento del modello. Questa funzionalità è come un preambolo che aggiungi prima che il modello venga esposto a ulteriori istruzioni dell'utente finale.
  • Passa uno schema di risposta insieme al prompt per specificare uno schema di output specifico. Questa funzionalità viene utilizzata più comunemente per generare output JSON, ma può essere utilizzata anche per attività di classificazione (ad esempio quando vuoi che il modello utilizzi etichette o tag specifici).