A API Gemini oferece configurações de segurança que podem ser ajustadas durante de prototipagem para determinar se o aplicativo exige mais ou menos configuração de segurança restritiva. É possível ajustar essas configurações em quatro categorias de filtro para restringir ou permitir certos tipos de conteúdo.
Este guia explica como a API Gemini lida com filtros e configurações de segurança e como alterar 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 prejudiciais voltados à identidade e/ou protegidos atributos. |
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. |
Use esses filtros para ajustar o que é apropriado para seu caso de uso. Para Por exemplo, se você estiver criando diálogos de videogames, poderá considerar aceitável para 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 contra danos fundamentais, como conteúdo que coloque a segurança infantil em risco; Esses tipos de dano são sempre bloqueados e não podem ser ajustados.
Nível do filtro "Segurança do conteúdo"
A API Gemini categoriza o nível de probabilidade do conteúdo não seguro como
HIGH
, MEDIUM
, LOW
ou NEGLIGIBLE
.
A API Gemini bloqueia conteúdo com base na probabilidade de ele não ser seguro e não a gravidade. É importante considerar isso, porque alguns conteúdos podem têm baixa probabilidade de serem inseguros, mesmo que a gravidade dos danos possa ainda ser alto. 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 você pode considerar a segunda frase como de maior gravidade em termos de violência. Por isso, é importante que você teste cuidadosamente e considere o que o nível apropriado de bloqueio é necessário para dar suporte aos seus principais casos de uso, enquanto e minimiza os danos aos usuários finais.
Filtragem de segurança por solicitação
É possível 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
a classificação de segurança inclui a categoria e a probabilidade do dano
classificação. Por exemplo, se o conteúdo foi bloqueado devido ao assédio.
categoria com alta probabilidade, a classificação de segurança retornada teria
categoria igual a HARASSMENT
e probabilidade de danos definida como HIGH
.
Por padrão, as configurações de segurança bloqueiam conteúdo (incluindo solicitações) com tamanho maior probabilidade de não ser seguro em qualquer filtro. A segurança da linha de base projetada para funcionar na maioria dos casos de uso. Portanto, ajuste apenas suas configurações se forem consistentemente necessárias para o aplicativo.
A tabela a seguir descreve as configurações de bloqueio que você pode ajustar para cada categoria. Por exemplo, se você definir a configuração de bloqueio como Bloquear poucos para os Categoria Discurso de ódio, tudo que tem alta probabilidade de ser considerado ódio conteúdo de fala bloqueado. No entanto, qualquer item com menor probabilidade de risco é permitido.
Limite (Google AI Studio) | Limite (API) | Descrição |
---|---|---|
Não bloquear nada | 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 a probabilidade de conteúdo não seguro for média ou alta |
Bloquear muitos | BLOCK_LOW_AND_ABOVE |
Bloquear quando a probabilidade de conteúdo não seguro for baixa, média ou alta |
N/A | HARM_BLOCK_THRESHOLD_UNSPECIFIED |
O limite não está especificado, bloqueie usando o limite padrão |
Se ela não for definida, a configuração de bloqueio padrão será Bloquear alguns para todas as categorias.
É possível definir essas configurações para cada solicitação que você fizer ao serviço generativo.
Consulte a API HarmBlockThreshold
para mais detalhes.
Feedback de segurança
generateContent
retorna um
GenerateContentResponse
quais
inclui o feedback de segurança.
O feedback do comando está incluído
promptFeedback
Se
promptFeedback.blockReason
estiver definido, o conteúdo da solicitação será bloqueado.
O feedback do candidato de resposta está incluído em
Candidate.finishReason
e
Candidate.safetyRatings
Resposta "If"
o conteúdo foi bloqueado e o valor de finishReason
era SAFETY
, você pode inspecionar
safetyRatings
para mais detalhes. O conteúdo bloqueado não é retornado.
Ajustar as configurações de segurança
Nesta seção, explicamos 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 transformá-las
Clique em Editar configurações de segurança no painel Executar configurações para abrir o painel Executar configurações de segurança. No modal, você pode usar os controles deslizantes para ajustar a 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), um
A mensagem Nenhum conteúdo aparece se o conteúdo da solicitação é bloqueado. Para saber mais detalhes, segure o ponteiro No Content 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 sua
GenerateContent
. Isso define o assédio (HARM_CATEGORY_HARASSMENT
)
e discurso de ódio (HARM_CATEGORY_HATE_SPEECH
) para
BLOCK_LOW_AND_ABOVE
, que bloqueia qualquer conteúdo com um nível baixo ou maior
probabilidade de assédio ou discurso de ódio.
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,
}
)
Go
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 });
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);
Próximas etapas
- Consulte a referência da API para saber mais sobre a API completa.
- Leia as orientações de segurança para ter uma visão geral do assunto. considerações ao desenvolver com LLMs.
- Saiba mais sobre como avaliar a probabilidade e a gravidade no Jigsaw equipe
- Saiba mais sobre os produtos que contribuem para soluções de segurança como os Perspectiva API. * É possível usar essas configurações de segurança para criar conteúdo tóxico classificador. Veja a classificação exemplo para começar.