Sicherheits­einstellungen

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

In diesem Leitfaden erfahren Sie, wie die Gemini API mit Sicherheitseinstellungen und -filtern umgeht und wie Sie die Sicherheitseinstellungen für Ihre Anwendung ändern können.

Sicherheitsfilter

Die anpassbaren Sicherheitsfilter der Gemini API umfassen die folgenden Kategorien:

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 gefährliche Handlungen fördern oder erleichtern bzw. dazu ermuntern.
Integrität der Bürgerschaft Wahlbezogene Suchanfragen

Mit diesen Filtern können Sie die Daten für Ihren Anwendungsfall anpassen. 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.

Neben den anpassbaren Sicherheitsfiltern bietet die Gemini API integrierte Schutzmaßnahmen gegen grundlegende schädliche Inhalte, z. B. Inhalte, die die Sicherheit von Kindern gefährden. Diese Arten von Schäden werden immer blockiert und können nicht angepasst werden.

Filterebene für die Sicherheit von Inhalten

Die Wahrscheinlichkeit, dass Inhalte unsicher sind, wird in der Gemini API als HIGH, MEDIUM, LOW oder NEGLIGIBLE kategorisiert.

Die Gemini API blockiert Inhalte anhand der Wahrscheinlichkeit, dass sie unsicher sind, nicht anhand des Schweregrads. 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, der zweite Satz hat möglicherweise einen Schweregrad bezüglich Gewalt. 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, werden die Inhalte analysiert und eine Sicherheitsbewertung zugewiesen. Die Sicherheitsbewertung umfasst sowohl die jeweilige Kategorie als auch die Wahrscheinlichkeit einer Klassifizierung als schädlich. Wenn der Inhalt beispielsweise aufgrund der Kategorie „Belästigung“ mit hoher Wahrscheinlichkeit blockiert wurde, hat die zurückgegebene Sicherheitsbewertung die Kategorie HARASSMENT und die Wahrscheinlichkeit von Schaden ist auf HIGH festgelegt.

Die standardmäßigen Sicherheitseinstellungen blockieren Inhalte (einschließlich Prompts), wenn die Wahrscheinlichkeit für unsicheren Inhalt 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 jedoch 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 Mit hoher Wahrscheinlichkeit unsichere Inhalte blockieren
Einige blockieren BLOCK_MEDIUM_AND_ABOVE Blockieren, wenn die Wahrscheinlichkeit für unsichere Inhalte mittel oder hoch ist
Meiste blockieren BLOCK_LOW_AND_ABOVE Mit niedriger, mittlerer oder hoher Wahrscheinlichkeit unsichere Inhalte werden blockiert
HARM_BLOCK_THRESHOLD_UNSPECIFIED Grenzwert nicht angegeben, nach dem Standardschwellenwert blockieren

Wenn der Grenzwert nicht festgelegt ist, gilt für alle Kategorien außer der Kategorie Ziviler Frieden der Standardgrenzwert Die meisten blockieren (nur für gemini-1.5-pro-002 und gemini-1.5-flash-002) oder Einige blockieren (in allen anderen Modellen).

Der Standardblockierungsgrenzwert für die Kategorie Ziviler Frieden und Stabilität ist Die meisten blockieren, wenn Prompts über Google AI Studio gesendet werden, und Keine blockieren, wenn die Gemini API direkt verwendet wird.

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

Feedback zur Sicherheit

generateContent gibt eine GenerateContentResponse zurück, die Sicherheitsfeedback enthält.

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

Feedback zu Antwortvorschlägen ist in Candidate.finishReason und Candidate.safetyRatings enthalten. Wenn Antwortinhalte blockiert wurden und finishReason = SAFETY war, können Sie safetyRatings prüfen, um weitere Informationen zu erhalten. Die blockierten Inhalte werden nicht zurückgegeben.

Sicherheitseinstellungen anpassen

In diesem Abschnitt erfahren Sie, 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 Modalfenster Sicherheitseinstellungen für die Ausführung zu öffnen. Im Pop-up können Sie mit den Schiebereglern die Filterstufe für Inhalte nach 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 Informationen sehen möchten, bewegen Sie den Mauszeiger auf den Text Keine Inhalte und klicken Sie auf Sicherheit.

Gemini API SDKs

Im folgenden Code-Snippet wird gezeigt, wie Sie Sicherheitseinstellungen in Ihrem GenerateContent-Aufruf festlegen. Dadurch 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 geringer oder höherer Wahrscheinlichkeit Belästigung oder Hassrede darstellen. Weitere Informationen zu den Grenzwerteinstellungen finden Sie unter Sicherheitsfilterung pro Anfrage.

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.HarmBlockLowAndAbove,
  },
  {
    Category:  genai.HarmCategoryHateSpeech,
    Threshold: genai.HarmBlockLowAndAbove,
  },
}

Node.js

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

// ...

const safetySettings = [
  {
    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: safetySettings });

Web

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

// ...

const safetySettings = [
  {
    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);

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-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d @request.json 2> /dev/null

Nächste Schritte