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 il génère une réponse. Chaque modèle propose différentes options de configuration.

Vous pouvez également tester les requêtes et les configurations de modèle à l'aide de Google AI Studio.

Accéder aux options de configuration Gemini Accéder aux options de configuration Imagen (obsolète)



Configurer les modèles Gemini

Cliquez sur votre fournisseur Gemini API pour afficher le contenu spécifique au fournisseur et le code sur cette page.

Cette section explique comment configurer une configuration à utiliser avec les Gemini modèles et fournit une description de chaque paramètre.

Configurer une configuration de modèle (Gemini)

Configuration pour les cas d'utilisation généraux Gemini

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

Swift

Définissez les valeurs des paramètres dans un GenerationConfig lors de la création d'une GenerativeModel instance.


import FirebaseAILogic

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
let config = GenerationConfig(
  candidateCount: 1,
  temperature: 0.9,
  topP: 0.1,
  topK: 16,
  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

Définissez les valeurs des paramètres dans un GenerationConfig lors de la création d'une GenerativeModel instance.


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
val config = generationConfig {
    candidateCount = 1
    maxOutputTokens = 200
    stopSequences = listOf("red")
    temperature = 0.9f
    topK = 16
    topP = 0.1f
}

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

Définissez les valeurs des paramètres dans un GenerationConfig lors de la création d'une GenerativeModel instance.


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
GenerationConfig.Builder configBuilder = new GenerationConfig.Builder();
configBuilder.candidateCount = 1;
configBuilder.maxOutputTokens = 200;
configBuilder.stopSequences = List.of("red");
configBuilder.temperature = 0.9f;
configBuilder.topK = 16;
configBuilder.topP = 0.1f;

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

Définissez les valeurs des paramètres dans un GenerationConfig lors de la création d'une GenerativeModel instance.


// ...

// 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.
const generationConfig = {
  candidate_count: 1,
  maxOutputTokens: 200,
  stopSequences: ["red"],
  temperature: 0.9,
  topP: 0.1,
  topK: 16,
};

// 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.
final generationConfig = GenerationConfig(
  candidateCount: 1,
  maxOutputTokens: 200,
  stopSequences: ["red"],
  temperature: 0.9,
  topP: 0.1,
  topK: 16,
);

// 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',
  config: generationConfig,
);

// ...

Unity

Définissez les valeurs des paramètres dans un GenerationConfig lors de la création d'une GenerativeModel instance.


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
var generationConfig = new GenerationConfig(
  candidateCount: 1,
  maxOutputTokens: 200,
  stopSequences: new string[] { "red" },
  temperature: 0.9f,
  topK: 16,
  topP: 0.1f
);

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

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

Configuration pour Gemini Live API

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

Swift

Définissez les valeurs des paramètres dans le liveGenerationConfig lors de l'initialisation de l'instance LiveModel :


// ...

// Set parameter values in a `LiveGenerationConfig` (example values shown here)
let config = LiveGenerationConfig(
  temperature: 0.9,
  topP: 0.1,
  topK: 16,
  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

Définissez les valeurs des paramètres dans un LiveGenerationConfig lors de la création d'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)
    temperature = 0.9f
    topK = 16
    topP = 0.1f
}

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

Définissez les valeurs des paramètres dans un LiveGenerationConfig lors de la création d'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));
configBuilder.setTemperature(0.9f);
configBuilder.setTopK(16);
configBuilder.setTopP(0.1f);

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

Définissez les valeurs des paramètres dans le LiveGenerationConfig lors de l'initialisation de l'instance LiveGenerativeModel :


// ...

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" },
    },
  },
  temperature: 0.9,
  topP: 0.1,
  topK: 16,
};

// 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'),
  temperature: 0.9,
  topP: 0.1,
  topK: 16,
);

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

// ...

Unity

Définissez les valeurs des paramètres dans un LiveGenerationConfig lors de la création d'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"),
  temperature: 0.9f,
  topK: 16,
  topP: 0.1f
);

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

// ...

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

Description des paramètres (Gemini)

Voici une présentation générale des paramètres disponibles, le cas échéant. Vous trouverez une liste complète des paramètres et de leurs valeurs dans la Gemini Developer API documentation.

Paramètre Description Valeur par défaut
Code temporel audio
audioTimestamp

