Interfejs Gemini API udostępnia ustawienia zabezpieczeń, które możesz dostosować na etapie tworzenia prototypu, aby określić, czy aplikacja wymaga bardziej czy mniej restrykcyjnej konfiguracji zabezpieczeń. Możesz dostosować te ustawienia w 4 kategoriach, aby ograniczyć lub zezwolić na wyświetlanie określonych rodzajów treści.
Z tego przewodnika dowiesz się, jak interfejs Gemini API obsługuje ustawienia bezpieczeństwa i filtrowanie oraz jak można zmienić ustawienia zabezpieczeń w aplikacji.
Filtry bezpieczeństwa
Regulowane filtry bezpieczeństwa interfejsu Gemini API obejmują te kategorie:
Kategoria | Opis |
---|---|
Nękanie | Negatywne lub szkodliwe komentarze dotyczące tożsamości lub cech chronionych. |
Szerzenie nienawiści | Treści nieuprzejme, obraźliwe lub obraźliwe. |
Treści o charakterze jednoznacznie seksualnym | Treści zawierające odniesienia do aktów seksualnych lub innych lubieżnych treści. |
Treści niebezpieczne | Promowanie, wspieranie lub zachęcanie do szkodliwych działań. |
Możesz ich użyć, aby dostosować to, co pasuje do Twojego przypadku użycia. Jeśli na przykład tworzysz dialogi z gry wideo, możesz zaakceptować więcej treści, które ze względu na charakter gry zostały oznaczone jako niebezpieczne.
Oprócz dostosowywanych filtrów bezpieczeństwa interfejs Gemini ma wbudowane zabezpieczenia przed podstawowymi zagrożeniami, np. treściami zagrażającymi bezpieczeństwu dzieci. Tego typu szkody są zawsze blokowane i nie można ich dostosować.
Poziom filtrowania pod kątem bezpieczeństwa treści
Interfejs Gemini API klasyfikuje poziom prawdopodobieństwa, że treść nie jest niebezpieczna, jako HIGH
, MEDIUM
, LOW
lub NEGLIGIBLE
.
Interfejs Gemini API blokuje treści na podstawie prawdopodobieństwa, że treść jest niebezpieczna, a nie jej wagi. Warto to wziąć pod uwagę, bo niektóre treści mogą mieć niskie prawdopodobieństwo, że będą niebezpieczne, chociaż szkoda może być nadal duża. Na przykład porównując zdania:
- Robot mnie uderzył.
- Robot mnie przegonił.
Pierwsze zdanie może zwiększyć prawdopodobieństwo zagrożenia, ale drugie zdania można uznać za bardziej dokaźne pod względem przemocy. Dlatego należy dokładnie je przetestować i rozważyć, jaki właściwy poziom blokowania będzie potrzebny do obsługi kluczowych przypadków użycia przy jednoczesnym zminimalizowaniu szkód dla użytkowników.
Filtrowanie zabezpieczeń na żądanie
Możesz dostosować ustawienia bezpieczeństwa w przypadku każdego żądania wysyłanego do interfejsu API. Gdy przesyłasz prośbę, treści są analizowane i przypisywane do oceny bezpieczeństwa. Ocena bezpieczeństwa obejmuje kategorię i prawdopodobieństwo zagrożenia. Jeśli na przykład treści zostały zablokowane ze względu na wysokie prawdopodobieństwo, że kategoria nękania jest bardzo prawdopodobna, zwrócona ocena bezpieczeństwa będzie miała wartość HARASSMENT
, a prawdopodobieństwo szkody – HIGH
.
Domyślnie ustawienia bezpieczeństwa blokują treści (w tym prompty) o średnim lub wyższym prawdopodobieństwie niebezpieczeństwa w żadnym filtrze. To podstawowe zabezpieczenie działa w większości przypadków, więc ustawienia należy zmieniać tylko wtedy, gdy są 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 w kategorii Szerzenie nienawiści ustawisz blokowanie na Blokuj kilka, wszystkie treści, które z dużym prawdopodobieństwem mogą stać się szerzeniem nienawiści, będą blokowane. Dozwolone są wszystkie elementy o niższym 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 niebezpiecznej treści |
Blokuj niektóre | BLOCK_ONLY_HIGH |
Blokuj, gdy istnieje wysokie prawdopodobieństwo wystąpienia niebezpiecznej treści |
Blokuj część | BLOCK_MEDIUM_AND_ABOVE |
Blokuj, gdy istnieje wysokie lub wysokie prawdopodobieństwo wystąpienia niebezpiecznych treści |
Blokuj większość | BLOCK_LOW_AND_ABOVE |
Blokuj, gdy treści są niebezpieczne, średnie lub wysokie |
Nie dotyczy | HARM_BLOCK_THRESHOLD_UNSPECIFIED |
Próg nie jest określony; blokuj za pomocą progu domyślnego |
Jeśli jej nie skonfigurujesz, domyślnym ustawieniem blokowania będzie Blokuj część dla wszystkich kategorii.
Możesz skonfigurować te ustawienia dla każdego żądania wysyłanego do usługi generatywnej.
Więcej informacji znajdziesz w dokumentacji interfejsu API HarmBlockThreshold
.
Opinia o bezpieczeństwie
generateContent
zwraca wartość GenerateContentResponse
, która zawiera opinię na temat bezpieczeństwa.
promptFeedback
zawiera informacje o prośbach. Jeśli skonfigurowana jest wartość promptFeedback.blockReason
, treść promptu została zablokowana.
Opinia kandydata do odpowiedzi znajduje się w finishReason
i safetyRatings
. Jeśli treść odpowiedzi została zablokowana, a finishReason
to SAFETY
, możesz sprawdzić safetyRatings
, aby uzyskać więcej informacji. Zablokowane treści nie są zwracane.
Dostosuj ustawienia bezpieczeństwa
Z tej sekcji dowiesz się, jak dostosować ustawienia zabezpieczeń zarówno w Google AI Studio, jak i w kodzie.
Google AI Studio
Możesz dostosować ustawienia zabezpieczeń w Google AI Studio, ale nie możesz ich wyłączyć.
W panelu Uruchom ustawienia kliknij Edytuj ustawienia zabezpieczeń, aby otworzyć okno Uruchom ustawienia bezpieczeństwa. W tym oknie za pomocą suwaków możesz dostosować poziom filtrowania treści według kategorii bezpieczeństwa:
Gdy wysyłasz prośbę (na przykład zadając pytanie modelowi), pojawia się komunikat
Brak treści, jeśli treść żądania została zablokowana. Aby wyświetlić więcej szczegółów, najedź kursorem na tekst Brak zawartości i kliknij Bezpieczeństwo.Pakiety SDK Gemini API
Ten fragment kodu pokazuje, jak skonfigurować ustawienia bezpieczeństwa w wywołaniu funkcji GenerateContent
. Spowoduje to ustawienie kategorii nękania (HARM_CATEGORY_HARASSMENT
) i szerzenia nienawiści (HARM_CATEGORY_HATE_SPEECH
) na BLOCK_LOW_AND_ABOVE
, co spowoduje zablokowanie treści, w przypadku których prawdopodobieństwo nękania lub szerzenia nienawiści jest niewielkie lub większe.
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.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 });
Internet
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 });
Rzutki (zrzuty)
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);
Dalsze kroki
- Więcej informacji o pełnym interfejsie API znajdziesz w dokumentacji API.
- Zapoznaj się ze wskazówkami dotyczącymi bezpieczeństwa, aby dowiedzieć się więcej na temat bezpieczeństwa przy tworzeniu modeli LLM.
- Dowiedz się więcej o ocenianiu prawdopodobieństwa w porównaniu z poziomem ważności od zespołu Jigsaw
- Dowiedz się więcej o usługach, które przyczyniają się do powstawania rozwiązań zabezpieczających, takich jak Perspective API. * Możesz użyć tych ustawień bezpieczeństwa do utworzenia klasyfikatora toksyczności. Na początek zapoznaj się z przykładem klasyfikacji.