La API de Gemini ofrece parámetros de configuración de seguridad que puedes ajustar durante la prototipado para determinar si tu aplicación requiere más o menos configuración de seguridad restrictiva. Puedes ajustar esta configuración en cuatro filtrar categorías para restringir o permitir ciertos tipos de contenido.
En esta guía, se explica cómo la API de Gemini maneja los parámetros de configuración de seguridad y el filtrado, y cómo cambiar la configuración de seguridad de tu aplicación.
Filtros de seguridad
Los filtros de seguridad ajustables de la API de Gemini abarcan las siguientes categorías:
Categoría | Descripción |
---|---|
Acoso | Comentarios negativos o dañinos que se orientan a identidades o están protegidos. atributos. |
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. |
Peligroso | Promueve, facilita o fomenta actividades perjudiciales. |
Puedes usar estos filtros para ajustar lo que es adecuado para tu caso de uso. Para Por ejemplo, si estás compilando diálogos de videojuegos, puedes considerar que permitir más contenido clasificado como Peligroso debido a la naturaleza del juego.
Además de los filtros de seguridad ajustables, la API de Gemini tiene Protecciones contra daños esenciales, como contenido que ponga en riesgo la seguridad infantil Estos tipos de daños siempre están bloqueados y no se pueden ajustar.
Nivel de filtro de seguridad del contenido
La API de Gemini clasifica el nivel de probabilidad de que el contenido no sea seguro como
HIGH
, MEDIUM
, LOW
o NEGLIGIBLE
.
La API de Gemini bloquea contenido según la probabilidad de que no sea seguro y no a la gravedad. Es importante tenerlo en cuenta porque parte del contenido puede tienen una baja probabilidad de ser inseguros, a pesar de que la gravedad del daño podría siga siendo alta. Por ejemplo, comparemos las siguientes oraciones:
- El robot me golpeó.
- El robot me acuchilló.
La primera oración podría tener una mayor probabilidad de ser insegura, pero podría considerar que la segunda oración es de mayor gravedad en términos de violencia. Dado esto, es importante que pruebes y consideres con cuidado cuál es la diferencia se necesita un nivel adecuado de bloqueo para admitir tus casos de uso clave mientras minimizando el daño a los usuarios finales.
Filtrado de seguridad por solicitud
Puedes ajustar la configuración de seguridad para cada solicitud que hagas a la API. Cuándo
realizas una solicitud, el contenido se analiza y se le asigna una calificación de seguridad. El
la calificación de seguridad incluye la categoría y la probabilidad de daño
clasificación. Por ejemplo, si el contenido se bloqueó debido al acoso
categoría con una alta probabilidad, la calificación de seguridad devuelta tendría
categoría igual a HARASSMENT
y la probabilidad de daño establecida en HIGH
.
De forma predeterminada, la configuración de seguridad bloquea el contenido (incluidas las instrucciones) con hay más probabilidades de ser inseguros en cualquier filtro. La seguridad de este modelo de referencia diseñada para funcionar en la mayoría de los casos de uso, por lo que solo debes ajustar tu si se requiere constantemente para tu aplicación.
En la siguiente tabla, se describen los parámetros de configuración de bloques que puedes ajustar para cada uno de ellos. categoría. Por ejemplo, si estableces la configuración de bloqueo en Bloquear pocos para el La categoría Incitación al odio o a la violencia, todo lo que tiene una alta probabilidad de ser discriminatorio contenido de voz está bloqueado. Pero se permite cualquier cosa con una probabilidad menor.
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 contenido no seguro |
Bloquear algo | BLOCK_MEDIUM_AND_ABOVE |
Bloquear cuando haya contenido inseguro con una probabilidad media o alta |
Bloquear la mayoría | BLOCK_LOW_AND_ABOVE |
Bloquear cuando haya una probabilidad baja, media o alta de contenido no seguro |
N/A | HARM_BLOCK_THRESHOLD_UNSPECIFIED |
No se especifica el umbral; el bloqueo se realiza con el umbral predeterminado. |
Si no la estableces, la configuración de bloqueo predeterminada es Bloquear algunos para todas las categorías.
Puedes establecer estos parámetros de configuración para cada solicitud que hagas al servicio generativo.
Consulta la API de HarmBlockThreshold
.
para obtener más detalles.
Comentarios sobre seguridad
generateContent
devuelve un
GenerateContentResponse
, que
incluye comentarios sobre seguridad.
Los comentarios sobre instrucciones
promptFeedback
Si
Si se configura promptFeedback.blockReason
, se bloqueó el contenido del mensaje.
El feedback de los candidatos se incluye en
Candidate.finishReason
y
Candidate.safetyRatings
Si la respuesta
se bloqueó el contenido y el finishReason
era SAFETY
. Puedes inspeccionarlo
safetyRatings
para obtener más información. No se devuelve el contenido que se bloqueó.
Ajustar la configuración de seguridad
En esta sección, se explica cómo ajustar la configuración de seguridad en Google AI Studio. y en tu código.
Google AI Studio
Puedes ajustar la configuración de seguridad en Google AI Studio, pero no puedes activarla desactivado.
Haz clic en Editar configuración de seguridad en el panel Ejecutar configuración para abrir la opción Ejecutar modal de configuración de seguridad. En la ventana modal, puedes usar los controles deslizantes para ajustar la nivel de filtrado de contenido por categoría de seguridad:
Cuando envías una solicitud (por ejemplo, si haces una pregunta al modelo), una
Aparece el mensaje No Content si el contenido de la solicitud está bloqueado. Para ver más detalles, mantén el puntero sobre el Sin contenido y haz clic en Seguridad.SDK de la API de Gemini
En el siguiente fragmento de código, se muestra cómo establecer la configuración de seguridad en tu
GenerateContent
llamada. Esta acción determina el hostigamiento (HARM_CATEGORY_HARASSMENT
)
y de incitación al odio o a la violencia (HARM_CATEGORY_HATE_SPEECH
) para
BLOCK_LOW_AND_ABOVE
, que bloquea cualquier contenido que tenga un valor bajo o superior
de acoso o incitación al odio o a la violencia.
Python
from google.generativeai.types import HarmCategory, HarmBlockThreshold
model = genai.GenerativeModel(model_name='gemini-1.5-flash')
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,
}
)
Go
model := client.GenerativeModel("gemini-1.5-flash")
model.SafetySettings = []*genai.SafetySetting{
{
Category: genai.HarmCategoryHarassment,
Threshold: genai.HarmBlockLowAndAbove,
},
{
Category: genai.HarmCategoryHateSpeech,
Threshold: genai.HarmBlockLowAndAbove,
},
}
Node.js
import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";
// ...
const safetySettings = [
{
category: HarmCategory.HARM_CATEGORY_HARASSMENT,
threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
},
{
category: HarmCategory.HARM_CATEGORY_HATE_SPEECH,
threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
},
];
const model = genAi.getGenerativeModel({ model: "gemini-1.5-flash", safetySettings: safetySettings });
Web
import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";
// ...
const safetySettings = [
{
category: HarmCategory.HARM_CATEGORY_HARASSMENT,
threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
},
{
category: HarmCategory.HARM_CATEGORY_HATE_SPEECH,
threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
},
];
const model = genAi.getGenerativeModel({ model: "gemini-1.5-flash", safetySettings });
Dart (Flutter)
final safetySettings = [
SafetySetting(HarmCategory.harassment, HarmBlockThreshold.low),
SafetySetting(HarmCategory.hateSpeech, HarmBlockThreshold.low),
];
final model = GenerativeModel(
model: 'gemini-1.5-flash',
apiKey: apiKey,
safetySettings: safetySettings,
);
Kotlin
val harassmentSafety = SafetySetting(HarmCategory.HARASSMENT, BlockThreshold.LOW_AND_ABOVE)
val hateSpeechSafety = SafetySetting(HarmCategory.HATE_SPEECH, BlockThreshold.LOW_AND_ABOVE)
val generativeModel = GenerativeModel(
modelName = "gemini-1.5-flash",
apiKey = BuildConfig.apiKey,
safetySettings = listOf(harassmentSafety, hateSpeechSafety)
)
Java
SafetySetting harassmentSafety = new SafetySetting(HarmCategory.HARASSMENT,
BlockThreshold.LOW_AND_ABOVE);
SafetySetting hateSpeechSafety = new SafetySetting(HarmCategory.HATE_SPEECH,
BlockThreshold.LOW_AND_ABOVE);
GenerativeModel gm = new GenerativeModel(
"gemini-1.5-flash",
BuildConfig.apiKey,
null, // generation config is optional
Arrays.asList(harassmentSafety, hateSpeechSafety)
);
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
Próximos pasos
- Consulta la referencia de la API para obtener más información sobre la API completa.
- Revisa la guía de seguridad para obtener un panorama general de la seguridad. importantes cuando desarrollas con LLM.
- Obtén más información sobre cómo evaluar la probabilidad frente a la gravedad en Jigsaw equipo
- Obtén más información sobre los productos que contribuyen a las soluciones de seguridad como el Perspectiva de la API de Google Ads. * Puedes usar esta configuración de seguridad para crear contenido tóxico clasificador. Consulta la clasificación ejemplo para para comenzar.