Booléen qui active la compréhension des codes temporels pour les fichiers d'entrée audio uniquement fichiers.

Ne s'applique que lorsque vous utilisez des appels generateContent ou generateContentStream 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 : 1 à 8 (valeur comprise)

Ne s'applique que lorsque vous utilisez generateContent et les derniers modèles Gemini. Les modèles Live API et generateContentStream ne sont pas compatibles.

1
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.
---
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 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é.
---
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

---
Température
temperature
Contrôle le degré de hasard dans la réponse.
Des températures plus basses entraînent des réponses plus déterministes, tandis que des températures plus élevées entraînent des réponses plus diversifiées ou créatives.
Dépend du modèle
Top-K
topK
Limite le nombre de mots les plus probables utilisés dans le contenu généré.
Une valeur top-K de 1 signifie que le prochain jeton sélectionné doit être le plus probable parmi tous les jetons du vocabulaire du modèle, tandis qu'une valeur top-K de n signifie que le jeton suivant doit être sélectionné parmi les n jetons les plus probables (tous basés sur la température définie).
Dépend du modèle
Top-P
topP
Contrôle la diversité du contenu généré.
Les jetons sont sélectionnés en partant de la probabilité la plus forte (voir top-K ci-dessus) à la plus basse, jusqu'à ce que la somme de leurs probabilités soit égale à la valeur top-P.
Dépend du modèle
Modalité de réponse
responseModality

Spécifie le type de sortie diffusée lorsque vous utilisez le Live API ou la sortie multimodale native par un Gemini modèle, par exemple du texte, de l'audio ou des images.

Ne s'applique que lorsque vous utilisez les modèles Live API ou un modèle Gemini capable de sortie multimodale.

---
Voix
speechConfig

Spécifie la voix utilisée pour la sortie audio diffusée lorsque vous utilisez le Live API.

Ne s'applique que lorsque vous utilisez les modèles Live API.

Puck



Configurer les modèles Imagen

Cliquez sur votre fournisseur Imagen API pour afficher le contenu spécifique au fournisseur et le code sur cette page.

Cette section explique comment configurer une configuration à utiliser avec les Imagen modèles et fournit une description de chaque paramètre.

Configurer une configuration de modèle (Imagen)

La configuration est conservée pendant toute la durée de vie de l'instance. Si vous souhaitez utiliser une autre configuration, créez une instance ImagenModel avec cette configuration.

Swift

Définissez les valeurs des paramètres dans un ImagenGenerationConfig lors de la création d'une instance ImagenModel.


import FirebaseAILogic

// Set parameter values in a `ImagenGenerationConfig` (example values shown here)
let config = ImagenGenerationConfig(
  negativePrompt: "frogs",
  numberOfImages: 2,
  aspectRatio: .landscape16x9,
  imageFormat: .jpeg(compressionQuality: 100),
  addWatermark: false
)

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

// ...

Kotlin

Définissez les valeurs des paramètres dans un ImagenGenerationConfig lors de la création d'une instance ImagenModel.


// ...

// Set parameter values in a `ImagenGenerationConfig` (example values shown here)
val config = ImagenGenerationConfig {
    negativePrompt = "frogs",
    numberOfImages = 2,
    aspectRatio = ImagenAspectRatio.LANDSCAPE_16x9,
    imageFormat = ImagenImageFormat.jpeg(compressionQuality = 100),
    addWatermark = false
}

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

// ...

Java

Définissez les valeurs des paramètres dans un ImagenGenerationConfig lors de la création d'une instance ImagenModel.


// ...

// Set parameter values in a `ImagenGenerationConfig` (example values shown here)
ImagenGenerationConfig config = new ImagenGenerationConfig.Builder()
    .setNegativePrompt("frogs")
    .setNumberOfImages(2)
    .setAspectRatio(ImagenAspectRatio.LANDSCAPE_16x9)
    .setImageFormat(ImagenImageFormat.jpeg(100))
    .setAddWatermark(false)
    .build();

// Specify the config as part of creating the `ImagenModel` instance
ImagenModelFutures model = ImagenModelFutures.from(
        FirebaseAI.getInstance(GenerativeBackend.googleAI())
                .imagenModel(
                    "IMAGEN_MODEL_NAME",
                    config
                );
);

// ...

Web

