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:
- 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, 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
- Weitere Informationen zur vollständigen API finden Sie in der API-Referenz.
- In den Sicherheitshinweisen finden Sie allgemeine Informationen zu Sicherheitsaspekten bei der Entwicklung mit LLMs.
- Weitere Informationen zur Bewertung von Wahrscheinlichkeit und Schweregrad vom Jigsaw-Team
- Weitere Informationen zu den Produkten, die zu Sicherheitslösungen wie der Perspective API beitragen * Sie können mit diesen Sicherheitseinstellungen einen Klassifikator für toxische Inhalte erstellen. Sehen Sie sich das Beispiel für die Klassifizierung an, um loszulegen.