Paramètres de sécurité

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

Ce guide explique comment l'API Gemini gère les paramètres de sécurité, le filtrage et comment modifier les paramètres de sécurité de votre application.

Filtres de sécurité

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

Catégorie Description
Harcèlement Commentaires négatifs ou nuisibles ciblant une identité et/ou protégés .
Incitation à la haine Contenu offensant, irrespectueux ou grossier.
Caractère sexuel explicite Contient des références à des actes sexuels ou à d'autres contenus obscènes.
Dangereux Contenu qui encourage, facilite ou encourage des actes dangereux

Vous pouvez utiliser ces filtres pour ajuster ce qui convient à votre cas d'utilisation. Pour Par exemple, si vous créez des dialogues de jeu vidéo, vous pouvez considérer qu'il est acceptable autoriser plus de contenus classés Dangereux en raison de la nature du jeu.

En plus des filtres de sécurité ajustables, l'API Gemini intègre des fonctionnalités des protections contre les préjudices majeurs, comme 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 modifiés.

Niveau de filtrage de la sécurité du contenu

L'API Gemini classe la probabilité qu'un contenu soit dangereux HIGH, MEDIUM, LOW ou NEGLIGIBLE.

L'API Gemini bloque les contenus en fonction de la probabilité qu'ils soient dangereux et non la gravité. C’est important à prendre en compte car certains contenus peuvent présentent une faible probabilité d'être dangereux, même si la gravité du préjudice pourrait rester élevé. Par exemple, si vous comparez les phrases:

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

La première phrase peut augmenter la probabilité d'être dangereux, mais vous pourrait considérer que la deuxième phrase est plus grave en termes de violence. Il est donc important de tester soigneusement le niveau de blocage approprié est nécessaire pour soutenir vos principaux cas d'utilisation afin de minimiser les dommages pour les utilisateurs finaux.

Filtrage de sécurité par requête

Vous pouvez ajuster les paramètres de sécurité pour chaque requête que vous envoyez à l'API. Quand ? lorsque vous envoyez une demande, le contenu est analysé et une évaluation de sécurité lui est attribuée. La La note de sécurité inclut la catégorie et la probabilité du préjudice la classification. Par exemple, si le contenu a été bloqué en raison d'un harcèlement catégorie ayant une probabilité élevée, la cote de sécurité renvoyée aurait la catégorie est égale à HARASSMENT et la probabilité de préjudice est définie sur HIGH.

Par défaut, les paramètres de sécurité bloquent le contenu (y compris les invites) comportant des plus la probabilité d’être dangereuse sur tous les filtres. Cette sécurité de référence est conçu pour fonctionner dans la plupart des cas. Vous ne devez donc ajuster que vos paramètres de sécurité s'ils sont systématiquement requis pour votre application.

Le tableau suivant décrit les paramètres de blocage que vous pouvez ajuster pour chaque catégorie. Par exemple, si vous définissez le paramètre de blocage sur Bloquer peu pour Catégorie Incitation à la haine, tout ce qui est susceptible d'être haineux le contenu vocal est bloqué. Cependant, toute valeur plus faible est autorisée.

Seuil (Google AI Studio) Seuil (API) Description
Ne rien bloquer BLOCK_NONE Toujours afficher, quelle que soit la probabilité de présence de contenu non sécurisé
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 si la probabilité que le contenu soit dangereux est faible, moyenne ou élevée
N/A HARM_BLOCK_THRESHOLD_UNSPECIFIED Le seuil n'est pas spécifié. Le blocage est effectué selon le seuil par défaut.

Si cette règle n'est pas configurée, le paramètre de blocage par défaut est Bloquer une partie pour toutes les catégories.

Vous pouvez définir ces paramètres pour chaque requête que vous envoyez au service génératif. Voir l'API HarmBlockThreshold pour en savoir plus.

Commentaires sur la sécurité

generateContent renvoie un GenerateContentResponse : inclut des commentaires sur la sécurité.

Les commentaires rapides sont inclus dans promptFeedback Si promptFeedback.blockReason est défini, cela signifie que le contenu de l'invite a été bloqué.

Les commentaires des candidats à la réponse sont inclus dans Candidate.finishReason et Candidate.safetyRatings Réponse "If" contenu a été bloqué et que le finishReason était SAFETY, vous pouvez inspecter safetyRatings pour en savoir plus. Le contenu qui a été bloqué n'est pas renvoyé.

Ajuster les paramètres de sécurité

Cette section explique comment ajuster les paramètres de sécurité dans Google AI Studio et dans votre code.

