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 propose différentes options de configuration.

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

 Accéder aux options de configuration de Gemini  Accéder aux options de configuration de Imagen



Configurer les modèles Gemini

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

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

Configurer une configuration de modèle (Gemini)

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

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 lorsque vous créez une instance GenerativeModel.


import FirebaseAI

// Set parameter values in a `GenerationConfig` (example values shown here)
let config = GenerationConfig(
  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 lorsque vous créez une instance GenerativeModel.


// ...

// Set parameter values in a `GenerationConfig` (example values shown here)
val config = generationConfig {
    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 lorsque vous créez une instance GenerativeModel.


// ...

// Set parameter values in a `GenerationConfig` (example values shown here)
GenerationConfig.Builder configBuilder = new GenerationConfig.Builder();
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 lorsque vous créez une instance GenerativeModel.


// ...

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

// Set parameter values in a `GenerationConfig` (example values shown here)
const generationConfig = {
  max_output_tokens: 200,
  stop_sequences: ["red"],
  temperature: 0.9,
  top_p: 0.1,
  top_k: 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` (example values shown here)
final generationConfig = GenerationConfig(
  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 lorsque vous créez une instance GenerativeModel.


// ...

// Set parameter values in a `GenerationConfig` (example values shown here)
var generationConfig = new GenerationConfig(
  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

Description des paramètres (Gemini)

Voici un aperçu des paramètres disponibles, le cas échéant. Vous trouverez une liste complète des paramètres et de leurs valeurs dans la documentation Gemini Developer API.

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

Valeur booléenne qui permet de comprendre les codes temporels pour les fichiers d'entrée audio uniquement.

Ne s'applique qu'aux appels generateContent ou generateContentStream lorsque le type d'entrée est un fichier audio uniquement.

false
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 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 ayant la plus forte probabilité 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 (le tout en fonction de 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 du plus probable (voir top-K ci-dessus) au moins probable, 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 en streaming lorsque vous utilisez la sortie multimodale Live API ou native par un modèle Gemini, par exemple du texte, de l'audio ou des images.

Ne s'applique que lorsque vous utilisez Live API et une configuration LiveModel, ou lorsque vous utilisez un modèle Gemini capable de générer des résultats multimodaux.

---
Voix
speechConfig

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

Ne s'applique que lorsque vous utilisez Live API et une configuration LiveModel.

Puck



Configurer les modèles Imagen

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

Cette section vous explique comment configurer les modèles Imagen 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 FirebaseAI

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

L'utilisation de Imagen n'est pas encore prise en charge pour Unity, mais revenez bientôt !

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

Description des paramètres (Imagen)

Voici un aperçu des paramètres disponibles, le cas échéant. Vous trouverez une liste complète des paramètres et de leurs valeurs dans la documentation Google Cloud.

Paramètre Description Valeur par défaut
Requête négative
negativePrompt
Description de ce que vous ne voulez pas voir apparaître 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 d'une image pour les modèles Imagen 3.
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 de l'image
imageFormat
Options de sortie, comme 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é SynthID) doit être ajouté aux images générées. La valeur par défaut est true pour les modèles Imagen 3.
Génération de personnes
personGeneration
Indique si le modèle est autorisé à générer des personnes. La valeur par défaut dépend du modèle.



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é d'obtenir des réponses qui peuvent être considérées comme nuisibles, y compris des contenus incitant à la haine et à 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 la requête 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 ê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).