Los modelos de IA generativa de Google, como Gemini 2.5 Flash, se han diseñado para priorizar la seguridad. Sin embargo, pueden generar respuestas dañinas, sobre todo si se les pide explícitamente. Para mejorar aún más la seguridad y minimizar el uso inadecuado, puedes configurar filtros de contenido para bloquear respuestas potencialmente dañinas.
En esta página se describe cada uno de los tipos de filtros de seguridad y contenido, y se explican los conceptos clave de seguridad. En el caso de los filtros de contenido configurables, se explica cómo configurar los umbrales de bloqueo de cada categoría de contenido dañino para controlar la frecuencia con la que se bloquean las peticiones y las respuestas.
Los filtros de seguridad y de contenido actúan como barrera para evitar que se genere contenido dañino, pero no influyen directamente en el comportamiento del modelo. Para obtener más información sobre la capacidad de dirigir el modelo, consulta Instrucciones del sistema para la seguridad.
Peticiones no seguras
La API de Gemini en Vertex AI proporciona uno de los siguientes códigos enum
para explicar por qué se ha rechazado una petición:
Enum | Tipo de filtro | Descripción |
---|---|---|
PROHIBITED_CONTENT |
Filtro de seguridad no configurable | La petición se ha bloqueado porque se ha detectado que contiene contenido prohibido, normalmente material de abuso sexual infantil. |
BLOCKED_REASON_UNSPECIFIED |
N/A | No se ha especificado el motivo del bloqueo de la petición. |
OTHER |
N/A | Este enum hace referencia a todos los demás motivos por los que se bloquea una petición. Ten en cuenta que la API de Gemini en Vertex AI no admite todos los idiomas. Para ver una lista de los idiomas disponibles, consulta Idiomas disponibles en Gemini. |
Para obtener más información, consulta BlockedReason.
A continuación, se muestra un ejemplo de la salida de la API de Gemini en Vertex AI cuando se bloquea una petición por contener PROHIBITED_CONTENT
:
{
"promptFeedback": {
"blockReason": "PROHIBITED_CONTENT"
},
"usageMetadata": {
"promptTokenCount": 7,
"totalTokenCount": 7
}
}
Respuestas no seguras
Los siguientes filtros pueden detectar y bloquear respuestas potencialmente no seguras:
- Filtros de seguridad no configurables, que bloquean el material de abuso sexual infantil y la información de identificación personal.
- Filtros de contenido configurables: bloquean el contenido no seguro en función de una lista de categorías dañinas y de los umbrales de bloqueo configurados por el usuario. Puedes configurar umbrales de bloqueo para cada uno de estos daños en función de lo que sea adecuado para tu caso práctico y tu empresa. Para obtener más información, consulta Filtros de contenido configurables.
- Filtros de citas, que proporcionan citas de material de origen. Para obtener más información, consulta Filtro de citas.
Un LLM genera respuestas en unidades de texto llamadas tokens. Un modelo deja de generar tokens porque llega a un punto de parada natural o porque uno de los filtros bloquea la respuesta. La API de Gemini en Vertex AI
proporciona uno de los siguientes códigos enum
para explicar por qué se ha detenido la generación de tokens:
Enum | Tipo de filtro | Descripción |
---|---|---|
STOP |
N/A | Este enum indica que el modelo ha llegado a un punto de parada natural o a la secuencia de parada proporcionada. |
MAX_TOKENS |
N/A | La generación de tokens se ha detenido porque el modelo ha alcanzado el número máximo de tokens especificado en la solicitud. |
SAFETY |
Filtro de contenido configurable | Se ha detenido la generación de tokens porque la respuesta se ha marcado como contenido dañino. |
RECITATION |
Filtro de citas | La generación de tokens se ha detenido debido a una posible recitación. |
SPII |
Filtro de seguridad no configurable | Se ha detenido la generación de tokens porque se ha detectado que la respuesta contiene información personal identificable sensible (IPIS). |
PROHIBITED_CONTENT |
Filtro de seguridad no configurable | Se ha detenido la generación de tokens porque se ha detectado que la respuesta contiene contenido prohibido, normalmente material de abuso sexual infantil. |
FINISH_REASON_UNSPECIFIED |
N/A | No se ha especificado el motivo de finalización. |
OTHER |
N/A | Este enum hace referencia a todos los demás motivos por los que se detiene la generación de tokens. Ten en cuenta que no se admite la generación de tokens en todos los idiomas. Para ver una lista de los idiomas disponibles, consulta Idiomas disponibles en Gemini. |
Para obtener más información, consulta FinishReason.
Si un filtro bloquea la respuesta, anula el campo Candidate.content
de la respuesta. No proporciona ningún comentario al modelo.
Filtros de contenido configurables
Los filtros de contenido evalúan el contenido en función de una lista de daños. En cada categoría de daño, los filtros de contenido asignan una puntuación en función de la probabilidad de que el contenido sea dañino y otra puntuación en función de la gravedad del contenido dañino.
Los filtros de contenido configurables no tienen versiones independientes de las versiones del modelo. Google no actualizará el filtro de contenido configurable de una versión de un modelo que se haya lanzado anteriormente. Sin embargo, puede actualizar el filtro de contenido configurable para una versión futura de un modelo.
Categorías de contenido dañino
Los filtros de contenido evalúan el contenido en función de las siguientes categorías de daño:
Categoría de daño | Definición |
---|---|
Incitación al odio | Comentarios negativos u ofensivos dirigidos a la identidad o a atributos protegidos. |
Acoso | Comentarios amenazantes, intimidatorios, acosadores o abusivos dirigidos a otra persona. |
Contenido sexual explícito | Incluye referencias a actos sexuales u otro contenido lascivo. |
Contenido peligroso | Promociona o permite el acceso a bienes, servicios y actividades perjudiciales. |
Comparación de las puntuaciones de probabilidad y gravedad
La puntuación de seguridad de probabilidad refleja la probabilidad de que una respuesta del modelo esté asociada al daño correspondiente. Tiene una puntuación de confianza asociada entre 0.0
y 1.0
, redondeada a un decimal.
La puntuación de confianza se discretiza en cuatro niveles de confianza:
NEGLIGIBLE
, LOW
, MEDIUM
y HIGH
.
La puntuación de gravedad refleja la magnitud del daño que puede causar la respuesta de un modelo. Tiene una puntuación de gravedad asociada que va de 0.0
a 1.0
, redondeada a un decimal. La puntuación de gravedad se discretiza en cuatro niveles: NEGLIGIBLE
, LOW
, MEDIUM
y HIGH
.
El contenido puede tener una puntuación de probabilidad baja y una puntuación de gravedad alta, o bien una puntuación de probabilidad alta y una puntuación de gravedad baja.
Cómo configurar filtros de contenido
Puedes usar la API de Gemini en Vertex AI o la Google Cloud consola para configurar los filtros de contenido.
API de Gemini en Vertex AI
La API de Gemini en Vertex AI proporciona dos métodos de bloqueo de contenido dañino:
- SEVERITY este método usa las puntuaciones de probabilidad y gravedad.
- PROBABILITY: este método solo usa la puntuación de probabilidad.
El método predeterminado es SEVERITY
. En los modelos anteriores a gemini-1.5-flash
y gemini-1.5-pro
, el método predeterminado es PROBABILITY
. Para obtener más información, consulta la referencia de la API HarmBlockMethod
.
La API de Gemini en Vertex AI proporciona los siguientes umbrales de bloqueo de contenido dañino:
BLOCK_LOW_AND_ABOVE
: bloquea cuando la puntuación de probabilidad o la puntuación de gravedad seaLOW
,MEDIUM
oHIGH
.BLOCK_MEDIUM_AND_ABOVE
: bloquea cuando la puntuación de probabilidad o la puntuación de gravedad seaMEDIUM
oHIGH
.BLOCK_ONLY_HIGH
: se bloquea cuando la puntuación de probabilidad o la puntuación de gravedad esHIGH
.HARM_BLOCK_THRESHOLD_UNSPECIFIED
: bloquea el contenido con el umbral predeterminado.OFF
: no se bloquea ninguna respuesta automatizada y no se devuelven metadatos. En el caso degemini-2.5-flash
y los modelos posteriores,OFF
es el valor predeterminado.BLOCK_NONE
: el ajusteBLOCK_NONE
elimina el bloqueo de respuestas automáticas. En su lugar, puedes configurar tus propias directrices de contenido con las puntuaciones devueltas. Este campo está restringido y no está disponible para todos los usuarios de las versiones del modelo de GA.
Por ejemplo, el siguiente código de Python muestra cómo puedes definir el umbral de bloqueo de contenido dañino en BLOCK_ONLY_HIGH
para la categoría de contenido peligroso:
generative_models.SafetySetting(
category=generative_models.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
threshold=generative_models.HarmBlockThreshold.BLOCK_ONLY_HIGH,
),
De esta forma, se bloqueará la mayor parte del contenido clasificado como peligroso.
Para obtener más información, consulta la referencia de la API HarmBlockThreshold
.
Para ver ejemplos completos en Python, Node.js, Java, Go, C# y REST, consulta Ejemplos de configuración de filtros de contenido.
Google Cloud consola
La Google Cloud consola te permite configurar un umbral para cada atributo de contenido. El filtro de contenido solo usa las puntuaciones de probabilidad. No hay ninguna opción para usar las puntuaciones de gravedad.
La consola Google Cloud proporciona los siguientes valores de umbral:
- Desactivado (opción predeterminada): no se bloquean las respuestas automáticas.
- Bloquear pocos: bloquea cuando la puntuación de probabilidad sea
HIGH
. - Bloquear algunos: bloquea cuando la puntuación de probabilidad sea
MEDIUM
oHIGH
. - Bloquear la mayoría: bloquea cuando la puntuación de probabilidad sea
LOW
,MEDIUM
oHIGH
.
Por ejemplo, si selecciona la opción Bloquear poco en la categoría de contenido peligroso, se bloqueará todo el contenido que tenga una alta probabilidad de ser peligroso. Se permite cualquier otra opción con una probabilidad inferior. El umbral predeterminado es Block some
.
Para definir los umbrales, sigue estos pasos:
En la sección Vertex AI de la Google Cloud consola, ve a la página Vertex AI Studio.
En Crear una petición, haz clic en cualquiera de los botones para abrir la página de diseño de la petición.
Haz clic en Configuración de seguridad.
Se abrirá la ventana de diálogo Configuración de seguridad.
En cada categoría de daño, configure el valor de umbral que quiera.
Haz clic en Guardar.
Ejemplo de salida cuando el filtro de contenido configurable bloquea una respuesta
A continuación, se muestra un ejemplo de la salida de la API de Gemini en Vertex AI cuando el filtro de contenido configurable bloquea una respuesta por contener contenido peligroso:
{
"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
}
}
Ejemplos de configuración de filtros de contenido
En los siguientes ejemplos se muestra cómo configurar el filtro de contenido con la API de Gemini en Vertex AI:
Python
Instalar
pip install --upgrade google-genai
Para obtener más información, consulta la documentación de referencia del SDK.
Define variables de entorno para usar el SDK de IA generativa con 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
Después de configurar tu entorno, puedes usar REST para probar una petición de texto. En el siguiente ejemplo se envía una solicitud al endpoint del modelo del editor.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION: la región en la que se procesará la solicitud. Entre las opciones disponibles se incluyen las siguientes:
Haz clic para ver una lista parcial de las regiones disponibles
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: tu ID de proyecto.
- MODEL_ID: el ID del modelo multimodal que quieras usar, como
gemini-2.5-flash
. - ROLE:
el rol en una conversación asociado al contenido. Es obligatorio especificar un rol incluso en los casos prácticos de una sola interacción.
Entre los valores aceptados se incluyen los siguientes:
USER
: especifica el contenido que has enviado.MODEL
: especifica la respuesta del modelo.
- TEXT: las instrucciones de texto que se deben incluir en la petición.
- SAFETY_CATEGORY:
la categoría de seguridad para la que se va a configurar un umbral. Entre los valores aceptados se incluyen los siguientes:
Haz clic para desplegar las categorías de seguridad.
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:
Umbral para bloquear las respuestas que podrían pertenecer a la categoría de seguridad especificada en función de la probabilidad. Entre los valores aceptados se incluyen los siguientes:
Haz clic para desplegar los umbrales de bloqueo
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(predeterminado)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
bloquea la mayoría de las cookies, mientras queBLOCK_ONLY_HIGH
bloquea la menor cantidad.
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent
Cuerpo JSON de la solicitud:
{ "contents": { "role": "ROLE", "parts": { "text": "TEXT" } }, "safetySettings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Deberías recibir una respuesta JSON similar a la siguiente.
Comando curl de ejemplo
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 citas
Las funciones de código generativo de Vertex AI están diseñadas para producir contenido original. Por diseño, Gemini limita la probabilidad de que se replique contenido que ya existe. Si una función de Gemini cita de forma extensa una página web, Gemini la mencionará.
En ocasiones, un mismo contenido puede aparecer en varias páginas web. Gemini intenta dirigirte a una fuente popular. En el caso de las citas de repositorios de código, es posible que la cita también haga referencia a la licencia de software libre aplicable. Es su responsabilidad cumplir los requisitos de dichas licencias.
Para obtener información sobre los metadatos del filtro de citas, consulta la referencia de la API Citation.
Prácticas recomendadas
Aunque los filtros de contenido ayudan a evitar el contenido no seguro, es posible que, en ocasiones, bloqueen contenido benigno o no detecten contenido dañino. Los modelos avanzados, como Gemini 2.5 Flash, se han diseñado para generar respuestas seguras incluso sin filtros. Prueba diferentes ajustes de filtros para encontrar el equilibrio adecuado entre seguridad y contenido apropiado.
Siguientes pasos
- Consulta las instrucciones del sistema sobre seguridad.
- Consulta información sobre la monitorización de abusos.
- Más información sobre la IA responsable
- Consulta cómo procesar respuestas bloqueadas.