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:
- Der Roboter hat mich geboxt.
- 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
- Weitere Informationen zur vollständigen API finden Sie in der API-Referenz.
- Sicherheitshinweise bieten einen allgemeinen Überblick über Sicherheitsaspekte bei der Entwicklung mit LLMs.
- Weitere Informationen zum Bewerten von Wahrscheinlichkeit und Schweregrad
- Weitere Informationen zu den Produkten, die zu Sicherheitslösungen wie der Perspective API beitragen * Sie können diese Sicherheitseinstellungen verwenden, um einen Klassifikator für Toxizität zu erstellen. Beispiel für die Klassifizierung