Impostazioni di sicurezza

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:

  1. Il robot mi ha dato un pugno.
  2. 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.