Paramètres de sécurité

L'API Gemini fournit des paramètres de sécurité que vous pouvez ajuster lors de la phase de prototypage pour déterminer si votre application nécessite une configuration de sécurité plus ou moins restrictive. Vous pouvez ajuster ces paramètres dans les catégories de filtres pour restreindre ou autoriser certains types de contenus.

Ce guide explique comment définir des paramètres de sécurité pour une interaction, ce qui se passe lorsque du contenu est bloqué, et les catégories et seuils que vous pouvez utiliser.

Définir des paramètres de sécurité

Transmettez une liste de safety_settings lorsque vous créez une interaction. Chaque paramètre associe une catégorie de préjudice (type) à un seuil de blocage (threshold).

L'exemple suivant définit la catégorie d'incitation à la haine (hate_speech) sur block_low_and_above, ce qui bloque tout contenu dont la probabilité d'être une incitation à la haine est faible ou plus élevée :

Python

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input="Some potentially unsafe prompt.",
    safety_settings=[
        {
            "type": "hate_speech",
            "threshold": "block_low_and_above",
        }
    ],
)

print(interaction.output_text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({});

async function main() {
  const interaction = await ai.interactions.create({
    model: "gemini-3.8-flash",
    input: "Some potentially unsafe prompt.",
    safety_settings: [
      {
        type: "hate_speech",
        threshold: "block_low_and_above",
      },
    ],
  });
  console.log(interaction.output_text);
}

await main();

Java

import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.HarmCategory;
import com.google.genai.gaos.models.interactions.Interaction;
import com.google.genai.gaos.models.interactions.InteractionsInput;
import com.google.genai.gaos.models.interactions.Model;
import com.google.genai.gaos.models.interactions.SafetySetting;
import com.google.genai.gaos.models.interactions.Threshold;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;
import java.util.List;

Client client = new Client();

SafetySetting hateSpeechSafety =
    SafetySetting.builder()
        .type(HarmCategory.HATE_SPEECH)
        .threshold(Threshold.BLOCK_LOW_AND_ABOVE)
        .build();

CreateModelInteraction params =
    CreateModelInteraction.builder()
        .model(Model.of("gemini-3.8-flash"))
        .input(InteractionsInput.of("Some potentially unsafe prompt."))
        .safetySettings(List.of(hateSpeechSafety))
        .build();

Interaction interaction =
    client.interactions.create(CreateInteractionRequestBody.of(params)).interaction().get();

System.out.println(interaction.outputText().orElse(""));

Go

package main

import (
    "context"
    "fmt"
    "log"

    "google.golang.org/genai"
    "google.golang.org/genai/interactions/models/interactions"
    "google.golang.org/genai/interactions/models/operations"
)

func main() {
    ctx := context.Background()
    client, err := genai.NewClient(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }

    res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
        Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
            Model: interactions.Model("gemini-3.8-flash"),
            Input: interactions.NewInteractionsInput("Some potentially unsafe prompt."),
            SafetySettings: []interactions.SafetySetting{
                {
                    Type:      interactions.HarmCategoryHateSpeech,
                    Threshold: interactions.ThresholdBlockLowAndAbove,
                },
            },
        }),
    })
    if err != nil {
        log.Fatal(err)
    }

    if res.Interaction.OutputText != nil {
        fmt.Println(*res.Interaction.OutputText)
    }
}

REST

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -H "Api-Revision: 2026-05-20" \
  -d '{
    "model": "gemini-3.8-flash",
    "input": "Some potentially unsafe prompt.",
    "safety_settings": [
      {"type": "hate_speech", "threshold": "block_low_and_above"}
    ]
  }'

Vous pouvez inclure un paramètre par catégorie. Les catégories que vous ne définissez pas utilisent le seuil par défaut, qui est Désactivé pour les modèles Gemini 2.5 et versions ultérieures.

Lorsque du contenu est bloqué

Si un filtre de sécurité bloque l'entrée ou la réponse du modèle, l'interaction échoue avec une erreur HTTP 400. Le contenu bloqué n'est pas renvoyé.

Le code d'erreur vous indique pourquoi la requête a été bloquée :

  • safety : l'entrée ou la réponse a été bloquée par un filtre de sécurité.
  • jailbreak, prohibited_content ou blocklist : l'entrée a été bloquée pour cette raison. Le message d'erreur commence par Input blocked:.

Exemple :

{
  "error": {
    "code": "safety",
    "message": "Request blocked due to safety violations (harmful content). Please modify your input and retry."
  }
}

