Sicherheits­einstellungen

Die Gemini API bietet Sicherheitseinstellungen, die Sie während der Prototyping-Phase anpassen können, um zu ermitteln, ob Ihre Anwendung eine mehr oder weniger restriktive Sicherheitskonfiguration erfordert. Sie können diese Einstellungen in fünf Filterkategorien anpassen, um bestimmte Arten von Inhalten zuzulassen oder zu beschränken.

In diesem Leitfaden wird beschrieben, wie die Gemini API Sicherheitseinstellungen und Filterung handhabt und wie Sie die Sicherheitseinstellungen für Ihre Anwendung ändern können.

Sicherheitsfilter

Die anpassbaren Sicherheitsfilter der Gemini API decken die folgenden Kategorien ab:

Kategorie Beschreibung
Belästigung Negative oder schädliche Kommentare, die auf Identität und/oder geschützte Merkmale ausgerichtet sind.
Hassrede Unhöfliche, respektlose oder vulgäre Inhalte.
Sexuell explizite Inhalte Enthält Verweise auf sexuelle Handlungen oder andere vulgäre Inhalte
Gefährlich Inhalte, die gefährliche Handlungen fördern oder erleichtern bzw. dazu ermuntern.
Integrität öffentlicher Aussagen Wahlbezogene Anfragen.

Sie können diese Filter verwenden, um die für Ihren Anwendungsfall passenden Einstellungen vorzunehmen. Wenn Sie beispielsweise Dialoge für ein Videospiel erstellen, halten Sie es aufgrund der Art des Spiels möglicherweise für akzeptabel, mehr Inhalte zuzulassen, die als gefährlich eingestuft wurden.

Zusätzlich zu den anpassbaren Sicherheitsfiltern bietet die Gemini API integrierte Schutzmaßnahmen gegen grundlegend schädliche Inhalte, wie solche, die die Sicherheit von Kindern gefährden. Diese Arten von Schäden werden immer blockiert und können nicht angepasst werden.

Filterstufe für die Sicherheit von Inhalten

In der Gemini API wird die Wahrscheinlichkeit, dass Inhalte unsicher sind, in die Kategorien HIGH, MEDIUM, LOW oder NEGLIGIBLE eingeteilt.

Die Gemini API blockiert Inhalte auf Grundlage der Wahrscheinlichkeit, dass Inhalte unsicher sind, nicht auf dem Schweregrad der Probleme. Dies ist wichtig, da einige Inhalte mit geringer Wahrscheinlichkeit unsicher sind, obwohl der Schweregrad des Schadens hoch sein kann. Vergleichen Sie beispielsweise folgende Sätze:

  1. Der Roboter hat mich geboxt.
  2. Der Roboter hat mich in Stücke geschnitten.

Der erste Satz kann zu einer höheren Wahrscheinlichkeit führen, dass er unsicher ist, aber Sie können den zweiten Satz in Bezug auf Gewalt als schwerwiegender einstufen. Daher ist es wichtig, dass Sie Tests sorgfältig durchführen und überlegen, welches Maß an Sicherheitsblockaden zur Unterstützung Ihrer wichtigsten Anwendungsfälle erforderlich ist, während gleichzeitig der Schaden für Endnutzer minimiert wird.

Sicherheitsfilterung pro Anfrage

Sie können die Sicherheitseinstellungen für jede Anfrage an die API anpassen. Wenn Sie eine Anfrage stellen, wird der Inhalt analysiert und erhält eine Sicherheitsbewertung. Die Sicherheitsbewertung umfasst sowohl die jeweilige Kategorie als auch die Wahrscheinlichkeit einer Klassifizierung als schädlich. Wenn die Inhalte beispielsweise blockiert wurden, weil die Kategorie „Belästigung“ eine hohe Wahrscheinlichkeit aufwies, würde die zurückgegebene Sicherheitsbewertung die Kategorie HARASSMENT und die Wahrscheinlichkeit für Schäden HIGH enthalten.

Standardmäßig blockieren Sicherheitseinstellungen Inhalte (einschließlich Prompts), wenn die Wahrscheinlichkeit für unsichere Inhalte in einem der Filter mittel oder hoch ist. Diese Basiseinstellung wurde gewählt, weil sie für die meisten Anwendungsfälle geeignet ist. Passen Sie die Einstellungen für die Sicherheit also nur an, wenn dies durchgehend für Ihre Anwendung erforderlich ist.

In der folgenden Tabelle werden die Blockierungseinstellungen beschrieben, die Sie für jede Kategorie anpassen können. Wenn Sie beispielsweise die Blockierungseinstellung für die Kategorie Hassrede auf Wenige blockieren setzen, werden alle Inhalte blockiert, die mit hoher Wahrscheinlichkeit Hassrede enthalten. Alles mit einer niedrigeren Wahrscheinlichkeit ist zulässig.

Grenzwert (Google AI Studio) Grenzwert (API) Beschreibung
Keine blockieren BLOCK_NONE Unabhängig von der Wahrscheinlichkeit unsicherer Inhalte immer anzeigen
Wenige blockieren BLOCK_ONLY_HIGH Blockieren, wenn die Wahrscheinlichkeit für unsichere Inhalte hoch ist
Einige blockieren BLOCK_MEDIUM_AND_ABOVE Blockieren, wenn die Wahrscheinlichkeit für unsichere Inhalte mittel oder hoch ist
Meiste blockieren BLOCK_LOW_AND_ABOVE Blockieren, wenn die Wahrscheinlichkeit für unsichere Inhalte niedrig, mittel oder hoch ist
HARM_BLOCK_THRESHOLD_UNSPECIFIED Der Grenzwert ist nicht angegeben, nach dem Standardschwellenwert blockieren

