Configuración de seguridad

En esta guía, se describe la configuración de seguridad ajustable disponible para la API de Gemini. Durante la etapa de prototipado, puedes ajustar la configuración de seguridad en 4 dimensiones para evaluar rápidamente si tu aplicación requiere una configuración más o menos restrictiva. De forma predeterminada, la configuración de seguridad bloquea el contenido (incluidos los mensajes) con una probabilidad media o alta de no ser inseguro en cualquier dimensión. Esta seguridad de referencia está diseñada para funcionar en la mayoría de los casos de uso, por lo que solo debes ajustar la configuración de seguridad si es necesaria de manera coherente para tu aplicación.

Filtros de seguridad

Además de los filtros de seguridad ajustables, la API de Gemini tiene protecciones integradas contra los daños principales, como el contenido que pone en peligro la seguridad infantil. Estos tipos de daño siempre están bloqueados y no se pueden ajustar.

Los filtros de seguridad ajustables abarcan las siguientes categorías:

  • Acoso
  • Incitación al odio o a la violencia
  • Contenido sexual explícito
  • Contenido peligroso

Esta configuración te permite a ti, como desarrollador, determinar qué es lo adecuado para tu caso de uso. Por ejemplo, si creas el diálogo de un videojuego, es posible que consideres aceptable permitir más contenido clasificado como peligroso debido a su naturaleza. Estos son otros ejemplos de casos de uso que pueden necesitar cierta flexibilidad en esta configuración de seguridad:

Caso de uso Categoría
Aplicación de capacitación contra el acoso Incitación al odio o a la violencia, contenido sexual explícito
Autoría del guion Contenido sexual explícito, peligroso
Clasificador de toxicidad Acoso, peligroso

Probabilidad frente a gravedad

La API de Gemini bloquea el contenido en función de la probabilidad de que el contenido no sea seguro y no su gravedad. Es importante tener esto en cuenta, ya que el contenido puede tener una baja probabilidad de no ser seguro, a pesar de que la gravedad del daño puede ser alta. Por ejemplo, comparemos las siguientes oraciones:

  1. El robot me golpeó.
  2. El robot me acuchilló.

La oración 1 puede tener una mayor probabilidad de ser insegura, pero podrías considerar que la oración 2 es de mayor gravedad en términos de violencia.

Debido a esto, es importante que cada desarrollador pruebe y considere cuidadosamente cuál es el nivel adecuado de bloqueo necesario para respaldar sus casos de uso clave y, al mismo tiempo, minimizar el daño a los usuarios finales.

Configuración de seguridad

Los parámetros de configuración de seguridad forman parte de la solicitud que envías al servicio generativo. La configuración se puede ajustar para cada solicitud que realices a la API. En la siguiente tabla, se enumeran las categorías que puedes configurar y se describe el tipo de perjuicio que abarca cada categoría.

Categorías Descripciones
Acoso Comentarios negativos o dañinos que se orientan a la identidad o los atributos protegidos.
Incitación al odio o a la violencia Contenido grosero, irrespetuoso u obsceno.
Contenido sexual explícito Incluye referencias a actos sexual o a otro contenido obsceno.
Contenido peligroso Promueve, facilita o fomenta actividades perjudiciales.

Estas definiciones también se encuentran en la referencia de la API. Los modelos de Gemini solo admiten HARM_CATEGORY_HARASSMENT, HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT y HARM_CATEGORY_DANGEROUS_CONTENT. Los modelos PaLM 2 (heredado) usan las otras categorías.

En la siguiente tabla, se describe la configuración de bloqueo que puedes ajustar para cada categoría. Por ejemplo, si estableces la configuración de bloqueo como Bloquear pocos en la categoría Incitación al odio o a la violencia, se bloqueará todo lo que tenga altas probabilidades de ser contenido de este tipo. Pero se permite cualquier cosa con una probabilidad menor.

Si no la estableces, la configuración de bloqueo predeterminada será Bloquear algunos para todas las categorías.

