L'API Gemini fornisce impostazioni di sicurezza che puoi regolare durante fase di prototipazione per determinare se la tua applicazione richiede più o meno requisiti una configurazione di sicurezza restrittiva. Puoi regolare queste impostazioni su quattro filtrare le categorie per limitare o consentire determinati tipi di contenuti.
Questa guida spiega in che modo l'API Gemini gestisce le impostazioni di sicurezza, i filtri e come puoi modificare le impostazioni di sicurezza della tua applicazione.
Filtri di sicurezza
I filtri di sicurezza regolabili dell'API Gemini coprono le seguenti categorie:
Categoria | Descrizione |
---|---|
Molestie | Commenti negativi o dannosi che hanno come target l'identità e/o protetti attributi. |
Incitamento all'odio | Contenuti scurrili, irrispettosi o volgari. |
Contenuti sessualmente espliciti | Riferimenti ad atti sessuali o ad altri contenuti osceni. |
Contenuti pericolosi | Promuovono, favoriscono o incoraggiano azioni dannose. |
Puoi usare questi filtri per regolare ciò che è appropriato per il tuo caso d'uso. Per Ad esempio, se devi creare dialoghi tra videogiochi, potresti ritenere accettabile Consenti più contenuti classificati come Pericolosi a causa della natura del gioco.
Oltre ai filtri di sicurezza regolabili, l'API Gemini ha Protezioni da danni principali, ad esempio contenuti che mettono in pericolo la sicurezza dei minori. Questi tipi di danni vengono sempre bloccati e non possono essere modificati.
Livello di filtro di sicurezza dei contenuti
L'API Gemini classifica il livello di probabilità di contenuti non sicuri come
HIGH
, MEDIUM
, LOW
o NEGLIGIBLE
.
L'API Gemini blocca i contenuti in base alla probabilità che questi non siano sicuri e non la gravità. Questo è un aspetto importante da considerare perché alcuni contenuti possono hanno una bassa probabilità di non essere sicuri anche se la gravità del danno potrebbe sarà ancora alta. Ad esempio, confrontando le frasi:
- Il robot mi ha dato un pugno.
- Il robot mi ha colpito.
La prima frase potrebbe avere una maggiore probabilità di non essere sicura, ma la seconda frase potrebbe essere considerata più severa in termini di violenza. Detto ciò, è importante testare e considerare attentamente ciò che è necessario un livello di blocco adeguato per supportare i casi d'uso chiave, minimizzando i danni agli utenti finali.
Filtro di sicurezza per richiesta
Puoi modificare le impostazioni di sicurezza per ogni richiesta che invii all'API. Quando
quando invii una richiesta, i contenuti vengono analizzati e gli viene assegnato un punteggio di sicurezza. La
la valutazione di sicurezza include la categoria e la probabilità del danno
classificazione. Ad esempio, se i contenuti sono stati bloccati a causa delle molestie.
categoria con un'alta probabilità, il grado di sicurezza restituito sarebbe
categoria uguale a HARASSMENT
e probabilità di danno impostata su HIGH
.
Per impostazione predefinita, le impostazioni di sicurezza bloccano i contenuti (compresi i prompt) con mezzo o una maggiore probabilità di non essere sicuri in nessun filtro. Questa sicurezza di riferimento è progettato per funzionare nella maggior parte dei casi d'uso, quindi dovresti modificare se è costantemente richiesto per la tua applicazione.
La tabella seguente descrive le impostazioni di blocco che puoi modificare per ogni categoria. Ad esempio, se imposti l'opzione di blocco su Blocca pochi per Categoria Incitamento all'odio, tutto ciò che ha un'alta probabilità di essere odio contenuti vocali bloccati. Tuttavia, è consentito qualsiasi cosa con una probabilità inferiore.
Soglia (Google AI Studio) | Soglia (API) | Descrizione |
---|---|---|
Nessun blocco | BLOCK_NONE |
Mostra sempre indipendentemente dalla probabilità di contenuti non sicuri |
Blocco ridotto | BLOCK_ONLY_HIGH |
Blocca quando è presente un'alta probabilità di contenuti non sicuri |
Blocco limitato | BLOCK_MEDIUM_AND_ABOVE |
Blocca quando la probabilità media o alta di contenuti non sicuri |
Blocco esteso | BLOCK_LOW_AND_ABOVE |
Blocca quando la probabilità di contenuti non sicuri è bassa, media o alta |
N/D | HARM_BLOCK_THRESHOLD_UNSPECIFIED |
La soglia non è specificata, blocca utilizzando la soglia predefinita |
Se non viene configurato, l'impostazione di blocco predefinita è Blocca alcuni per tutte le categorie.
Puoi configurare queste impostazioni per ogni richiesta che fai al servizio generativo.
Vedi l'API HarmBlockThreshold
di riferimento per maggiori dettagli.
Feedback sulla sicurezza
generateContent
restituisce un
GenerateContentResponse
che
include feedback sulla sicurezza.
Il feedback del prompt è incluso in
promptFeedback
Se
promptFeedback.blockReason
è impostato, quindi i contenuti della richiesta sono stati bloccati.
Il feedback del candidato di risposta è incluso in
Candidate.finishReason
e
Candidate.safetyRatings
. Se la risposta
i contenuti sono stati bloccati e il valore finishReason
era SAFETY
, puoi controllare
safetyRatings
per ulteriori dettagli. I contenuti bloccati non vengono restituiti.
Regola le impostazioni di sicurezza
Questa sezione illustra come regolare le impostazioni di sicurezza sia in Google AI Studio e nel codice.
Google AI Studio
Puoi modificare le impostazioni di sicurezza in Google AI Studio, ma non puoi attivarle disattivata.
Fai clic su Modifica impostazioni di sicurezza nel riquadro Impostazioni di esecuzione per aprire la finestra di dialogo Esegui. delle impostazioni di sicurezza. Nella finestra modale, puoi usare i cursori per regolare livello di filtro dei contenuti per categoria di sicurezza:
Quando invii una richiesta (ad esempio, ponendo una domanda al modello), viene eseguita un'azione
Se i contenuti della richiesta sono bloccati, viene visualizzato il messaggio Nessun contenuto. Per vedere di più dettagli, tieni il puntatore sopra Nessun contenuto e fai clic su . Sicurezza.SDK dell'API Gemini
Il seguente snippet di codice mostra come configurare le impostazioni di sicurezza nelle
Chiamata GenerateContent
. In questo modo viene impostata la molestia (HARM_CATEGORY_HARASSMENT
)
e incitamento all'odio (HARM_CATEGORY_HATE_SPEECH
) per
BLOCK_LOW_AND_ABOVE
che blocca i contenuti con un punteggio basso o superiore
probabilità di molestie o incitamento all'odio.
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,
}
)
Vai
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 });
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 });
Freccette (flussi)
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);
Passaggi successivi
- Per scoprire di più sull'API completa, consulta il riferimento API.
- Leggi le indicazioni sulla sicurezza per avere informazioni generali sulla sicurezza per lo sviluppo con gli LLM.
- Scopri di più sulla valutazione della probabilità rispetto alla gravità da Jigsaw
- Scopri di più sui prodotti che contribuiscono a soluzioni per la sicurezza come il Prospettiva tramite Google Cloud. * Puoi usare queste impostazioni di sicurezza per creare una tossicità classificatore. Consulta la classificazione esempio per per iniziare.