Utiliser la configuration du modèle pour contrôler les réponses

Dans chaque appel à un modèle, vous pouvez envoyer une configuration de modèle pour contrôler la manière dont le modèle génère une réponse. Chaque modèle accepte différentes options de configuration, comme la définition de maxOutputTokens ou des configurations spécialisées pour la réflexion, les modalités de réponse, les images ou la parole.

Pour la majorité des cas d'utilisation lors de l'accès à un modèle Gemini, vous configurez le modèle à l'aide de GenerationConfig. Toutefois, si vous configurez un modèle Gemini Live API, vous devez utiliser LiveGenerationConfig.

Cette page explique comment configurer les modèles Gemini et fournit une description de chaque paramètre.

 Accéder à la configuration Gemini  Accéder à la configuration Gemini Live API

GenerationConfig pour les modèles Gemini

Cliquez sur votre fournisseur Gemini API pour afficher le contenu et le code spécifiques à ce fournisseur sur cette page.

Définissez un GenerationConfig pour la majorité des modèles Gemini, y compris les modèles à usage général, les modèles de génération d'images (modèles "Nano Banana") et les modèles de synthèse vocale (TTS).

La configuration est conservée pendant toute la durée de vie de l'instance GenerativeModel. Si vous souhaitez utiliser une autre configuration, créez et utilisez une autre instance avec une configuration différente.

Swift

Définissez les valeurs des paramètres dans un GenerationConfig lors de la création d'une instance 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

Définissez les valeurs des paramètres dans un GenerationConfig lors de la création d'une instance 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

Définissez les valeurs des paramètres dans un GenerationConfig lors de la création d'une instance 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

Définissez les valeurs des paramètres dans un GenerationConfig lors de la création d'une instance 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

Définissez les valeurs des paramètres dans un GenerationConfig lors de la création d'une instance 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

Définissez les valeurs des paramètres dans un GenerationConfig lors de la création d'une instance 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
);

Vous trouverez une description de chaque paramètre dans la section suivante de cette page.

Vous pouvez tester des requêtes et des configurations de modèle à l'aide de Agent  Studio.

LiveGenerationConfig pour les modèles Gemini Live API

Cliquez sur votre fournisseur Gemini API pour afficher le contenu et le code spécifiques à ce fournisseur sur cette page.

Définissez un LiveGenerationConfig uniquement lorsque vous utilisez des modèles Gemini Live API.

La configuration est conservée pendant toute la durée de vie de l'instance LiveModel. Si vous souhaitez utiliser une autre configuration, créez et utilisez une autre instance avec une configuration différente.

Swift

Définissez les valeurs des paramètres dans liveGenerationConfig lors de l'initialisation de l'instance 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

Définissez les valeurs des paramètres dans un LiveGenerationConfig lorsque vous créez une instance 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

Définissez les valeurs des paramètres dans un LiveGenerationConfig lorsque vous créez une instance 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

Définissez les valeurs des paramètres dans LiveGenerationConfig lors de l'initialisation de l'instance 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

Définissez les valeurs des paramètres dans un LiveGenerationConfig lors de la création d'une instance 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

Définissez les valeurs des paramètres dans un LiveGenerationConfig lorsque vous créez une instance 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
);

// ...

Vous trouverez une description de chaque paramètre dans la section suivante de cette page.

Vous pouvez tester des requêtes et des configurations de modèle à l'aide de Agent  Studio.



Description des paramètres

Le tableau suivant présente une vue d'ensemble des paramètres disponibles. Certains paramètres ne s'appliquent qu'à certains modèles.

Notez que la température, le top-K et le top-P sont obsolètes et ignorés par les derniers modèles Gemini.

Paramètre Description Limites Valeur par défaut
Code temporel audio
audioTimestamp
Active la compréhension des codes temporels pour les fichiers d'entrée contenant uniquement des données audio.

Booléen

Ne s'applique que lorsque vous utilisez une configuration GenerativeModel et que le type d'entrée est un fichier audio uniquement.

