A API Gemini oferece configurações de segurança que podem ser ajustadas durante a prototipagem para determinar se o aplicativo requer uma configuração de segurança mais ou menos restritiva. É possível ajustar essas configurações em cinco categorias de filtros para restringir ou permitir determinados tipos de conteúdo.
Este guia mostra como a API Gemini lida com as configurações e a filtragem de segurança e como você pode mudar as configurações de segurança do seu aplicativo.
Filtros de segurança
Os filtros de segurança ajustáveis da API Gemini abrangem as seguintes categorias:
Categoria | Descrição |
---|---|
Assédio | Comentários negativos ou nocivos voltados à identidade e/ou atributos protegidos. |
Discurso de ódio | Conteúdo grosseiro, desrespeitoso ou linguagem obscena. |
Sexualmente explícito | Contém referências a atos sexuais ou outro conteúdo sexual. |
Perigoso | Promove, facilita ou incentiva atos nocivos. |
Integridade cívica | Consultas relacionadas a eleições. |
Use esses filtros para ajustar o que for necessário conforme seu caso de uso. Por exemplo, se você estiver criando diálogos de videogames, poderá considerar aceitável permitir mais conteúdo classificado como Perigoso devido à natureza do jogo.
Além dos filtros de segurança ajustáveis, a API Gemini tem proteções integradas contra danos principais, como conteúdo que coloca crianças em risco. Esses tipos de danos são sempre bloqueados e não podem ser ajustados.
Nível de filtragem da segurança de conteúdo
A API Gemini categoriza o nível de probabilidade de um conteúdo ser considerado não seguro como
HIGH
, MEDIUM
, LOW
ou NEGLIGIBLE
.
A API Gemini bloqueia conteúdo com base na probabilidade de ele ser inseguro e não na gravidade. É importante considerar isso, porque alguns conteúdos podem ter baixa probabilidade de não serem seguros, mesmo que a gravidade dos danos ainda seja alta. Por exemplo, comparando as frases:
- O robô me bateu.
- O robô me cortou.
A primeira frase pode resultar em uma probabilidade maior de não ser segura, mas a segunda pode ser considerada mais grave em termos de violência. Por isso, é importante testar cuidadosamente e considerar o nível apropriado de bloqueio necessário para oferecer suporte aos seus principais casos de uso e minimizar os danos aos usuários finais.
Filtragem de segurança por solicitação
Você pode ajustar as configurações de segurança de cada solicitação feita à API. Quando você faz uma solicitação, o conteúdo é analisado e recebe uma classificação de segurança. A classificação de segurança inclui a categoria e a probabilidade da classificação de dano. Por exemplo, se o conteúdo foi bloqueado porque a categoria de assédio tem uma alta probabilidade, a classificação de segurança retornada teria a categoria igual a HARASSMENT
e a probabilidade de dano definida como HIGH
.
Por padrão, as configurações de segurança bloqueiam conteúdo (incluindo comandos) com probabilidade média ou alta de não serem seguros em qualquer filtro. Como essa referência de segurança foi projetada para funcionar com a maioria dos casos de uso, você só precisa ajustar as configurações de segurança se isso for consistentemente necessário para sua aplicação.
A tabela a seguir descreve as configurações de bloqueio que você pode ajustar em cada categoria. Por exemplo, se você definir a configuração de bloqueio como Bloquear poucos na categoria Discurso de ódio, tudo com alta probabilidade de ser um conteúdo de discurso de ódio será bloqueado. No entanto, qualquer item com menor probabilidade de risco é permitido.
Limite (Google AI Studio) | Limite (API) | Descrição |
---|---|---|
Bloquear nenhum | BLOCK_NONE |
Sempre mostrar, seja qual for a probabilidade do conteúdo não ser seguro |
Bloquear poucos | BLOCK_ONLY_HIGH |
Bloquear quando houver alta probabilidade do conteúdo não ser seguro |
Bloquear alguns | BLOCK_MEDIUM_AND_ABOVE |
Bloquear quando houver probabilidade média ou alta do conteúdo não ser seguro |
Bloquear muitos | BLOCK_LOW_AND_ABOVE |
Bloquear quando houver probabilidade baixa, média ou alta de o conteúdo não ser seguro |
N/A | HARM_BLOCK_THRESHOLD_UNSPECIFIED |
Como o limite não foi especificado, o bloqueio está usando o limite padrão. |
Se o limite não for definido, o padrão será Não bloquear nada (para gemini-1.5-pro-002
e gemini-1.5-flash-002
e todos os modelos GA estáveis mais recentes) ou Bloquear alguns itens (em todos os outros modelos) para todas as categorias exceto a categoria Integridade cívica.
O nível de bloqueio padrão para a categoria Integridade cívica é Não bloquear nada (para gemini-2.0-flash-001
, também conhecido como gemini-2.0-flash
, gemini-2.0-pro-exp-02-05
e gemini-2.0-flash-lite
) no Google AI Studio e na API Gemini, e Bloquear a maioria para todos os outros modelos apenas no Google AI Studio.
Você pode definir essas configurações para cada solicitação feita ao serviço generativo.
Consulte a referência da API HarmBlockThreshold
para mais detalhes.
Feedback de segurança
generateContent
retorna um
GenerateContentResponse
que
inclui feedback de segurança.
O feedback do comando está incluído em
promptFeedback
. Se
promptFeedback.blockReason
estiver definido, o conteúdo da solicitação foi bloqueado.
O feedback do candidato à resposta está incluído em
Candidate.finishReason
e
Candidate.safetyRatings
. Se o conteúdo da resposta foi bloqueado e o finishReason
era SAFETY
, inspecione safetyRatings
para mais detalhes. O conteúdo bloqueado não é retornado.
Ajustar as configurações de segurança
Esta seção explica como ajustar as configurações de segurança no Google AI Studio e no seu código.
Google AI Studio
É possível ajustar as configurações de segurança no Google AI Studio, mas não desativá-las.
Clique em Editar configurações de segurança no painel Configurações de execução para abrir o modal Executar configurações de segurança. No modal, use os controles deslizantes para ajustar o nível de filtragem de conteúdo por categoria de segurança:
Quando você envia uma solicitação (por exemplo, fazendo uma pergunta ao modelo), uma mensagem
Sem conteúdo aparece se o conteúdo da solicitação for bloqueado. Para mais detalhes, mantenha o ponteiro sobre o texto Sem conteúdo e clique em Segurança.SDKs da API Gemini
O snippet de código a seguir mostra como definir as configurações de segurança na chamada de
GenerateContent
. Isso define os limites para as categorias de assédio (HARM_CATEGORY_HARASSMENT
) e discurso de ódio (HARM_CATEGORY_HATE_SPEECH
). Por exemplo, definir essas categorias como BLOCK_LOW_AND_ABOVE
bloqueia qualquer conteúdo com probabilidade baixa ou alta de ser assédio ou
discurso de ódio. Para entender as configurações de limite, consulte
Filtragem de segurança por solicitação.
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)
Go
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
Próximas etapas
- Consulte a referência da API para saber mais sobre a API completa.
- Consulte as diretrizes de segurança para uma visão geral das considerações de segurança ao desenvolver com LLMs.
- Saiba mais sobre como avaliar a probabilidade e a gravidade com a equipe da Jigsaw.
- Saiba mais sobre os produtos que contribuem para soluções de segurança, como a API Perspective. * Você pode usar essas configurações de segurança para criar um classificador de toxicidade. Consulte o exemplo de classificação para começar.