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:
- El robot me golpeó.
- 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:
Usa los controles para ajustar cada parámetro:
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.