Pour les interactions en arrière-plan (background=true), le status de l'interaction est défini sur failed, et le même code et le même message apparaissent dans sa liste errors. Lors de la diffusion en flux continu, l'erreur se présente sous la forme d'un événement error.

Filtres de sécurité

Les filtres de sécurité ajustables de l'API Gemini couvrent les catégories suivantes :

Catégorie Valeur (API) Description
Harcèlement harassment Contenu abusif, menaçant ou destiné à intimider, à tourmenter ou à ridiculiser.
Incitation à la haine hate_speech Contenu qui promeut la violence ou incite à la haine contre des personnes ou des groupes en fonction de certains attributs.
Caractère sexuel explicite sexually_explicit Contenu à caractère sexuel explicite.
Dangereux dangerous_content Contenu qui promeut, facilite ou permet des activités dangereuses.
Jailbreak jailbreak Prompts conçus pour contourner les filtres de sécurité.

Couvrant plusieurs catégories, ces filtres vous permettent d'ajuster les paramètres selon les besoins de votre cas d'utilisation. Par exemple, si vous créez des dialogues de jeux vidéo, vous pouvez juger acceptable d'autoriser davantage de contenus considérés comme dangereux en raison de la nature du jeu.

En plus des filtres de sécurité ajustables, l'API Gemini dispose de protections intégrées contre les préjudices principaux, tels que les contenus qui mettent en danger la sécurité des enfants. Ces types de préjudices sont toujours bloqués et ne peuvent pas être ajustés.

Seuils de blocage

En raison de la sécurité inhérente au modèle, les filtres supplémentaires sont désactivés par défaut. Le comportement par défaut du modèle couvre la plupart des cas d'utilisation. Vous ne devez donc ajuster ces paramètres que si cela est systématiquement nécessaire pour votre application.

Le tableau suivant décrit les seuils que vous pouvez définir pour chaque catégorie. Par exemple, si vous définissez Incitation à la haine sur Bloquer quelques éléments (block_only_high), les contenus dont la probabilité d'être une incitation à la haine est élevée sont bloqués, et tout ce qui a une probabilité inférieure est autorisé.

Seuil (Google AI Studio) Seuil (API) Description
Désactivé off Désactiver le filtre de sécurité
Bloquer quelques éléments block_only_high Bloquer lorsque la probabilité d'un contenu non sécurisé est élevée
Bloquer certains éléments block_medium_and_above Bloquer lorsque la probabilité moyenne ou élevée de contenu non sécurisé est présente
Bloquer la plupart des éléments block_low_and_above Bloquer lorsque la probabilité faible, moyenne ou élevée de contenu non sécurisé est présente

Probabilité et gravité

L'API Gemini évalue la probabilité qu'un contenu soit non sécurisé comme élevée, moyenne, faible ou négligeable. Elle bloque le contenu en fonction de cette probabilité, et non de la gravité du préjudice. Certains contenus peuvent avoir une faible probabilité d'être non sécurisés, même si le préjudice peut être grave. Par exemple, comparez ces phrases :

  1. Le robot m'a frappé.
  2. Le robot m'a tranché.

La première phrase peut avoir une probabilité plus élevée d'être non sécurisée, mais vous pouvez considérer la seconde comme plus grave. Effectuez des tests minutieux pour trouver le niveau de blocage qui prend en charge votre cas d'utilisation tout en minimisant les dommages aux utilisateurs finaux.

Ajuster les paramètres de sécurité dans Google AI Studio

Cliquez sur Paramètres de sécurité sous Paramètres avancés dans le panneau Paramètres d'exécution pour ouvrir la fenêtre modale Exécuter les paramètres de sécurité. Dans la fenêtre modale, vous pouvez utiliser les curseurs pour ajuster le niveau de filtrage du contenu par catégorie de sécurité :

Lorsque vous envoyez une requête (par exemple, en posant une question au modèle), un message Contenu bloqué s'affiche si le contenu de la requête est bloqué. Pour en savoir plus, placez le pointeur sur le texte Contenu bloqué pour afficher la catégorie et la probabilité de la classification du préjudice.

Étapes suivantes

  • Consultez la documentation de référence de l'API Interactions pour en savoir plus sur l'API complète.
  • Consultez les consignes de sécurité pour obtenir une vue d'ensemble des considérations de sécurité lors du développement avec des LLM.
  • En savoir plus sur l'évaluation de la probabilité par rapport à la gravité auprès de l'équipe Jigsaw.
  • En savoir plus sur les produits qui contribuent aux solutions de sécurité, comme l' API Perspective.