Umbral (Google AI Studio) Umbral (API) Descripción
No bloquear BLOCK_NONE Mostrar siempre, independientemente de la probabilidad de que haya contenido no seguro
Bloquear poco BLOCK_ONLY_HIGH Bloquear cuando haya alta probabilidad de incluir contenido no seguro
Bloquear algo BLOCK_MEDIUM_AND_ABOVE Bloquear cuando la probabilidad de tener contenido no seguro es media o alta
Bloquear la mayoría BLOCK_LOW_AND_ABOVE Bloquear cuando la probabilidad de que exista contenido no seguro sea baja, media o alta
HARM_BLOCK_THRESHOLD_UNSPECIFIED El umbral no está especificado; se bloquea con el umbral predeterminado

Puedes establecer estos parámetros de configuración para cada solicitud que realices al servicio generativo. Consulta la referencia de la API de HarmBlockThreshold para obtener más detalles.

Comentarios sobre la seguridad

generateContent muestra un GenerateContentResponse que incluye comentarios de seguridad.

Los comentarios sobre indicaciones se incluyen en promptFeedback. Si se configura promptFeedback.blockReason, significa que el contenido del mensaje se bloqueó.

Los comentarios sobre los candidatos para respuestas se incluyen en finishReason y safetyRatings. Si se bloqueó el contenido de la respuesta y el finishReason era SAFETY, puedes inspeccionar safetyRatings para obtener más detalles. La calificación de seguridad incluye la categoría y la probabilidad de la clasificación de daño. No se muestra el contenido bloqueado.

La probabilidad que se muestra corresponde a los niveles de confianza del bloque, como se muestra en la siguiente tabla:

Probabilidad Descripción
DESESTIMABLE El contenido tiene una probabilidad insignificante de no ser seguro.
BAJO Hay pocas probabilidades de que el contenido no sea seguro
MEDIO El contenido tiene una probabilidad media de no ser seguro
ALTO Es muy probable que el contenido no sea seguro

Por ejemplo, si el contenido se bloqueó debido a que la categoría de acoso tiene una probabilidad alta, la calificación de seguridad que se muestra tendría la categoría igual a HARASSMENT y la probabilidad de daño establecida en HIGH.

Configuración de seguridad en Google AI Studio

También puedes ajustar la configuración de seguridad en Google AI Studio, pero no puedes desactivarla. Para ello, en Run settings, haz clic en Edit Safety settings:

Botón de configuración de seguridad

Usa los controles para ajustar cada parámetro:

Botón de configuración de seguridad

Si el contenido está bloqueado, aparecerá un mensaje No Content. Para ver más detalles, mantén el puntero sobre Sin contenido y haz clic en Seguridad.

Ejemplos de código

En esta sección, se muestra cómo usar la configuración de seguridad en el código mediante la biblioteca cliente de Python.

Ejemplo de solicitud

El siguiente es un fragmento de código de Python que muestra cómo establecer la configuración de seguridad en tu llamada a GenerateContent. De esta manera, se establecen las categorías de daño Harassment y Hate speech en BLOCK_LOW_AND_ABOVE, lo que bloquea cualquier contenido que tenga una probabilidad baja o mayor de ser acoso o incitación al odio o a la violencia.

from google.generativeai.types import HarmCategory, HarmBlockThreshold

model = genai.GenerativeModel(model_name='gemini-pro-vision')
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,
    }
)

Ejemplo de respuesta

A continuación, se muestra un fragmento de código para analizar los comentarios de seguridad de la respuesta.

try:
  print(response.text)
except ValueError:
  # If the response doesn't contain text, check if the prompt was blocked.
  print(response.prompt_feedback)
  # Also check the finish reason to see if the response was blocked.
  print(response.candidates[0].finish_reason)
  # If the finish reason was SAFETY, the safety ratings have more details.
  print(response.candidates[0].safety_ratings)

Próximos pasos

  • Consulta la referencia de la API para obtener más información acerca de la API completa.
  • Revisa la guía de seguridad para obtener un panorama general de las consideraciones de seguridad cuando realices desarrollos con LLM.
  • Obtén más información del equipo de Jigsaw para evaluar la probabilidad frente a la gravedad.
  • Obtén más información sobre los productos que contribuyen a las soluciones de seguridad, como la API de Perspective.
  • Puedes usar esta configuración de seguridad para crear un clasificador de toxicidad. Consulta el ejemplo de clasificación para comenzar.