L'API Gemini fornisce impostazioni di sicurezza che puoi regolare durante la fase di prototipazione per determinare se la tua applicazione richiede una configurazione di sicurezza più o meno restrittiva. Puoi modificare queste impostazioni in quattro categorie di filtri per limitare o consentire determinati tipi di contenuti.
Questa guida illustra come l'API Gemini gestisce i filtri e le impostazioni di sicurezza e come puoi modificare le impostazioni di sicurezza per la tua applicazione.
Filtri di sicurezza
I filtri di sicurezza regolabili dell'API Gemini coprono le seguenti categorie:
Categoria | Descrizione |
---|---|
Molestie | Commenti negativi o dannosi rivolti all'identità e/o agli attributi protetti. |
Incitamento all'odio | Contenuti maleducati, irrispettosi o volgari. |
Contenuti sessualmente espliciti | Contiene riferimenti ad atti sessuali o ad altri contenuti osceni. |
Contenuti pericolosi | Promuove, favorisce o incoraggia azioni dannose. |
Integrità civica | Query correlate alle elezioni. |
Puoi utilizzare questi filtri per modificare ciò che è appropriato per il tuo caso d'uso. Ad esempio, se stai creando i dialoghi di un videogioco, potresti ritenere accettabile consentire più contenuti classificati come Dangerous per via della natura del gioco.
Oltre ai filtri di sicurezza regolabili, l'API Gemini ha protezioni integrate contro i danni principali, come i contenuti che mettono a rischio la sicurezza dei bambini. Questi tipi di danni sono sempre bloccati e non possono essere modificati.
Livello di filtro per la sicurezza dei contenuti
L'API Gemini classifica il livello di probabilità che i contenuti non siano sicuri come
HIGH
, MEDIUM
, LOW
o NEGLIGIBLE
.
L'API Gemini blocca i contenuti in base alla probabilità che non siano sicuri e non alla gravità. Questo aspetto è importante da considerare perché alcuni contenuti possono avere una bassa probabilità di non essere sicuri, anche se la gravità del danno potrebbe essere comunque alta. Ad esempio, confrontando le frasi:
- Il robot mi ha dato un pugno.
- Il robot mi ha tagliato.
La prima frase potrebbe avere una probabilità più elevata di essere non sicura, ma la seconda potrebbe essere considerata di gravità maggiore in termini di violenza. Pertanto, è importante testare attentamente e valutare il livello di blocco appropriato per supportare i tuoi casi d'uso principali, minimizzando al contempo i danni agli utenti finali.
Filtro di sicurezza per richiesta
Puoi regolare le impostazioni di sicurezza per ogni richiesta inviata all'API. Quando effettui una richiesta, i contenuti vengono analizzati e viene assegnata una classificazione di sicurezza. La
valutazione di sicurezza include la categoria e la probabilità della classificazione
del danno. Ad esempio, se i contenuti sono stati bloccati perché la categoria molestie ha una probabilità elevata, la valutazione di sicurezza restituita avrà la categoria uguale a HARASSMENT
e la probabilità di danno impostata su HIGH
.
Per impostazione predefinita, le impostazioni di sicurezza bloccano i contenuti (inclusi i prompt) con una probabilità media o superiore di non essere sicuri in qualsiasi filtro. Questa sicurezza di base è progettata per funzionare nella maggior parte dei casi d'uso, per cui dovresti regolare le impostazioni di sicurezza solo se è un requisito costante per la tua applicazione.
La tabella seguente descrive le impostazioni dei blocchi che puoi modificare per ogni categoria. Ad esempio, se imposti l'impostazione di blocco su Blocca alcuni per la categoria Incitamento all'odio, tutti i contenuti con un'alta probabilità di essere contenuti di incitamento all'odio vengono bloccati. ma è consentita qualsiasi probabilità inferiore.
Soglia (Google AI Studio) | Soglia (API) | Descrizione |
---|---|---|
Nessun blocco | BLOCK_NONE |
Mostra sempre i contenuti, indipendentemente dalla probabilità che non siano sicuri |
Blocco ridotto | BLOCK_ONLY_HIGH |
Blocca quando c'è un'alta probabilità che i contenuti non siano sicuri |
Blocco limitato | BLOCK_MEDIUM_AND_ABOVE |
Blocca quando c'è una probabilità media o alta che i contenuti non siano sicuri |
Blocco esteso | BLOCK_LOW_AND_ABOVE |
Blocca quando c'è una probabilità bassa, media o alta che i contenuti non siano sicuri |
N/D | HARM_BLOCK_THRESHOLD_UNSPECIFIED |
La soglia non è specificata, il blocco utilizza la soglia predefinita |
Se la soglia non è impostata, la soglia di blocco predefinita è Blocca la maggior parte (solo per gemini-1.5-pro-002
e gemini-1.5-flash-002
) o Blocca alcuni (in tutti gli altri modelli) per tutte le categorie tranne la categoria Integrità civica.
La soglia di blocco predefinita per la categoria Integrità civica è Blocca la maggior parte quando invii i prompt utilizzando Google AI Studio e Non blocca quando utilizzi direttamente l' API Gemini.
Puoi impostare queste impostazioni per ogni richiesta inviata al servizio generativo.
Per maggiori dettagli, consulta la documentazione di riferimento dell'API HarmBlockThreshold
.
Feedback sulla sicurezza
generateContent
restituisce un
GenerateContentResponse
che
include il feedback sulla sicurezza.
Il feedback sul prompt è incluso in
promptFeedback
. Se è impostato su promptFeedback.blockReason
, significa che i contenuti del prompt sono stati bloccati.
Il feedback sulle risposte candidate è incluso in
Candidate.finishReason
e
Candidate.safetyRatings
. Se i contenuti della risposta sono stati bloccati e il valore di finishReason
è SAFETY
, puoi esaminare safetyRatings
per ulteriori dettagli. I contenuti bloccati non vengono restituiti.
Modificare le impostazioni di sicurezza
Questa sezione spiega come modificare le impostazioni di sicurezza sia in Google AI Studio sia nel codice.
Google AI Studio
Puoi regolare le impostazioni di sicurezza in Google AI Studio, ma non puoi disattivarle.
Fai clic su Modifica impostazioni di sicurezza nel riquadro Impostazioni di esecuzione per aprire la finestra modale Impostazioni di sicurezza di esecuzione. Nella finestra modale, puoi utilizzare i cursori per regolare il livello di filtro dei contenuti in base alla categoria di sicurezza:
Quando invii una richiesta (ad esempio ponendo una domanda al modello), viene visualizzato il messaggio
Nessun contenuto se i contenuti della richiesta sono bloccati. Per visualizzare maggiori dettagli, tieni premuto il cursore sul testo Nessun contenuto e fai clic su Sicurezza.SDK dell'API Gemini
Lo snippet di codice seguente mostra come impostare le impostazioni di sicurezza nella chiamataGenerateContent
. Vengono impostate le soglie per le categorie molestie (HARM_CATEGORY_HARASSMENT
) e incitamento all'odio (HARM_CATEGORY_HATE_SPEECH
). Ad esempio, impostare queste categorie su BLOCK_LOW_AND_ABOVE
blocca tutti i contenuti con una probabilità bassa o superiore di essere molestie o
incitamento all'odio. Per comprendere le impostazioni di soglia, consulta
Filtro di sicurezza per richiesta.
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: 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
Passaggi successivi
- Per saperne di più sull'API completa, consulta il riferimento API.
- Consulta le linee guida sulla sicurezza per un'analisi generale delle considerazioni sulla sicurezza durante lo sviluppo con gli LLM.
- Scopri di più sulla valutazione della probabilità rispetto alla gravità dal team Jigsaw
- Scopri di più sui prodotti che contribuiscono alle soluzioni di sicurezza, come l'API Perspective. * Puoi utilizzare queste impostazioni di sicurezza per creare un classificatore di tossicità. Per iniziare, consulta l'esempio di classificazione.