Os modelos de IA generativa da Google, como o Gemini 2.5 Flash, foram concebidos para dar prioridade à segurança. No entanto, continuam a poder gerar respostas prejudiciais, especialmente quando recebem instruções explícitas. Para melhorar ainda mais a segurança e minimizar a utilização indevida, pode configurar filtros de conteúdo para bloquear respostas potencialmente prejudiciais.
Esta página descreve cada um dos tipos de filtros de segurança e conteúdo, e apresenta os principais conceitos de segurança. Para filtros de conteúdo configuráveis, mostra-lhe como configurar os limites de bloqueio de cada categoria de danos para controlar a frequência com que os comandos e as respostas são bloqueados.
Os filtros de segurança e de conteúdo atuam como uma barreira, impedindo resultados prejudiciais, mas não influenciam diretamente o comportamento do modelo. Para saber mais sobre a capacidade de direcionamento do modelo, consulte as instruções do sistema para segurança.
Comandos inseguros
A API Gemini no Vertex AI fornece um dos seguintes códigos enum
para explicar por que motivo um comando foi rejeitado:
Enum | Tipo de filtro | Descrição |
---|---|---|
PROHIBITED_CONTENT |
Filtro de segurança não configurável | O comando foi bloqueado porque foi denunciado por conter conteúdos proibidos, normalmente CSAM. |
BLOCKED_REASON_UNSPECIFIED |
N/A | O motivo do bloqueio do comando não está especificado. |
OTHER |
N/A | Esta enumeração refere-se a todos os outros motivos para bloquear um comando. Tenha em atenção que a API Gemini no Vertex AI não suporta todos os idiomas. Para ver uma lista dos idiomas suportados, consulte o artigo Suporte de idiomas do Gemini. |
Para saber mais, consulte BlockedReason.
Segue-se um exemplo do resultado da API Gemini no Vertex AI quando um comando é bloqueado por conter PROHIBITED_CONTENT
:
{
"promptFeedback": {
"blockReason": "PROHIBITED_CONTENT"
},
"usageMetadata": {
"promptTokenCount": 7,
"totalTokenCount": 7
}
}
Respostas não seguras
Os seguintes filtros podem detetar e bloquear respostas potencialmente inseguras:
- Filtros de segurança não configuráveis, que bloqueiam material relativo a abuso sexual infantil (CSAM) e informações de identificação pessoal (PII).
- Filtros de conteúdo configuráveis, que bloqueiam conteúdo não seguro com base numa lista de categorias de danos e nos respetivos limites de bloqueio configurados pelo utilizador. Pode configurar limites de bloqueio para cada um destes danos com base no que é adequado para o seu exemplo de utilização e empresa. Para saber mais, consulte o artigo Filtros de conteúdo configuráveis.
- Filtros de citações, que fornecem citações para o material de origem. Para saber mais, consulte o filtro de citações.
Um MDI/CE gera respostas em unidades de texto denominadas tokens. Um modelo deixa de gerar tokens porque atinge um ponto de paragem natural ou porque um dos filtros bloqueia a resposta. A API Gemini no Vertex AI
fornece um dos seguintes códigos enum
para explicar por que motivo a geração de tokens foi interrompida:
Enum | Tipo de filtro | Descrição |
---|---|---|
STOP |
N/A | Esta enumeração indica que o modelo atingiu um ponto de paragem natural ou a sequência de paragem fornecida. |
MAX_TOKENS |
N/A | A geração de tokens foi interrompida porque o modelo atingiu o número máximo de tokens especificado no pedido. |
SAFETY |
Filtro de conteúdo configurável | A geração de tokens foi interrompida porque a resposta foi sinalizada como conteúdo prejudicial. |
RECITATION |
Filtro de citações | A geração de tokens foi interrompida devido a uma potencial recitação. |
SPII |
Filtro de segurança não configurável | A geração de tokens foi interrompida porque a resposta foi denunciada por conter informações de identificação pessoal confidenciais (SPII). |
PROHIBITED_CONTENT |
Filtro de segurança não configurável | A geração de tokens foi interrompida porque a resposta foi denunciada por conter conteúdo proibido, normalmente CSAM. |
FINISH_REASON_UNSPECIFIED |
N/A | O motivo da conclusão não está especificado. |
OTHER |
N/A | Esta enumeração refere-se a todos os outros motivos que impedem a geração de tokens. Tenha em atenção que a geração de tokens não é suportada para todos os idiomas. Para ver uma lista dos idiomas suportados, consulte o artigo Suporte de idiomas do Gemini. |
Para saber mais, consulte FinishReason.
Se um filtro bloquear a resposta, anula o campo Candidate.content
da resposta. Não fornece feedback ao modelo.
Filtros de conteúdo configuráveis
Os filtros de conteúdo avaliam o conteúdo com base numa lista de danos. Para cada categoria de danos, os filtros de conteúdo atribuem uma pontuação com base na probabilidade de o conteúdo ser prejudicial e outra pontuação com base na gravidade do conteúdo prejudicial.
Os filtros de conteúdo configuráveis não têm controlo de versões independente das versões dos modelos. A Google não atualiza o filtro de conteúdo configurável para uma versão de um modelo lançada anteriormente. No entanto, pode atualizar o filtro de conteúdo configurável para uma versão futura de um modelo.
Categorias de conteúdo prejudicial
Os filtros de conteúdo avaliam o conteúdo com base nas seguintes categorias de danos:
Categoria de danos | Definição |
---|---|
Incitação ao ódio | Comentários negativos ou prejudiciais que visam a identidade e/ou atributos protegidos. |
Assédio | Comentários ameaçadores, intimidantes, de bullying ou abusivos dirigidos a outro indivíduo. |
Conteúdo sexualmente explícito | Contém referências a atos sexuais ou outro conteúdo lascivo. |
Conteúdo perigoso | Promova ou permita o acesso a bens, serviços e atividades prejudiciais. |
Comparação das pontuações de probabilidade e das pontuações de gravidade
A pontuação de segurança de probabilidade reflete a probabilidade de uma resposta do modelo estar associada ao respetivo dano. Tem uma pontuação de confiança associada entre 0.0
e 1.0
, arredondada a uma casa decimal.
A pontuação de confiança é discretizada em quatro níveis de confiança:
NEGLIGIBLE
, LOW
, MEDIUM
e HIGH
.
A pontuação de gravidade reflete a magnitude do potencial de danos de uma resposta do modelo. Tem uma pontuação de gravidade associada que varia entre
0.0
e 1.0
, arredondada a uma casa decimal. A pontuação de gravidade é discretizada em quatro níveis: NEGLIGIBLE
, LOW
, MEDIUM
e HIGH
.
O conteúdo pode ter uma pontuação de probabilidade baixa e uma pontuação de gravidade alta, ou uma pontuação de probabilidade alta e uma pontuação de gravidade baixa.
Como configurar filtros de conteúdo
Pode usar a API Gemini no Vertex AI ou a Google Cloud consola para configurar filtros de conteúdo.
API Gemini no Vertex AI
A API Gemini na Vertex AI oferece dois métodos de "bloqueio de danos":
- SEVERITY: este método usa pontuações de probabilidade e gravidade.
- PROBABILIDADE: este método usa apenas a pontuação de probabilidade.
O método predefinido é SEVERITY
. Para modelos anteriores a gemini-1.5-flash
e gemini-1.5-pro
, o método predefinido é PROBABILITY
. Para saber mais, consulte a
HarmBlockMethod
referência da API.
A API Gemini no Vertex AI fornece os seguintes limites de "bloqueio de danos":
BLOCK_LOW_AND_ABOVE
: bloqueie quando a probabilidade ou a gravidade forLOW
,MEDIUM
ouHIGH
.BLOCK_MEDIUM_AND_ABOVE
: bloqueie quando a pontuação de probabilidade ou a pontuação de gravidade forMEDIUM
ouHIGH
.BLOCK_ONLY_HIGH
: bloquear quando a probabilidade ou a gravidade forHIGH
.HARM_BLOCK_THRESHOLD_UNSPECIFIED
: bloqueie usando o limite predefinido.OFF
: não existe bloqueio de respostas automáticas e não são devolvidos metadados. Para ogemini-2.5-flash
e modelos subsequentes,OFF
é o valor predefinido.BLOCK_NONE
: A definiçãoBLOCK_NONE
remove o bloqueio de respostas automáticas. Em alternativa, pode configurar as suas próprias diretrizes de conteúdo com as classificações devolvidas. Este é um campo restrito que não está disponível para todos os utilizadores nas versões do modelo do GA.
Por exemplo, o seguinte código Python demonstra como pode definir o limite de bloqueio de danos para BLOCK_ONLY_HIGH
para a categoria de conteúdo perigoso:
generative_models.SafetySetting(
category=generative_models.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
threshold=generative_models.HarmBlockThreshold.BLOCK_ONLY_HIGH,
),
Isto bloqueia a maioria do conteúdo classificado como conteúdo perigoso.
Para saber mais, consulte a HarmBlockThreshold
referência da API.
Para ver exemplos completos em Python, Node.js, Java, Go, C# e REST, consulte os exemplos de configuração do filtro de conteúdo.
Google Cloud consola
A Google Cloud consola permite-lhe configurar um limite para cada atributo de conteúdo. O filtro de conteúdo usa apenas as pontuações de probabilidade. Não existe uma opção para usar as pontuações de gravidade.
A consola Google Cloud fornece os seguintes valores de limite:
- Desativado (predefinição): sem bloqueio de respostas automatizadas.
- Bloquear poucos: bloqueia quando a pontuação de probabilidade é
HIGH
. - Bloquear alguns: bloqueie quando a pontuação de probabilidade for
MEDIUM
ouHIGH
. - Bloquear a maioria: bloqueie quando a pontuação de probabilidade for
LOW
,MEDIUM
ouHIGH
.
Por exemplo, se definir a definição de bloqueio como Bloquear alguns para a categoria Conteúdo perigoso, tudo o que tiver uma elevada probabilidade de ser conteúdo perigoso é bloqueado. Qualquer valor com uma probabilidade inferior é permitido.
Para definir os limites, siga estes passos:
Na secção Vertex AI da Google Cloud consola, aceda à página Vertex AI Studio.
Em Criar um novo comando, clique em qualquer um dos botões para abrir a página de design de comandos.
Clique em Definições de segurança.
É aberta a janela de diálogo Definições de segurança.
Para cada categoria de danos, configure o valor de limite pretendido.
Clique em Guardar.
Exemplo de resultado quando uma resposta é bloqueada pelo filtro de conteúdo configurável
Segue-se um exemplo da saída da API Gemini no Vertex AI quando uma resposta é bloqueada pelo filtro de conteúdo configurável por conter conteúdo perigoso:
{
"candidates": [{
"finishReason": "SAFETY",
"safetyRatings": [{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE",
"probabilityScore": 0.11027937,
"severity": "HARM_SEVERITY_LOW",
"severityScore": 0.28487435
}, {
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"probability": "HIGH",
"blocked": true,
"probabilityScore": 0.95422274,
"severity": "HARM_SEVERITY_MEDIUM",
"severityScore": 0.43398145
}, {
"category": "HARM_CATEGORY_HARASSMENT",
"probability": "NEGLIGIBLE",
"probabilityScore": 0.11085559,
"severity": "HARM_SEVERITY_NEGLIGIBLE",
"severityScore": 0.19027223
}, {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"probability": "NEGLIGIBLE",
"probabilityScore": 0.22901751,
"severity": "HARM_SEVERITY_NEGLIGIBLE",
"severityScore": 0.09089675
}]
}],
"usageMetadata": {
"promptTokenCount": 38,
"totalTokenCount": 38
}
}
Exemplos de configuração do filtro de conteúdo
Os exemplos seguintes demonstram como pode configurar o filtro de conteúdo usando a API Gemini no Vertex AI:
Python
Instalação
pip install --upgrade google-genai
Para saber mais, consulte a documentação de referência do SDK.
Defina variáveis de ambiente para usar o SDK de IA generativa com o Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
Saiba como instalar ou atualizar o Go.
Para saber mais, consulte a documentação de referência do SDK.
Defina variáveis de ambiente para usar o SDK de IA generativa com o Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Depois de configurar o seu ambiente, pode usar a API REST para testar um comando de texto. O exemplo seguinte envia um pedido para o ponto final do modelo do publicador.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: a região para processar o pedido. As opções
disponíveis incluem o seguinte:
Clique para expandir uma lista parcial das regiões disponíveis
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: o seu ID do projeto.
- MODEL_ID: o ID do modelo multimodal que quer usar, como
gemini-2.5-flash
. - ROLE:
A função numa conversa associada ao conteúdo. É necessário especificar uma função, mesmo em exemplos de utilização de uma única interação.
Os valores aceitáveis incluem o seguinte:
USER
: especifica o conteúdo enviado por si.MODEL
: especifica a resposta do modelo.
- TEXT: As instruções de texto a incluir no comando.
- SAFETY_CATEGORY:
A categoria de segurança para a qual configurar um limite. Os valores aceitáveis incluem o seguinte:
Clique para expandir as categorias de segurança
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:
O limite para bloquear respostas que possam pertencer à categoria de segurança especificada com base na
probabilidade. Os valores aceitáveis incluem o seguinte:
Clique para expandir os limites de bloqueio
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(predefinição)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
bloqueia mais, enquantoBLOCK_ONLY_HIGH
bloqueia menos.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent
Corpo JSON do pedido:
{ "contents": { "role": "ROLE", "parts": { "text": "TEXT" } }, "safetySettings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte.
Comando curl de exemplo
LOCATION="us-central1"
MODEL_ID="gemini-2.5-flash"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:streamGenerateContent -d \
$'{
"contents": {
"role": "user",
"parts": { "text": "Hello!" }
},
"safety_settings": [
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "OFF"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_ONLY_HIGH"
}
]
}'
Filtro de citações
As funcionalidades de código generativo da Vertex AI destinam-se a produzir conteúdo original. Por conceção, o Gemini limita a probabilidade de o conteúdo existente ser replicado exaustivamente. Se uma funcionalidade do Gemini citar extensivamente conteúdo de uma página Web, o Gemini cita essa página.
Por vezes, é possível encontrar o mesmo conteúdo em várias páginas Web. O Gemini tenta direcionar para uma fonte popular. No caso de citações de repositórios de código, a citação também pode mencionar uma licença de código aberto aplicável. A conformidade com todos os requisitos da licença é da sua responsabilidade.
Para saber mais sobre os metadados do filtro de citações, consulte a referência da API Citation.
Práticas recomendadas
Embora os filtros de conteúdo ajudem a evitar conteúdo inseguro, podem, ocasionalmente, bloquear conteúdo benigno ou não detetar conteúdo prejudicial. Os modelos avançados, como o Gemini 2.5 Flash, foram concebidos para gerar respostas seguras, mesmo sem filtros. Teste diferentes definições de filtros para encontrar o equilíbrio certo entre a segurança e a permissão de conteúdo adequado.
O que se segue?
- Saiba mais acerca das instruções do sistema para segurança.
- Saiba mais sobre a monitorização de abusos.
- Saiba mais sobre a IA responsável.
- Saiba como processar respostas bloqueadas.