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:
- O robô me bateu.
- 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:
Use os botões para ajustar cada configuração:
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.