Los modelos de IA generativa de Google, como Gemini 2.5 Flash, están diseñados para priorizar la seguridad. Sin embargo, aún pueden generar respuestas dañinas, en especial cuando se les solicita de forma explícita. 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 describen conceptos clave de seguridad. En el caso de los filtros de contenido configurables, se muestra cómo configurar los umbrales de bloqueo de cada categoría de daño para controlar la frecuencia con la que se bloquean las solicitudes y respuestas. También se proporcionan ejemplos para demostrar cómo programar un filtro de contenido configurable.
Los filtros de seguridad y contenido actúan como una barrera para evitar resultados dañinos, pero no influyen directamente en el comportamiento del modelo. Para obtener más información sobre la capacidad de dirección del modelo, consulta Instrucciones del sistema para la seguridad.
Instrucciones no seguras
La API de Gemini en Vertex AI proporciona uno de los siguientes códigos enum
para explicar por qué se rechazó una instrucción:
Enum | Tipo de filtro | Descripción |
---|---|---|
PROHIBITED_CONTENT |
Filtro de seguridad no configurable | Se bloqueó la instrucción porque se marcó por incluir contenido prohibido, por lo general, CSAM. |
BLOCKED_REASON_UNSPECIFIED |
N/A | No se especifica el motivo por el que se bloqueó la instrucción. |
OTHER |
N/A | Esta enumeración hace referencia a todos los demás motivos para bloquear una instrucción. Ten en cuenta que la API de Gemini en Vertex AI no es compatible con todos los idiomas. Para obtener una lista de los idiomas admitidos, consulta Compatibilidad con idiomas de Gemini. |
Para obtener más información, consulta BlockedReason.
A continuación, se muestran ejemplos de resultados de la API de Gemini en Vertex AI para comentarios sobre instrucciones.
Si se bloquea una instrucción, promptFeedback
contiene un blockReason
. Si no se bloquea una instrucción, promptFeedback
está vacío, como en el siguiente ejemplo:
{
"promptFeedback": {
},
"usageMetadata": {
"promptTokenCount": 7,
"totalTokenCount": 7
}
}
En el siguiente ejemplo, se muestra una instrucción bloqueada por contener PROHIBITED_CONTENT
:
{
"promptFeedback": {
"blockReason": "PROHIBITED_CONTENT"
},
"usageMetadata": {
"promptTokenCount": 7,
"totalTokenCount": 7
}
}
En el siguiente ejemplo, se muestra una instrucción bloqueada por un motivo no especificado:
{
"promptFeedback": {
"blockReason": "BLOCKED_REASON_UNSPECIFIED"
},
"usageMetadata": {
"promptTokenCount": 7,
"totalTokenCount": 7
}
}
Respuestas no seguras
Los siguientes filtros pueden detectar y bloquear respuestas potencialmente inseguras:
- Filtros de seguridad no configurables, que bloquean el material de abuso sexual infantil (CSAM) y la información de identificación personal (PII).
- Filtros de contenido configurables, que bloquean el contenido no seguro en función de una lista de categorías de daño y sus umbrales de bloqueo configurados por el usuario. Puedes configurar umbrales de bloqueo para cada uno de estos daños según lo que sea apropiado para tu caso de uso y tu empresa. Para obtener más información, consulta Filtros de contenido configurables.
- Filtros de citas, que proporcionan citas para el material de referencia Para obtener más información, consulta Filtro de cita.
Un LLM genera respuestas en unidades de texto llamadas tokens. Un modelo deja de generar tokens porque alcanza un punto de detención 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 detuvo la generación de tokens:
Enum | Tipo de filtro | Descripción |
---|---|---|
STOP |
N/A | Esta enumeración indica que el modelo alcanzó un punto de detención natural o la secuencia de detención proporcionada. |
MAX_TOKENS |
N/A | La generación de tokens se detuvo porque el modelo alcanzó la cantidad máxima de tokens especificada en la solicitud. |
SAFETY |
Filtro de contenido configurable | La generación del token se detuvo porque la respuesta se marcó por incluir contenido dañino. |
RECITATION |
Filtro de citas | La generación del token se detuvo debido a una posible recitación. |
SPII |
Filtro de seguridad no configurable | La generación de tokens se detuvo porque la respuesta se marcó por contenido de información de identificación personal sensible (IIPS). |
PROHIBITED_CONTENT |
Filtro de seguridad no configurable | La generación de tokens se detuvo porque la respuesta se marcó por incluir contenido prohibido, por lo general, CSAM. |
FINISH_REASON_UNSPECIFIED |
N/A | No se especifica el motivo de finalización. |
OTHER |
N/A | Esta enumeración hace referencia a todos los demás motivos que detienen la generación de tokens. Ten en cuenta que la generación de tokens no es compatible con todos los idiomas. Para obtener una lista de los idiomas admitidos, consulta Compatibilidad con idiomas de 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. Para cada categoría de daño, los filtros de contenido asignan una puntuación según la probabilidad de que el contenido sea dañino y otra puntuación según la gravedad del contenido dañino.
Los filtros de contenido configurables no tienen control de versiones independiente de las versiones del modelo. Google no actualizará el filtro de contenido configurable para 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 daño
Los filtros de contenido evalúan el contenido según las siguientes categorías de daño:
Categoría de daño | Definición |
---|---|
Incitación al odio o a la violencia | Comentarios negativos o dañinos que se orientan a la identidad o los atributos protegidos. |
Acoso | Comentarios amenazantes, intimidantes, de bullying o abusivos dirigidos a otra persona. |
Sexualmente explícito | Incluye referencias a actos sexual o a otro contenido obsceno. |
Contenido peligroso | Promueve o habilita el acceso a bienes, servicios y actividades perjudiciales. |
Comparación de las puntuaciones de probabilidad y las puntuaciones de gravedad
La puntuación de seguridad de probabilidad refleja la probabilidad de que una respuesta del modelo esté asociada con el 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 de la gravedad de una respuesta del modelo. Tiene una puntuación de gravedad asociada que varía 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 una puntuación de probabilidad alta y una puntuación de gravedad baja.
Opciones de configuración del filtro de contenido
Puedes usar la API de Gemini en Vertex AI o la consola de Google Cloud 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 daños":
- SEVERITY: Este método usa puntuaciones de probabilidad y gravedad.
- PROBABILITY: Este método solo usa la puntuación de probabilidad.
El método predeterminado es SEVERITY
. Para modelos anteriores a gemini-1.5-flash
y gemini-1.5-pro
, el método predeterminado es PROBABILITY
. Si deseas obtener más información, consulta la referencia de la API de 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
: Bloquea cuando la puntuación de probabilidad o la puntuación de gravedad seaHIGH
.HARM_BLOCK_THRESHOLD_UNSPECIFIED
: Bloquea con el umbral predeterminado.OFF
: No se bloquean las respuestas automáticas ni se muestran metadatos. Paragemini-2.5-flash
y los modelos posteriores,OFF
es el valor predeterminado.BLOCK_NONE
: El parámetro de configuraciónBLOCK_NONE
quita el bloqueo de respuestas automáticas. En cambio, puedes configurar tus propios lineamientos de contenido con las puntuaciones que se muestran. Este es un campo restringido que no está disponible para todos los usuarios en las versiones del modelo de GA.
Por ejemplo, en el siguiente código de Python, se muestra cómo puedes establecer el umbral de bloqueo de daño 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.
Si deseas obtener más información, consulta la referencia de la API de HarmBlockThreshold
.
Para ver ejemplos de extremo a extremo en Python, Node.js, Java, Go, C# y REST, consulta Ejemplos de configuración de filtros de contenido.
Consola de Google Cloud
La consola de Google Cloud te permite configurar un umbral para cada atributo de contenido. El filtro de contenido solo usa las puntuaciones de probabilidad. No hay opción para usar las puntuaciones de gravedad.
La consola de Google Cloud proporciona los siguientes valores de umbral:
- Desactivado (predeterminado): No se bloquean las respuestas automáticas.
- Bloquear pocos: Bloquear el contenido cuando la puntuación de probabilidad sea
HIGH
. - Bloquear algunos: Bloquear cuando la puntuación de probabilidad sea
MEDIUM
oHIGH
. - Bloquear la mayoría: Bloquear cuando la puntuación de probabilidad sea
LOW
,MEDIUM
oHIGH
.
Por ejemplo, si estableces la configuración de bloqueo en Bloquear poco para la categoría de contenido peligroso, se bloqueará todo lo que tenga una alta probabilidad de ser contenido peligroso. Se permite cualquier cosa con una probabilidad menor.
Para establecer 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 un mensaje nuevo, haz clic en cualquiera de los botones para abrir la página de diseño de mensajes.
Haz clic en Configuración de seguridad.
Se abrirá la ventana de diálogo Configuración de seguridad.
Para cada categoría de daño, configura el valor de umbral deseado.
Haz clic en Guardar.
Ejemplo de resultado para una respuesta bloqueada
A continuación, se muestra un ejemplo del resultado 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
}
}
Implementa una configuración de filtro de contenido
En los siguientes ejemplos, se muestra cómo puedes 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.
Establece 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
Go
Obtén más información para instalar o actualizar Go.
Para obtener más información, consulta la documentación de referencia del SDK.
Establece 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 instrucción de texto. En el siguiente ejemplo, se envía una solicitud al extremo del modelo de publicador.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION: La región para procesar la solicitud. Las opciones disponibles incluyen las siguientes:
Haz clic para expandir una lista parcial de regiones disponibles
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: El ID del proyecto.
- MODEL_ID: El ID del modelo multimodal
que deseas usar, como
gemini-2.5-flash
. - ROLE:
El rol en una conversación asociada con el contenido. Especificar un rol es obligatorio incluso en
casos de uso de un solo turno.
Los valores aceptables son los siguientes:
USER
: especifica el contenido que envías.MODEL
: especifica la respuesta del modelo.
- TEXT: Las instrucciones de texto que se incluirán en el mensaje.
- SAFETY_CATEGORY:
La categoría de seguridad para la que se configura un umbral. Los valores aceptables son los siguientes:
Haz clic para expandir las categorías de seguridad
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:
El umbral para bloquear respuestas que podrían pertenecer a la categoría de seguridad especificada según la probabilidad. Los valores aceptables son los siguientes:
Haz clic para expandir los umbrales de bloqueo
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(predeterminada)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
bloquea más, mientras queBLOCK_ONLY_HIGH
bloquea menos.
HTTP method and 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 que se muestra a continuación:
Ejemplo del comando curl
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"
}
]
}'
Clasificador de jailbreak
Algunas instrucciones intentan eludir los lineamientos de seguridad, las restricciones éticas o las instrucciones operativas previstas, lo que genera resultados potencialmente dañinos, sesgados o inapropiados. El clasificador de jailbreaking detecta y, según la configuración, bloquea las instrucciones que intentan eludir las defensas del modelo.
Este filtro está desactivado de forma predeterminada. Para activarlo, establece el umbral de bloqueo de JAILBREAK
en cualquiera de los siguientes valores:
BLOCK_NONE
BLOCK_LOW_AND_ABOVE
BLOCK_MEDIUM_AND_ABOVE
BLOCK_ONLY_HIGH
En el siguiente código, se muestra cómo activar este filtro de jailbreak:
generative_models.SafetySetting(
category=generative_models.HarmCategory.JAILBREAK,
threshold=generative_models.HarmBlockThreshold.BLOCK_ONLY_HIGH,
)
Si el clasificador de evasión de restricciones bloquea el contenido, verás un resultado similar a este:
{
prompt_feedback: { # [15B]
block_reason: JAILBREAK
safety_ratings: [ # [118]
{ # 0 [118]
category: HARM_CATEGORY_JAILBREAK
blocked: true
severity: HARM_SEVERITY_MEDIUM
severity_score: 0.76953125
}
]
}
}
Si configuras HarmBlockMethod
como PROBABILITY
, safety_ratings
contendrá probability
y probability_score
en lugar de severity
y severity_score
. En el caso de que no se bloquee ni marque la instrucción, el modelo seguirá devolviendo calificaciones de seguridad según HarmBlockMethod
.
Facturación
Al igual que otros filtros de seguridad de Gemini, el uso del clasificador de jailbreak es gratuito.
Filtro de citas
Las funciones de código generativo de Vertex AI están destinadas a producir contenido original. De forma predeterminada, Gemini limita la probabilidad de que el contenido existente se replique en su totalidad. Si una función de Gemini hace una cita extensa de una página web, Gemini cita esa página.
En ocasiones, es posible que se encuentre el mismo contenido en varias páginas web. Gemini intentará dirigirte a una fuente popular. En el caso de citas a repositorios de código, la cita también puede hacer referencia a una licencia de código abierto aplicable. Es su responsabilidad cumplir con los requisitos de las licencias.
Para obtener información acerca de los metadatos del filtro de citas, consulta la referencia de la API de Citation.
Prácticas recomendadas
Si bien los filtros de contenido ayudan a evitar el contenido no seguro, en ocasiones, es posible que bloqueen contenido benigno o no detecten contenido dañino. Los modelos avanzados, como Gemini 2.5 Flash, están diseñados para generar respuestas seguras incluso sin filtros. Prueba diferentes parámetros de configuración de los filtros para encontrar el equilibrio adecuado entre seguridad y permitir contenido apropiado.
¿Qué sigue?
- Obtén más información sobre las instrucciones del sistema para la seguridad.
- Obtén más información sobre la supervisión del abuso.
- Obtén más información sobre la IA responsable.
- Obtén más información para procesar respuestas bloqueadas.