Google AI Studio

Vous pouvez ajuster les paramètres de sécurité dans Google AI Studio, mais vous ne pouvez pas les activer désactivée.

Cliquez sur Modifier les paramètres de sécurité dans le panneau Paramètres d'exécution pour ouvrir l'option Exécuter. de sécurité. Dans la fenêtre modale, vous pouvez utiliser les curseurs pour ajuster 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 Le message Aucun contenu s'affiche si le contenu de la requête est bloqué. Pour en voir plus détails, maintenez le pointeur de la souris sur le Aucun contenu, puis cliquez sur . Sécurité.

SDK de l'API Gemini

L'extrait de code suivant montre comment définir les paramètres de sécurité dans votre GenerateContent appel. Ce cas de figure définit le cas de harcèlement (HARM_CATEGORY_HARASSMENT) et les catégories "Incitation à la haine" (HARM_CATEGORY_HATE_SPEECH) pour BLOCK_LOW_AND_ABOVE, qui bloque tout contenu dont la le harcèlement ou l'incitation à la haine.

Python

from google.generativeai.types import HarmCategory, HarmBlockThreshold

model = genai.GenerativeModel(model_name='gemini-1.5-flash')
response = model.generate_content(
    ['Do these look store-bought or homemade?', img],
    safety_settings={
        HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
    }
)

Go

model := client.GenerativeModel("gemini-1.5-flash")

model.SafetySettings = []*genai.SafetySetting{
  {
    Category:  genai.HarmCategoryHarassment,
    Threshold: genai.HarmBlockOnlyLowAndAbove,
  },
  {
    Category:  genai.HarmCategoryHateSpeech,
    Threshold: genai.HarmBlockOnlyLowAndAbove,
  },
}

Node.js

import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";

// ...

const safetySetting = [
  {
    category: HarmCategory.HARM_CATEGORY_HARASSMENT,
    threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
  },
  {
    category: HarmCategory.HARM_CATEGORY_HATE_SPEECH,
    threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
  },
];

const model = genAi.getGenerativeModel({ model: "gemini-1.5-flash", safetySettings });

Web

import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";

// ...

const safetySetting = [
  {
    category: HarmCategory.HARM_CATEGORY_HARASSMENT,
    threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
  },
  {
    category: HarmCategory.HARM_CATEGORY_HATE_SPEECH,
    threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
  },
];

const model = genAi.getGenerativeModel({ model: "gemini-1.5-flash", safetySettings });

Dart (Flutter)

final safetySettings = [
  SafetySetting(HarmCategory.harassment, HarmBlockThreshold.low),
  SafetySetting(HarmCategory.hateSpeech, HarmBlockThreshold.low),
];
final model = GenerativeModel(
  model: 'gemini-1.5-flash',
  apiKey: apiKey,
  safetySettings: safetySettings,
);

Kotlin

val harassmentSafety = SafetySetting(HarmCategory.HARASSMENT, BlockThreshold.LOW_AND_ABOVE)

val hateSpeechSafety = SafetySetting(HarmCategory.HATE_SPEECH, BlockThreshold.LOW_AND_ABOVE)

val generativeModel = GenerativeModel(
    modelName = "gemini-1.5-flash",
    apiKey = BuildConfig.apiKey,
    safetySettings = listOf(harassmentSafety, hateSpeechSafety)
)

Java

SafetySetting harassmentSafety = new SafetySetting(HarmCategory.HARASSMENT,
    BlockThreshold.LOW_AND_ABOVE);

SafetySetting hateSpeechSafety = new SafetySetting(HarmCategory.HATE_SPEECH,
    BlockThreshold.LOW_AND_ABOVE);

GenerativeModel gm = new GenerativeModel(
    "gemini-1.5-flash",
    BuildConfig.apiKey,
    null, // generation config is optional
    Arrays.asList(harassmentSafety, hateSpeechSafety)
);

GenerativeModelFutures model = GenerativeModelFutures.from(gm);

Étapes suivantes

  • Consultez la documentation de référence de l'API pour en savoir plus sur l'API complète.
  • Consultez les consignes de sécurité pour obtenir des informations générales sur la sécurité. lors du développement avec les LLM.
  • Pour en savoir plus sur l'évaluation des probabilités par rapport à la gravité, accédez au Jigsaw équipe
  • Apprenez-en plus sur les produits qui contribuent aux solutions de sécurité comme le Perspective API. * Vous pouvez utiliser ces paramètres de sécurité pour créer une toxicité classificateur. Voir la classification exemple par pour commencer.