Impostazioni di sicurezza

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:

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