Wenn der Schwellenwert nicht festgelegt ist, ist der Standardschwellenwert für das Blockieren für alle Kategorien außer der Kategorie Civic integrity Block none (für gemini-1.5-pro-002 und gemini-1.5-flash-002 und alle neueren stabilen GA-Modelle) oder Block some (in allen anderen Modellen).

Der Standardblockierungsschwellenwert für die Kategorie Civic integrity ist Block none (für gemini-2.0-flash-001 als Alias für gemini-2.0-flash, gemini-2.0-pro-exp-02-05 und gemini-2.0-flash-lite) sowohl für Google AI Studio als auch für die Gemini API und Block most nur für alle anderen Modelle in Google AI Studio.

Sie können diese Einstellungen für jede Anfrage festlegen, die Sie an den generativen Dienst senden. Weitere Informationen finden Sie in der API-Referenz zu HarmBlockThreshold.

Sicherheitsfeedback

generateContent gibt ein GenerateContentResponse mit Sicherheitsfeedback zurück.

Prompt-Feedback ist in promptFeedback enthalten. Wenn promptFeedback.blockReason festgelegt ist, wurde der Inhalt des Prompts blockiert.

Das Feedback zu Antwortkandidaten ist in Candidate.finishReason und Candidate.safetyRatings enthalten. Wenn Antwortinhalte blockiert wurden und finishReason SAFETY war, können Sie safetyRatings auf weitere Details prüfen. Die blockierten Inhalte werden nicht zurückgegeben.

Sicherheitseinstellungen anpassen

In diesem Abschnitt wird beschrieben, wie Sie die Sicherheitseinstellungen sowohl in Google AI Studio als auch in Ihrem Code anpassen.

Google AI Studio

Sie können die Sicherheitseinstellungen in Google AI Studio anpassen, aber nicht deaktivieren.

Klicken Sie im Bereich Ausführungseinstellungen auf Sicherheitseinstellungen bearbeiten, um das Modal Sicherheitseinstellungen für die Ausführung zu öffnen. Im Modal können Sie mit den Schiebereglern die Stufe der Inhaltsfilterung für jede Sicherheitskategorie anpassen:

Wenn Sie eine Anfrage senden (z. B. indem Sie dem Modell eine Frage stellen), wird die Meldung Kein Inhalt angezeigt, wenn der Inhalt der Anfrage blockiert ist. Wenn Sie weitere Details sehen möchten, bewegen Sie den Mauszeiger auf den Text Keine Inhalte und klicken Sie auf  Sicherheit.

Gemini API SDKs

Das folgende Code-Snippet zeigt, wie Sie Sicherheitseinstellungen in Ihrem GenerateContent-Aufruf festlegen. Damit werden die Grenzwerte für die Kategorien „Belästigung“ (HARM_CATEGORY_HARASSMENT) und „Hassrede“ (HARM_CATEGORY_HATE_SPEECH) festgelegt. Wenn Sie diese Kategorien beispielsweise auf BLOCK_LOW_AND_ABOVE setzen, werden alle Inhalte blockiert, die mit niedriger oder höherer Wahrscheinlichkeit Belästigungen oder Hassrede enthalten. Weitere Informationen zu den Schwellenwerteinstellungen finden Sie unter Sicherheitsfilterung pro Anfrage.

Python

from google import genai
from google.genai import types

import PIL.Image

img = PIL.Image.open("cookies.jpg")

client = genai.Client()

response = client.models.generate_content(
    model="gemini-2.0-flash",
    contents=['Do these look store-bought or homemade?', img],
    config=types.GenerateContentConfig(
      safety_settings=[
        types.SafetySetting(
            category=types.HarmCategory.HARM_CATEGORY_HATE_SPEECH,
            threshold=types.HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        ),
      ]
    )
)

print(response.text)

Ok

package main

import (
    "context"
    "fmt"
    "log"

    "google.golang.org/genai"
)

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

    config := &genai.GenerateContentConfig{
        SafetySettings: []*genai.SafetySetting{
            {
                Category:  "HARM_CATEGORY_HATE_SPEECH",
                Threshold: "BLOCK_LOW_AND_ABOVE",
            },
        },
    }

    response, err := client.Models.GenerateContent(
        ctx,
        "gemini-2.0-flash",
        genai.Text("Some potentially unsafe prompt."),
        config,
    )
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(response.Text())
}

JavaScript

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

const ai = new GoogleGenAI({});

const safetySettings = [
  {
    category: "HARM_CATEGORY_HARASSMENT",
    threshold: "BLOCK_LOW_AND_ABOVE",
  },
  {
    category: "HARM_CATEGORY_HATE_SPEECH",
    threshold: "BLOCK_LOW_AND_ABOVE",
  },
];

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-2.0-flash",
    contents: "Some potentially unsafe prompt.",
    config: {
      safetySettings: safetySettings,
    },
  });
  console.log(response.text);
}

await main();

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

REST

echo '{    "safetySettings": [        {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_ONLY_HIGH"},        {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_MEDIUM_AND_ABOVE"}    ],    "contents": [{        "parts":[{            "text": "'I support Martians Soccer Club and I think Jupiterians Football Club sucks! Write a ironic phrase about them.'"}]}]}' > request.json

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent" \        -H "x-goog-api-key: $GEMINI_API_KEY" \

    -H 'Content-Type: application/json' \
    -X POST \
    -d @request.json 2> /dev/null

Nächste Schritte