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 für vier Filterkategorien anpassen, um bestimmte Inhaltstypen einzuschränken oder zuzulassen.

In diesem Leitfaden wird beschrieben, wie die Gemini API Sicherheitseinstellungen und -filter 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 schädliche Handlungen fördern, erleichtern oder dazu ermutigen.

Mit diesen Filtern können Sie anpassen, was für Ihren Anwendungsfall geeignet ist. Wenn Sie beispielsweise Dialoge von Videospielen erstellen, können Sie es für akzeptabel halten, mehr Inhalte zuzulassen, die aufgrund der Art des Spiels als gefährlich eingestuft werden.

Zusätzlich zu den anpassbaren Sicherheitsfiltern verfügt die Gemini API über integrierte Schutzfunktionen gegen zentrale Schäden, z. B. vor Inhalten, die den Schutz von Kindern gefährden. Solche Schäden werden immer blockiert und können nicht korrigiert werden.

Filterstufe für die Sicherheit von Inhalten

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

Die Gemini API blockiert Inhalte anhand der Wahrscheinlichkeit, dass sie unsicher sind, und nicht anhand des Schweregrads. Das ist wichtig, da die Wahrscheinlichkeit, dass bestimmte Inhalte nicht sicher sind, gering ist, auch wenn der Schweregrad des Schadens weiterhin hoch sein kann. Zum Beispiel können Sie die Sätze vergleichen:

  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 der zweite Satz könnte ein höheres Maß an Gewalt darstellen. Daher ist es wichtig, dass Sie sorgfältig testen und überlegen, welche Blockierung angemessen ist, um Ihre wichtigsten Anwendungsfälle zu unterstützen und gleichzeitig den Schaden für Endnutzer zu minimieren.

Sicherheitsfilter 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 eine Sicherheitsbewertung zugewiesen. Die Sicherheitsbewertung umfasst die Kategorie und die Wahrscheinlichkeit der Schadensklassifizierung. Wenn die Inhalte beispielsweise blockiert wurden, weil die Kategorie „Belästigung“ eine hohe Wahrscheinlichkeit hat, hätte die zurückgegebene Sicherheitsbewertung die Kategorie HARASSMENT und die Schadenswahrscheinlichkeit auf HIGH gesetzt.

Inhalte (einschließlich Prompts) mit mittlerer oder höherer Wahrscheinlichkeit, dass sie unsicher sind, werden standardmäßig durch Sicherheitseinstellungen bei allen Filtern blockiert. Diese grundlegende Sicherheitsstufe ist so konzipiert, dass sie für die meisten Anwendungsfälle funktioniert. Sie sollten Ihre Sicherheitseinstellungen also nur dann anpassen, wenn sie für Ihre Anwendung immer erforderlich sind.

In der folgenden Tabelle werden die Blockeinstellungen beschrieben, die Sie für jede Kategorie anpassen können. Wenn Sie beispielsweise die Blockeinstellung für die Kategorie Hassrede auf Nur wenige blockieren, werden alle Inhalte blockiert, bei denen eine hohe Wahrscheinlichkeit für Hassreden besteht. Alles mit einer geringeren Wahrscheinlichkeit ist jedoch zulässig.

Grenzwert (Google AI Studio) Grenzwert (API) Beschreibung
Keine blockieren BLOCK_NONE Immer anzeigen, unabhängig von der Wahrscheinlichkeit unsicherer Inhalte
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 gering, mittel oder hoch ist
HARM_BLOCK_THRESHOLD_UNSPECIFIED Grenzwert nicht angegeben; über Standardgrenzwert blockieren

Wird die Richtlinie nicht konfiguriert, ist die standardmäßige Blockierungseinstellung für alle Kategorien einige blockieren.

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 ein GenerateContentResponse-Objekt zurück, das Sicherheitsfeedback enthält.

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

Feedback zu Antwortkandidaten ist in finishReason und safetyRatings enthalten. Wenn der Antwortinhalt blockiert wurde und finishReason auf SAFETY gesetzt war, können Sie safetyRatings für weitere Details prüfen. Der blockierte Inhalt wird nicht zurückgegeben.

Sicherheitseinstellungen anpassen

In diesem Abschnitt wird beschrieben, wie Sie die Sicherheitseinstellungen sowohl in Google AI Studio als auch im 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 modale Fenster Sicherheitseinstellungen ausführen zu öffnen. Im modalen Fenster können Sie mithilfe der Schieberegler die Inhaltsfilterstufe für jede Sicherheitskategorie anpassen:

Wenn Sie eine Anfrage senden (z. B. indem Sie dem Modell eine Frage stellen), wird die Meldung No Content (Kein Inhalt) angezeigt, sofern der Inhalt der Anfrage blockiert ist. Bewegen Sie den Mauszeiger auf den Text Kein Inhalt und klicken Sie auf Sicherheit, um weitere Details zu sehen.

Gemini API-SDKs

Das folgende Code-Snippet zeigt, wie Sicherheitseinstellungen in Ihrem GenerateContent-Aufruf festgelegt werden. Dadurch werden die Kategorien Belästigung (HARM_CATEGORY_HARASSMENT) und Hassrede (HARM_CATEGORY_HATE_SPEECH) auf BLOCK_LOW_AND_ABOVE gesetzt. Dadurch werden alle Inhalte blockiert, bei denen die Wahrscheinlichkeit einer Belästigung oder Hassrede gering oder höher ist.

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,
    }
)

Ok

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

Nächste Schritte

  • Weitere Informationen zur vollständigen API finden Sie in der API-Referenz.
  • In den Sicherheitsempfehlungen finden Sie allgemeine Informationen zu Sicherheitsaspekten bei der Entwicklung mit LLMs.
  • Weitere Informationen zum Bewerten von Wahrscheinlichkeit und Schweregrad erhalten Sie vom Jigsaw-Team.
  • Weitere Informationen zu Produkten wie der Perspective API, die zu Sicherheitslösungen beitragen * Anhand dieser Sicherheitseinstellungen können Sie einen Klassifikator für unangemessene Äußerungen erstellen. Sehen Sie sich zum Einstieg das Beispiel für die Klassifizierung an.