Interfejs Gemini API udostępnia ustawienia bezpieczeństwa, które można dostosować na etapie prototypowania, aby określić, czy aplikacja wymaga bardziej czy mniej restrykcyjnej konfiguracji zabezpieczeń. Możesz dostosować te ustawienia w 4 kategoriach filtrów, aby ograniczyć lub zezwolić na określone typy treści.
W tym przewodniku omawiamy sposób obsługi ustawień bezpieczeństwa i filtrowania przez Gemini API oraz sposób zmiany ustawień bezpieczeństwa aplikacji.
Filtry bezpieczeństwa
Regulowane filtry bezpieczeństwa Gemini API obejmują te kategorie:
Kategoria | Opis |
---|---|
Nękanie | Negatywne lub szkodliwe komentarze dotyczące tożsamości innej osoby lub cech chronionych. |
Szerzenie nienawiści | Treści nieuprzejme, niekulturalne lub wulgarne. |
Treści o charakterze jednoznacznie seksualnym | Treści zawierające odniesienia do aktów seksualnych lub innych lubieżnych treści. |
Treści niebezpieczne | Promuje, ułatwia lub zachęca do podejmowania szkodliwych działań. |
Integralność instytucji publicznych | zapytania związane z wyborami; |
Za pomocą tych filtrów możesz dostosować wyniki do swoich potrzeb. Jeśli na przykład tworzysz dialog do gry wideo, możesz uznać, że ze względu na charakter gry można zezwolić na więcej treści ocenionej jako Dangerous.
Oprócz regulowanych filtrów bezpieczeństwa Gemini API ma wbudowane środki ochrony przed podstawowymi zagrożeniami, takimi jak treści zagrażające bezpieczeństwu dzieci. Te rodzaje szkód są zawsze blokowane i nie można ich dostosować.
Poziom filtrowania bezpieczeństwa treści
Interfejs Gemini API przypisuje poziom prawdopodobieństwa, że treści są niebezpieczne: HIGH
, MEDIUM
, LOW
lub NEGLIGIBLE
.
Gemini API blokuje treści na podstawie prawdopodobieństwa, że są niebezpieczne, a nie na podstawie ich szkodliwości. Jest to ważne, ponieważ niektóre treści mogą mieć niskie prawdopodobieństwo bycia niebezpiecznymi, mimo że stopień szkodliwości może być nadal wysoki. Na przykład porównując zdania:
- Robot mnie uderzył.
- Robot mnie poranił.
Pierwsze zdanie może mieć większe prawdopodobieństwo bycia niebezpiecznym, ale drugie zdanie może być bardziej poważne pod względem przemocy. Dlatego ważne jest, aby dokładnie przetestować i zrozumieć, jaki poziom blokowania jest potrzebny do obsługi kluczowych przypadków użycia przy jednoczesnym minimalizowaniu szkód dla użytkowników.
Filtrowanie bezpieczeństwa na podstawie żądania
Możesz dostosować ustawienia bezpieczeństwa dla każdego żądania wysyłanego do interfejsu API. Gdy prześlesz prośbę, treści zostaną przeanalizowane i przypisana im zostanie ocena bezpieczeństwa. Ocena bezpieczeństwa obejmuje kategorię i prawdopodobieństwo klasyfikacji szkody. Jeśli na przykład treści zostały zablokowane, ponieważ system stwierdził wysokie prawdopodobieństwo wystąpienia treści nękających, zwrócona ocena bezpieczeństwa miałaby kategorię HARASSMENT
, a prawdopodobieństwo szkody – HIGH
.
Domyślnie ustawienia bezpieczeństwa blokują treści, w tym prompty, które ze średnim lub wyższym prawdopodobieństwem są niebezpieczne. Dotyczy to wszystkich filtrów. To bezpieczeństwo bazowe ma sprawdzać się w większości przypadków, ustawienia bezpieczeństwa należy więc dostosowywać tylko wtedy, gdy jest to na dłuższą metę niezbędne w danej aplikacji.
W tabeli poniżej opisujemy ustawienia blokowania, które możesz dostosować w przypadku każdej kategorii. Jeśli na przykład dla kategorii Mowa nienawiści ustawisz ustawienie blokowania na Blokuj niewiele, wszystko, co ma wysokie prawdopodobieństwo bycia treścią mowy nienawiści, zostanie zablokowane. Dozwolone są jednak wszystkie wartości o mniejszym prawdopodobieństwie.
Próg (Google AI Studio) | Próg (API) | Opis |
---|---|---|
Nie blokuj niczego | BLOCK_NONE |
Zawsze wyświetlaj niezależnie od prawdopodobieństwa wystąpienia treści niebezpiecznych |
Blokuj niektóre | BLOCK_ONLY_HIGH |
Blokuj, gdy prawdopodobieństwo wystąpienia treści niebezpiecznych jest wysokie |
Blokuj część | BLOCK_MEDIUM_AND_ABOVE |
Blokuj, gdy prawdopodobieństwo wystąpienia treści niebezpiecznych jest średnie lub wysokie |
Blokuj większość | BLOCK_LOW_AND_ABOVE |
Blokuj, gdy prawdopodobieństwo wystąpienia treści niebezpiecznych jest niskie, średnie lub wysokie |
Nie dotyczy | HARM_BLOCK_THRESHOLD_UNSPECIFIED |
Próg nie został określony, blokowanie za pomocą domyślnego progu |
Jeśli próg nie jest ustawiony, domyślny próg blokowania to Zablokuj większość (tylko w przypadku modeli gemini-1.5-pro-002
i gemini-1.5-flash-002
) lub Zablokuj część (we wszystkich pozostałych modelach) we wszystkich kategoriach z wyjątkiem kategorii Nienaruszalność osoby i mienia.
Domyślny próg blokowania w przypadku kategorii Całościwość obywatelska to Blokuj większość podczas wysyłania promptów za pomocą Google AI Studio i Blokuj żadne podczas bezpośredniego korzystania z interfejsu Gemini API.
Możesz je ustawiać w przypadku każdego żądania wysyłanego do usługi generatywnej.
Więcej informacji znajdziesz w dokumentacji interfejsu API HarmBlockThreshold
.
Opinie dotyczące bezpieczeństwa
generateContent
zwraca GenerateContentResponse
, który zawiera opinie dotyczące bezpieczeństwa.
Prompt feedback jest dołączony do promptFeedback
. Jeśli ustawiona jest wartość promptFeedback.blockReason
, oznacza to, że treść prompta została zablokowana.
Komentarze kandydatów do odpowiedzi są uwzględniane w Candidate.finishReason
i Candidate.safetyRatings
. Jeśli treść odpowiedzi została zablokowana, a finishReason
była SAFETY
, możesz sprawdzić safetyRatings
, aby uzyskać więcej informacji. Zablokowane treści nie są przywracane.
Dostosowywanie ustawień bezpieczeństwa
Z tej sekcji dowiesz się, jak dostosować ustawienia bezpieczeństwa zarówno w Google AI Studio, jak i w kodzie.
Google AI Studio
W Google AI Studio możesz dostosować ustawienia bezpieczeństwa, ale nie możesz ich wyłączyć.
W panelu Ustawienia wykonania kliknij Edytuj ustawienia zabezpieczeń, aby otworzyć okno Ustawienia zabezpieczeń wykonania. W oknie modalnym możesz użyć suwaków, aby dostosować poziom filtrowania treści w poszczególnych kategoriach bezpieczeństwa:
Gdy wysyłasz żądanie (np. zadajesz pytanie modelowi), jeśli treść żądania jest zablokowana, wyświetli się komunikat
Brak treści. Aby wyświetlić więcej szczegółów, najedź kursorem na tekst Brak treści i kliknij Bezpieczeństwo.Pakiety SDK Gemini API
Ten fragment kodu pokazuje, jak ustawić ustawienia bezpieczeństwa w wyzwaniu GenerateContent
. Spowoduje to ustawienie progów dla kategorii nękania (HARM_CATEGORY_HARASSMENT
) i treści szerzących nienawiść (HARM_CATEGORY_HATE_SPEECH
). Na przykład ustawienie tych kategorii na BLOCK_LOW_AND_ABOVE
blokuje wszystkie treści, które mają niskie lub wyższe prawdopodobieństwo wystąpienia treści nękających lub szerzących nienawiść. Aby dowiedzieć się więcej o ustawieniach progów, przeczytaj artykuł Filtrowanie zabezpieczeń na żądanie.
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,
}
)
Przeczytaj
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 });
Sieć
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
Dalsze kroki
- Więcej informacji o pełnym interfejsie API znajdziesz w dokumentacji API.
- Zapoznaj się z wytycznymi dotyczącymi bezpieczeństwa, aby uzyskać ogólne informacje na temat zagrożeń związanych z bezpieczeństwem podczas tworzenia modeli LLM.
- Dowiedz się więcej o ocenie prawdopodobieństwa i powagi od zespołu Jigsaw
- Dowiedz się więcej o usługach, które przyczyniają się do bezpieczeństwa, takich jak interfejs API Perspective. * Za pomocą tych ustawień bezpieczeństwa możesz utworzyć klasyfikator toksyczności. Aby rozpocząć, zapoznaj się z przykładem klasyfikacji.