Segurança e filtros de conteúdo

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 for LOW, MEDIUM ou HIGH.
  • BLOCK_MEDIUM_AND_ABOVE: bloqueie quando a pontuação de probabilidade ou a pontuação de gravidade for MEDIUM ou HIGH.
  • BLOCK_ONLY_HIGH: bloquear quando a probabilidade ou a gravidade for HIGH.
  • 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 o gemini-2.5-flash e modelos subsequentes, OFF é o valor predefinido.
  • BLOCK_NONE: A definição BLOCK_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 ou HIGH.
  • Bloquear a maioria: bloqueie quando a pontuação de probabilidade for LOW, MEDIUM ou HIGH.

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:

  1. Na secção Vertex AI da Google Cloud consola, aceda à página Vertex AI Studio.

    Aceda ao Vertex AI Studio

  2. Em Criar um novo comando, clique em qualquer um dos botões para abrir a página de design de comandos.

  3. Clique em Definições de segurança.

    É aberta a janela de diálogo Definições de segurança.

  4. Para cada categoria de danos, configure o valor de limite pretendido.

  5. 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

from google import genai
from google.genai.types import (
    GenerateContentConfig,
    HarmCategory,
    HarmBlockThreshold,
    HttpOptions,
    SafetySetting,
)

client = genai.Client(http_options=HttpOptions(api_version="v1"))

system_instruction = "Be as mean as possible."

prompt = """
    Write a list of 5 disrespectful things that I might say to the universe after stubbing my toe in the dark.
"""

safety_settings = [
    SafetySetting(
        category=HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
        threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
    ),
    SafetySetting(
        category=HarmCategory.HARM_CATEGORY_HARASSMENT,
        threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
    ),
    SafetySetting(
        category=HarmCategory.HARM_CATEGORY_HATE_SPEECH,
        threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
    ),
    SafetySetting(
        category=HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
        threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
    ),
]

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=prompt,
    config=GenerateContentConfig(
        system_instruction=system_instruction,
        safety_settings=safety_settings,
    ),
)

# Response will be `None` if it is blocked.
print(response.text)
# Example response:
#     None

# Finish Reason will be `SAFETY` if it is blocked.
print(response.candidates[0].finish_reason)
# Example response:
#     FinishReason.SAFETY

# For details on all the fields in the response
for each in response.candidates[0].safety_ratings:
    print('\nCategory: ', str(each.category))
    print('Is Blocked:', True if each.blocked else False)
    print('Probability: ', each.probability)
    print('Probability Score: ', each.probability_score)
    print('Severity:', each.severity)
    print('Severity Score:', each.severity_score)
# Example response:
#
#     Category:  HarmCategory.HARM_CATEGORY_HATE_SPEECH
#     Is Blocked: False
#     Probability:  HarmProbability.NEGLIGIBLE
#     Probability Score:  2.547714e-05
#     Severity: HarmSeverity.HARM_SEVERITY_NEGLIGIBLE
#     Severity Score: None
#
#     Category:  HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT
#     Is Blocked: False
#     Probability:  HarmProbability.NEGLIGIBLE
#     Probability Score:  3.6103818e-06
#     Severity: HarmSeverity.HARM_SEVERITY_NEGLIGIBLE
#     Severity Score: None
#
#     Category:  HarmCategory.HARM_CATEGORY_HARASSMENT
#     Is Blocked: True
#     Probability:  HarmProbability.MEDIUM
#     Probability Score:  0.71599233
#     Severity: HarmSeverity.HARM_SEVERITY_MEDIUM
#     Severity Score: 0.30782545
#
#     Category:  HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT
#     Is Blocked: False
#     Probability:  HarmProbability.NEGLIGIBLE
#     Probability Score:  1.5624657e-05
#     Severity: HarmSeverity.HARM_SEVERITY_NEGLIGIBLE
#     Severity Score: None

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

import (
	"context"
	"fmt"
	"io"

	"google.golang.org/genai"
)

// generateTextWithSafety shows how to apply safety settings to a text generation request.
func generateTextWithSafety(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	systemInstruction := &genai.Content{
		Parts: []*genai.Part{
			{Text: "Be as mean as possible."},
		},
		Role: "user",
	}

	prompt := "Write a list of 5 disrespectful things that I might say to the universe after stubbing my toe in the dark."

	safetySettings := []*genai.SafetySetting{
		{Category: genai.HarmCategoryDangerousContent, Threshold: genai.HarmBlockThresholdBlockLowAndAbove},
		{Category: genai.HarmCategoryHarassment, Threshold: genai.HarmBlockThresholdBlockLowAndAbove},
		{Category: genai.HarmCategoryHateSpeech, Threshold: genai.HarmBlockThresholdBlockLowAndAbove},
		{Category: genai.HarmCategorySexuallyExplicit, Threshold: genai.HarmBlockThresholdBlockLowAndAbove},
	}

	config := &genai.GenerateContentConfig{
		SystemInstruction: systemInstruction,
		SafetySettings:    safetySettings,
	}
	modelName := "gemini-2.5-flash"
	resp, err := client.Models.GenerateContent(ctx, modelName,
		[]*genai.Content{{Parts: []*genai.Part{{Text: prompt}}, Role: "user"}},
		config,
	)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	fmt.Fprintln(w, resp.Text())

	if len(resp.Candidates) > 0 {
		fmt.Fprintln(w, "Finish Reason:", resp.Candidates[0].FinishReason)

		for _, rating := range resp.Candidates[0].SafetyRatings {
			fmt.Fprintf(w, "\nCategory: %v\nIs Blocked: %v\nProbability: %v\nProbability Score: %v\nSeverity: %v\nSeverity Score: %v\n",
				rating.Category,
				rating.Blocked,
				rating.Probability,
				rating.ProbabilityScore,
				rating.Severity,
				rating.SeverityScore,
			)
		}
	}

	// Example response:
	// Category: HARM_CATEGORY_HATE_SPEECH
	// Is Blocked: false
	// Probability: NEGLIGIBLE
	// Probability Score: 8.996795e-06
	// Severity: HARM_SEVERITY_NEGLIGIBLE
	// Severity Score: 0.04771039
	//
	// Category: HARM_CATEGORY_DANGEROUS_CONTENT
	// Is Blocked: false
	// Probability: NEGLIGIBLE
	// Probability Score: 2.2431707e-06
	// Severity: HARM_SEVERITY_NEGLIGIBLE
	// Severity Score: 0
	//
	// Category: HARM_CATEGORY_HARASSMENT
	// Is Blocked: false
	// Probability: NEGLIGIBLE
	// Probability Score: 0.00026123362
	// Severity: HARM_SEVERITY_NEGLIGIBLE
	// Severity Score: 0.022358216
	//
	// Category: HARM_CATEGORY_SEXUALLY_EXPLICIT
	// Is Blocked: false
	// Probability: NEGLIGIBLE
	// Probability Score: 6.1352006e-07
	// Severity: HARM_SEVERITY_NEGLIGIBLE
	// Severity Score: 0.020111412

	return nil
}

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, enquanto BLOCK_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?