false
Nombre de candidats
candidateCount
Spécifie le nombre de variantes de réponse à renvoyer. Pour chaque requête, les jetons de sortie de tous les candidats vous sont facturés, mais vous ne payez qu'une seule fois pour les jetons d'entrée.

Valeurs acceptées : de 1 à 8 (valeur comprise)

Ne s'applique que lorsque vous utilisez generateContent.

Ne s'applique pas lorsque vous utilisez des modèles generateContentStream, TTS ou Live API.

1
Nombre maximal de jetons de sortie
maxOutputTokens
Spécifie le nombre maximal de jetons pouvant être générés dans la réponse. --- ---
Pénalité de fréquence
frequencyPenalty

Contrôle la probabilité d'inclure des jetons qui apparaissent de manière répétée dans la réponse générée.

Les valeurs positives pénalisent les jetons qui apparaissent de manière répétée dans le contenu généré, ce qui réduit la probabilité de répétition du contenu.

Non applicable aux modèles TTS. ---
Pénalité de présence
presencePenalty

Contrôle la probabilité d'inclure des jetons qui apparaissent déjà dans la réponse générée.

Les valeurs positives pénalisent les jetons qui apparaissent déjà dans le contenu généré, ce qui augmente la probabilité de générer un contenu plus diversifié.

Non applicable aux modèles TTS. ---
Séquences d'arrêt
stopSequences
Spécifie une liste de chaînes qui indiquent au modèle d'arrêter de générer du contenu si l'une des chaînes est détectée dans la réponse.

Ne s'applique que lorsque vous utilisez une configuration GenerativeModel.

Non applicable aux modèles TTS.

---
Configurations spécialisées
Réflexion
thinkingConfig

Contrôle le "processus de réflexion" des modèles lorsqu'ils génèrent une réponse.

  • Contrôlez la capacité de réflexion du modèle à l'aide d'un niveau de réflexion (modèles Gemini 3.x et ultérieurs).
  • Déterminez si vous souhaitez inclure des résumés de réflexion.

Valeurs acceptées : consultez la documentation sur la réflexion.

Non applicable aux modèles TTS.

Firebase AI Logic ne permet pas encore de définir un thinkingConfig pour les modèles Live API.

Dépend du modèle
Modalités de réponse
responseModalities
Spécifie le type de sortie (texte, audio ou images, par exemple). Ne s'applique (et est obligatoire) qu'en cas d'utilisation des modèles d'images Gemini ("Nano Banana"), des modèles TTS et des modèles Live API. ---
Caractéristiques des images
imageConfig
Spécifie le format et la résolution des images générées.

Valeurs acceptées : consultez Configurer la génération d'images.

Ne s'applique qu'aux modèles d'images Gemini (modèles "Nano Banana").

Format 1:1 (carré)
Résolution 1 024 x 1 024
Voix 
speechConfig
Spécifie la voix utilisée pour la sortie audio. Ne s'applique que lorsque vous utilisez des modèles TTS et Live API.

Requis pour les modèles TTS.
Puck





Autres options pour contrôler la génération de contenu

  • Découvrez la conception des requêtes pour influencer le modèle et générer des résultats spécifiques à vos besoins.
  • Utilisez les paramètres de sécurité pour ajuster la probabilité de recevoir des réponses qui peuvent être considérées comme nuisibles, y compris celles incitant à la haine et celles à caractère sexuel explicite.
  • Définissez des instructions système pour orienter le comportement du modèle. Cette fonctionnalité est semblable à un préambule que vous ajoutez avant que le modèle ne soit exposé à d'autres instructions de l'utilisateur final.
  • Transmettez un schéma de réponse avec le prompt pour spécifier un schéma de sortie spécifique. Cette fonctionnalité est le plus souvent utilisée pour générer des sorties JSON, mais elle peut également servir pour les tâches de classification (par exemple, lorsque vous souhaitez que le modèle utilise des libellés ou des tags spécifiques).