Configurações de segurança

Este guia descreve as configurações de segurança ajustáveis disponíveis para a API Gêmeos. Durante a etapa de prototipagem, é possível ajustar as configurações de segurança em quatro dimensões para avaliar rapidamente se o aplicativo exige uma configuração mais ou menos restritiva. Por padrão, as configurações de segurança bloqueiam conteúdo (incluindo solicitações) com probabilidade média ou maior de não ser seguro em qualquer dimensão. Esse valor de referência de segurança foi projetado para funcionar na maioria dos casos de uso. Ajuste as configurações de segurança apenas se ela for necessária de forma consistente para seu app.

Filtros de segurança

Além dos filtros de segurança ajustáveis, a API Gemini tem proteções integradas contra danos essenciais, como conteúdo que coloca a segurança infantil em risco. Esses tipos de dano são sempre bloqueados e não podem ser ajustados.

Os filtros de segurança ajustáveis abrangem as seguintes categorias:

  • Assédio
  • Discurso de ódio
  • Sexualmente explícito
  • Material perigoso

Essas configurações permitem que você, como desenvolvedor, determine o que é apropriado para seu caso de uso. Por exemplo, se você estiver criando um diálogo de videogame, pode considerar aceitável permitir mais conteúdo classificado como perigoso devido à natureza do jogo. Confira outros exemplos de casos de uso que podem precisar de flexibilidade nessas configurações de segurança:

Caso de uso Categoria
App de treinamento antiassédio Discurso de ódio, sexualmente explícito
Roteirista de cinema Sexualmente explícito, perigoso
Classificador de toxicidade Assédio, perigoso

Probabilidade versus gravidade

A API Gemini bloqueia conteúdo com base na probabilidade de ele ser não seguro e não na gravidade. É importante ter isso em mente porque alguns conteúdos podem ter baixa probabilidade de não ser seguros, mesmo que a gravidade dos danos ainda seja alta. Por exemplo, comparando as frases:

  1. O robô me bateu.
  2. O robô me cortou.

A primeira frase pode ter uma probabilidade maior de não ser segura, mas a frase 2 pode ser considerada mais grave em termos de violência.

Por isso, é importante que cada desenvolvedor faça testes cuidadosos e considere qual o nível apropriado de bloqueio é necessário para oferecer suporte aos principais casos de uso e minimizar os danos aos usuários finais.

Configurações de segurança

As configurações de segurança fazem parte da solicitação que você envia ao serviço generativo. É possível ajustar essas configurações para cada solicitação feita à API. A tabela a seguir lista as categorias que podem ser definidas e descreve o tipo de dano que cada categoria abrange.

Categorias Descrições
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.
Material perigoso Promove, facilita ou incentiva atos nocivos.

Essas definições também estão na referência da API. Os modelos do Gemini oferecem suporte apenas a HARM_CATEGORY_HARASSMENT, HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT e HARM_CATEGORY_DANGEROUS_CONTENT. As outras categorias são usadas pelos modelos PaLM 2 (legado).

A tabela a seguir descreve as configurações de bloqueio que podem ser ajustadas em cada categoria. Por exemplo, se você definir a configuração de bloqueio como Bloquear poucos para a categoria Discurso de ódio, tudo com alta probabilidade de ser considerado conteúdo de incitação ao ódio será bloqueado. No entanto, qualquer item com menor probabilidade de risco é permitido.

Se ela não for definida, a configuração de bloqueio padrão será Bloquear alguns para todas as categorias.

Limite (Google AI Studio) Limite (API) Descrição
Bloquear nenhum BLOCK_NONE Sempre mostrar, independentemente da probabilidade de conteúdo não seguro
Bloquear poucos BLOCK_ONLY_HIGH Bloquear quando houver alta probabilidade de conteúdo não seguro
Bloquear alguns BLOCK_MEDIUM_AND_ABOVE Bloquear quando houver probabilidade média ou alta de conteúdo não seguro
Bloquear muitos BLOCK_LOW_AND_ABOVE Bloquear quando a probabilidade de conteúdo não seguro é baixa, média ou alta
HARM_BLOCK_THRESHOLD_UNSPECIFIED O limite não foi especificado, foi bloqueado usando o limite padrão

É possível 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 uma GenerateContentResponse que inclui feedback de segurança.

O feedback imediato 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 finishReason e safetyRatings. Se o conteúdo da resposta foi bloqueado e o finishReason era SAFETY, é possível inspecionar safetyRatings para mais detalhes. A classificação de segurança inclui a categoria e a probabilidade da classificação de danos. O conteúdo que foi bloqueado não será retornado.

A probabilidade retornada corresponde aos níveis de confiança do bloco, conforme mostrado na tabela a seguir:

Probabilidade Descrição
INSIGNIFICANTE O conteúdo tem uma probabilidade insignificante de não ser seguro
LOW O conteúdo tem baixa probabilidade de não ser seguro
MÉDIO O conteúdo tem uma probabilidade média de não ser seguro
HIGH O conteúdo tem uma alta probabilidade de não ser seguro

Por exemplo, se o conteúdo foi bloqueado porque a categoria de assédio tem alta probabilidade, a classificação de segurança retornada vai ter a categoria igual a HARASSMENT e a probabilidade de danos definida como HIGH.

Configurações de segurança no Google AI Studio

Também é possível ajustar as configurações de segurança no Google AI Studio, mas não é possível desativá-las. Para isso, nas Configurações de execução, clique em Editar configurações de segurança:

Botão "Configurações de segurança"

Use os botões para ajustar cada configuração:

Botão "Configurações de segurança"

Uma mensagem Nenhum conteúdo vai aparecer se o conteúdo estiver bloqueado. Para conferir mais detalhes, mantenha o ponteiro do mouse sobre No Content e clique em Safety.

Exemplos de código

Esta seção mostra como usar as configurações de segurança no código com a biblioteca de cliente Python.

Exemplo de solicitação

Confira a seguir um snippet de código Python que mostra como definir configurações de segurança na chamada GenerateContent. Isso define as categorias de danos Harassment e Hate speech como BLOCK_LOW_AND_ABOVE, o que bloqueia qualquer conteúdo com baixa ou alta probabilidade de ser assédio ou discurso de ódio.

from google.generativeai.types import HarmCategory, HarmBlockThreshold

model = genai.GenerativeModel(model_name='gemini-pro-vision')
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,
    }
)

Exemplo de resposta

Confira a seguir um snippet de código para analisar o feedback de segurança da resposta.

try:
  print(response.text)
except ValueError:
  # If the response doesn't contain text, check if the prompt was blocked.
  print(response.prompt_feedback)
  # Also check the finish reason to see if the response was blocked.
  print(response.candidates[0].finish_reason)
  # If the finish reason was SAFETY, the safety ratings have more details.
  print(response.candidates[0].safety_ratings)

Próximas etapas

  • Consulte a referência da API para saber mais sobre a API completa.
  • Consulte as orientações de segurança para ter uma perspectiva geral das considerações relacionadas à 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.