Définissez les valeurs des paramètres dans un ImagenGenerationConfig lors de la création d'une instance ImagenModel.


// ...

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

// Set parameter values in a `ImagenGenerationConfig` (example values shown here)
const generationConfig = {
  negativePrompt: "frogs",
  numberOfImages: 2,
  aspectRatio: ImagenAspectRatio.LANDSCAPE_16x9,
  imageFormat: ImagenImageFormat.jpeg(100),
  addWatermark: false
};

// Specify the config as part of creating the `ImagenModel` instance
const model = getImagenModel(ai, { model: "IMAGEN_MODEL_NAME", generationConfig });

// ...

Dart

Définissez les valeurs des paramètres dans un ImagenGenerationConfig lors de la création d'une instance ImagenModel.


// ...

// Set parameter values in a `ImagenGenerationConfig` (example values shown here)
final generationConfig = ImagenGenerationConfig(
  negativePrompt: 'frogs',
  numberOfImages: 2,
  aspectRatio: ImagenAspectRatio.landscape16x9,
  imageFormat: ImagenImageFormat.jpeg(compressionQuality: 100)
  addWatermark: false
);

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

// ...

Unity

Définissez les valeurs des paramètres dans un ImagenGenerationConfig lors de la création d'une instance ImagenModel.


using Firebase.AI;

// Set parameter values in a `ImagenGenerationConfig` (example values shown here)
var config = new ImagenGenerationConfig(
  numberOfImages: 2,
  aspectRatio: ImagenAspectRatio.Landscape16x9,
  imageFormat: ImagenImageFormat.Jpeg(100)
);

// Initialize the Gemini Developer API backend service
// Specify the config as part of creating the `ImagenModel` instance
var model = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI()).GetImagenModel(
  modelName: "imagen-4.0-generate-001",
  generationConfig: config
);

// ...

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

Description des paramètres (Imagen)

Voici une présentation générale des paramètres disponibles, le cas échéant. Vous trouverez une liste complète des paramètres et de leurs valeurs dans la Google Cloud documentation.

Paramètre Description Valeur par défaut
Requête négative
negativePrompt
Description de ce que vous ne voulez pas voir dans les images générées

Ce paramètre n'est pas encore compatible avec imagen-3.0-generate-002.

---
Nombre de résultats
numberOfImages
Nombre d'images générées renvoyées pour chaque requête La valeur par défaut est une image.
Format
aspectRatio
Rapport entre la largeur et la hauteur des images générées La valeur par défaut est carré (1:1).
Format d'image
imageFormat
Options de sortie, telles que le format d'image (type MIME) et le niveau de compression des images générées Le type MIME par défaut est PNG
La compression par défaut est de 75 (si le type MIME est défini sur JPEG).
Filigrane
addWatermark
Indique si un filigrane numérique non visible (appelé un SynthID) doit être ajouté aux images générées La valeur par défaut est true.
Génération de personnes
personGeneration
Indique si la génération de personnes par le modèle est autorisée La valeur par défaut dépend du modèle.
Inclure les attributs de sécurité
includeSafetyAttributes
Indique si les scores d'IA responsable doivent être arrondis pour obtenir une liste d'attributs de sécurité dans les réponses d'entrée et de sortie non filtrées

Catégories d'attributs de sécurité : "Death, Harm & Tragedy", "Firearms & Weapons", "Hate", "Health", "Illicit Drugs", "Politics", "Porn", "Religion & Belief", "Toxic", "Violence", "Vulgarity", "War & Conflict".

La valeur par défaut est false.



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

  • Découvrez comment concevoir des requêtes prompt design pour influencer le modèle afin qu'il génère des résultats spécifiques à vos besoins.
  • Utilisez les paramètres de sécurité pour ajuster la probabilité d'obtenir des réponses qui peuvent être considérées comme nuisibles, y compris les discours haineux et les contenus à caractère sexuel explicite.
  • Définissez des instructions système pour orienter le comportement du modèle. Cette fonctionnalité s'apparente à 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 la requête pour spécifier un schéma de sortie spécifique. Cette fonctionnalité est le plus souvent utilisée lors de la génération de sorties JSON, mais elle peut également être utilisée pour les tâches de classification (par exemple, lorsque vous souhaitez que le modèle utilise des libellés ou des tags spécifiques).