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 cinque categorie di filtri per limitare o consentire determinati tipi di contenuti.
Questa guida illustra come l'API Gemini gestisce le impostazioni di sicurezza e il filtraggio 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 scurrili, irrispettosi o profani. |
Contenuti sessualmente espliciti | Contiene riferimenti ad atti sessuali o ad altri contenuti osceni. |
Contenuti pericolosi | Promuove, facilita o incoraggia azioni dannose. |
Integrità civica | Query correlate alle elezioni. |
Puoi utilizzare questi filtri per regolare i contenuti in base al tuo caso d'uso. Ad esempio, se stai creando dialoghi per videogiochi, potresti ritenere accettabile consentire più contenuti classificati come Pericolosi per via della natura del gioco.
Oltre ai filtri di sicurezza regolabili, l'API Gemini dispone di protezioni integrate contro i danni principali, come i contenuti che mettono in pericolo la sicurezza dei bambini. Questi tipi di contenuti dannosi vengono sempre bloccati e non possono essere modificati.
Livello di filtraggio della sicurezza dei contenuti
L'API Gemini classifica il livello di probabilità che i contenuti siano non 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à. È importante tenerlo presente perché alcuni contenuti possono avere una bassa probabilità di essere non sicuri, anche se la gravità del danno potrebbe essere comunque elevata. Ad esempio, confrontando le frasi:
- Il robot mi ha dato un pugno.
- Il robot mi ha tagliato.
La prima frase potrebbe avere una probabilità maggiore di essere considerata non sicura, ma potresti considerare la seconda frase più grave in termini di violenza. Per questo motivo, è importante testare e valutare attentamente il livello di blocco appropriato necessario per supportare i casi d'uso principali, riducendo al minimo i danni agli utenti finali.
Filtro di sicurezza per richiesta
Puoi regolare le impostazioni di sicurezza per ogni richiesta che invii all'API. Quando
fai 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 di blocco che puoi modificare per ciascuna categoria. Ad esempio, se imposti l'impostazione di blocco su Blocco ridotto per la categoria Incitamento all'odio, tutto ciò che ha un'alta probabilità di essere un contenuto di incitamento all'odio viene bloccato. Tuttavia, è consentito qualsiasi valore con una probabilità inferiore.
Soglia (Google AI Studio) | Soglia (API) | Descrizione |
---|---|---|
Nessun blocco | BLOCK_NONE |
Mostra sempre indipendentemente dalla probabilità che non sia sicuro |
Blocco ridotto | BLOCK_ONLY_HIGH |
Blocca quando c'è un'alta probabilità che non siano sicuri |
Blocco limitato | BLOCK_MEDIUM_AND_ABOVE |
Blocca i contenuti quando c'è una probabilità media o alta che non siano sicuri |
Blocco esteso | BLOCK_LOW_AND_ABOVE |
Blocca i contenuti quando c'è una probabilità bassa, media o alta che non siano sicuri |
N/D | HARM_BLOCK_THRESHOLD_UNSPECIFIED |
Soglia non specificata, blocco con soglia predefinita |
Se la soglia non è impostata, la soglia di blocco predefinita è Nessun blocco (per
gemini-1.5-pro-002
e gemini-1.5-flash-002
e tutti i modelli GA stabili più recenti)
o Blocca alcuni (in tutti gli altri modelli) per tutte le categorie tranne
Integrità civica.
La soglia di blocco predefinita per la categoria Integrità civica è Nessun blocco
(per gemini-2.0-flash-001
con alias gemini-2.0-flash
,
gemini-2.0-pro-exp-02-05
e gemini-2.0-flash-lite
) sia per
Google AI Studio che per l'API Gemini, e Blocco della maggior parte per tutti gli altri modelli in
Google AI Studio.
Puoi impostare queste impostazioni per ogni richiesta che invii al servizio di IA generativa.
Per ulteriori dettagli, consulta il riferimento API HarmBlockThreshold
.
Feedback sulla sicurezza
generateContent
restituisce un
GenerateContentResponse
che
include feedback sulla sicurezza.
Il feedback sul prompt è incluso in
promptFeedback
. Se
promptFeedback.blockReason
è impostato, i contenuti del prompt sono stati bloccati.
Il feedback sui candidati alla risposta è incluso in
Candidate.finishReason
e
Candidate.safetyRatings
. Se i contenuti della risposta
sono stati bloccati e finishReason
era SAFETY
, puoi esaminare
safetyRatings
per maggiori dettagli. I contenuti bloccati non vengono restituiti.
Modificare le impostazioni di sicurezza
Questa sezione spiega come modificare le impostazioni di sicurezza in Google AI Studio e 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 corsa per aprire la finestra modale Impostazioni di sicurezza corsa. Nella finestra modale puoi utilizzare i cursori per regolare il livello di filtraggio dei contenuti per 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 ulteriori dettagli, tieni il puntatore sopra il testo Nessun contenuto e fai clic su Sicurezza.SDK dell'API Gemini
Il seguente snippet di codice mostra come impostare le impostazioni di sicurezza nella chiamata
GenerateContent
. In questo modo vengono impostate le soglie per le categorie molestie (HARM_CATEGORY_HARASSMENT
) e incitamento all'odio (HARM_CATEGORY_HATE_SPEECH
). Ad esempio, l'impostazione di queste categorie su BLOCK_LOW_AND_ABOVE
blocca qualsiasi contenuto che abbia una probabilità bassa o superiore di essere molestie o
incitamento all'odio. Per comprendere le impostazioni della soglia, consulta
Filtro di sicurezza per richiesta.
Python
from google import genai
from google.genai import types
import PIL.Image
img = PIL.Image.open("cookies.jpg")
client = genai.Client()
response = client.models.generate_content(
model="gemini-2.0-flash",
contents=['Do these look store-bought or homemade?', img],
config=types.GenerateContentConfig(
safety_settings=[
types.SafetySetting(
category=types.HarmCategory.HARM_CATEGORY_HATE_SPEECH,
threshold=types.HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
),
]
)
)
print(response.text)
Vai
package main
import (
"context"
"fmt"
"log"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
config := &genai.GenerateContentConfig{
SafetySettings: []*genai.SafetySetting{
{
Category: "HARM_CATEGORY_HATE_SPEECH",
Threshold: "BLOCK_LOW_AND_ABOVE",
},
},
}
response, err := client.Models.GenerateContent(
ctx,
"gemini-2.0-flash",
genai.Text("Some potentially unsafe prompt."),
config,
)
if err != nil {
log.Fatal(err)
}
fmt.Println(response.Text())
}
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const safetySettings = [
{
category: "HARM_CATEGORY_HARASSMENT",
threshold: "BLOCK_LOW_AND_ABOVE",
},
{
category: "HARM_CATEGORY_HATE_SPEECH",
threshold: "BLOCK_LOW_AND_ABOVE",
},
];
async function main() {
const response = await ai.models.generateContent({
model: "gemini-2.0-flash",
contents: "Some potentially unsafe prompt.",
config: {
safetySettings: safetySettings,
},
});
console.log(response.text);
}
await main();
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-2.0-flash:generateContent" \ -H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d @request.json 2> /dev/null
Passaggi successivi
- Consulta il Riferimento API per scoprire di più sull'API completa.
- Consulta le indicazioni sulla sicurezza per una panoramica generale delle considerazioni sulla sicurezza durante lo sviluppo con i modelli linguistici di grandi dimensioni.
- Scopri di più sulla valutazione della probabilità rispetto alla gravità dal team di Jigsaw
- Scopri di più sui prodotti che contribuiscono a 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.