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:
- 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 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.