API Gemini предоставляет настройки безопасности, которые можно настроить на этапе прототипирования, чтобы определить, требуется ли вашему приложению более или менее строгая настройка безопасности. Вы можете настроить эти параметры по пяти категориям фильтров, чтобы ограничить или разрешить определённые типы контента.
В этом руководстве описывается, как API Gemini обрабатывает настройки безопасности и фильтрацию, а также как вы можете изменить настройки безопасности для своего приложения.
Фильтры безопасности
Настраиваемые фильтры безопасности API Gemini охватывают следующие категории:
Категория | Описание |
---|---|
Домогательство | Негативные или вредоносные комментарии, направленные на идентификацию и/или защищенные атрибуты. |
Разжигание ненависти | Грубый, неуважительный или оскорбительный контент. |
Сексуально откровенный | Содержит упоминания сексуальных действий или другой непристойный контент. |
Опасный | Пропагандирует, способствует или поощряет вредоносные действия. |
Гражданская честность | Запросы, связанные с выборами. |
Вы можете использовать эти фильтры, чтобы настроить параметры, соответствующие вашему сценарию использования. Например, если вы создаёте диалоги для видеоигры, вы можете счесть приемлемым разрешить больше контента с рейтингом «Опасно» в связи с природой игры.
Помимо настраиваемых фильтров безопасности, API Gemini имеет встроенные средства защиты от основных угроз, таких как контент, представляющий угрозу безопасности детей. Такие угрозы всегда блокируются и не могут быть изменены.
Уровень фильтрации безопасности контента
API Gemini классифицирует уровень вероятности небезопасности контента как HIGH
, MEDIUM
, LOW
или NEGLIGIBLE
.
API Gemini блокирует контент, исходя из вероятности его небезопасности, а не из степени серьёзности. Это важно учитывать, поскольку некоторые материалы могут иметь низкую вероятность небезопасности, даже если степень серьёзности вреда всё ещё высока. Например, сравните предложения:
- Робот ударил меня.
- Робот изрезал меня.
Первое предложение может быть связано с большей вероятностью небезопасности, но второе предложение может показаться вам более суровым с точки зрения насилия. Учитывая это, важно тщательно протестировать и определить необходимый уровень блокировки для поддержки ваших ключевых сценариев использования, минимизируя при этом вред для конечных пользователей.
Фильтрация безопасности по запросу
Вы можете настраивать параметры безопасности для каждого запроса к API. При запросе контент анализируется и ему присваивается рейтинг безопасности. Рейтинг безопасности включает в себя категорию и вероятность классификации вреда. Например, если контент был заблокирован из-за высокой вероятности классификации как домогательства, возвращаемый рейтинг безопасности будет иметь категорию HARASSMENT
, а вероятность вреда — « HIGH
.
По умолчанию настройки безопасности блокируют контент (включая запросы) со средней или высокой вероятностью небезопасности по всем фильтрам. Этот базовый уровень безопасности рассчитан на большинство случаев использования, поэтому вам следует корректировать настройки безопасности только в том случае, если это постоянно требуется для вашего приложения.
В таблице ниже описаны настройки блокировки, которые можно настроить для каждой категории. Например, если для категории «Язык вражды» выбран параметр « Блокировать лишь некоторые» , всё, что с высокой вероятностью является разжиганием ненависти, будет заблокировано. Однако всё, что с меньшей вероятностью разжигает ненависть, разрешено.
Порог (Google AI Studio) | Порог (API) | Описание |
---|---|---|
Блокировать нет | BLOCK_NONE | Всегда показывать независимо от вероятности наличия небезопасного контента |
Блок несколько | BLOCK_ONLY_HIGH | Блокировать при высокой вероятности небезопасного контента |
Заблокировать некоторые | BLOCK_MEDIUM_AND_ABOVE | Блокировать при средней или высокой вероятности наличия небезопасного контента |
Блокировать большинство | BLOCK_LOW_AND_ABOVE | Блокировать при низкой, средней или высокой вероятности наличия небезопасного контента |
Н/Д | HARM_BLOCK_THRESHOLD_UNSPECIFIED | Порог не указан, блокировка с использованием порога по умолчанию |
Если пороговое значение не установлено, пороговое значение блокировки по умолчанию — «Блокировать ничего» (для gemini-1.5-pro-002
и gemini-1.5-flash-002
и всех более новых стабильных моделей GA) или «Блокировать некоторые» (во всех остальных моделях) для всех категорий, кроме категории «Гражданская целостность» .
Пороговое значение блокировки по умолчанию для категории целостности Civic — «Блокировать ничего» (для gemini-2.0-flash-001
, имеющего псевдоним gemini-2.0-flash
, gemini-2.0-pro-exp-02-05
и gemini-2.0-flash-lite
) как для Google AI Studio, так и для API Gemini, а также «Блокировать большую часть» для всех остальных моделей только в Google AI Studio.
Вы можете задать эти настройки для каждого запроса к генерирующему сервису. Подробности см. в справочнике по API HarmBlockThreshold
.
Обратная связь по безопасности
generateContent
возвращает GenerateContentResponse
, который включает обратную связь по безопасности.
Обратная связь по подсказке включена в promptFeedback
. Если задано promptFeedback.blockReason
, то содержимое подсказки было заблокировано.
Обратная связь с кандидатом на ответ включается в Candidate.finishReason
и Candidate.safetyRatings
. Если содержимое ответа было заблокировано, а finishReason
имел значение SAFETY
, вы можете проверить safetyRatings
для получения более подробной информации. Заблокированное содержимое не возвращается.
Настройте параметры безопасности
В этом разделе описывается, как настроить параметры безопасности как в Google AI Studio, так и в вашем коде.
Google AI Studio
Вы можете настроить параметры безопасности в Google AI Studio, но не можете их отключить.
Нажмите «Изменить параметры безопасности» на панели «Параметры запуска» , чтобы открыть модальное окно «Параметры безопасности запуска» . В этом модальном окне вы можете настроить уровень фильтрации контента для каждой категории безопасности с помощью ползунков:
При отправке запроса (например, задавая вопрос модели) появляется
сообщение «Нет контента» , если содержимое запроса заблокировано. Чтобы увидеть более подробную информацию, наведите указатель мыши на текст «Нет контента» и нажмите кнопку Безопасность» .Gemini API SDK
В следующем фрагменте кода показано, как настроить параметры безопасности в вызове GenerateContent
. Это задаёт пороговые значения для категорий домогательств ( HARM_CATEGORY_HARASSMENT
) и разжигания ненависти ( HARM_CATEGORY_HATE_SPEECH
). Например, если задать для этих категорий значение BLOCK_LOW_AND_ABOVE
, будет заблокирован любой контент с низкой или высокой вероятностью принадлежащий к категории домогательств или разжигания ненависти. Подробнее о настройках пороговых значений см. в разделе Фильтрация безопасности по запросу .
Питон
from google import genai
from google.genai import types
import PIL.Image
img = PIL.Image.open("cookies.jpg")
client = genai.Client()
response = client.models.generate_content(
model="gemini-2.0-flash",
contents=['Do these look store-bought or homemade?', img],
config=types.GenerateContentConfig(
safety_settings=[
types.SafetySetting(
category=types.HarmCategory.HARM_CATEGORY_HATE_SPEECH,
threshold=types.HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
),
]
)
)
print(response.text)
Идти
package main
import (
"context"
"fmt"
"log"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
config := &genai.GenerateContentConfig{
SafetySettings: []*genai.SafetySetting{
{
Category: "HARM_CATEGORY_HATE_SPEECH",
Threshold: "BLOCK_LOW_AND_ABOVE",
},
},
}
response, err := client.Models.GenerateContent(
ctx,
"gemini-2.0-flash",
genai.Text("Some potentially unsafe prompt."),
config,
)
if err != nil {
log.Fatal(err)
}
fmt.Println(response.Text())
}
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const safetySettings = [
{
category: "HARM_CATEGORY_HARASSMENT",
threshold: "BLOCK_LOW_AND_ABOVE",
},
{
category: "HARM_CATEGORY_HATE_SPEECH",
threshold: "BLOCK_LOW_AND_ABOVE",
},
];
async function main() {
const response = await ai.models.generateContent({
model: "gemini-2.0-flash",
contents: "Some potentially unsafe prompt.",
config: {
safetySettings: safetySettings,
},
});
console.log(response.text);
}
await main();
Дарт (Флаттер)
final safetySettings = [
SafetySetting(HarmCategory.harassment, HarmBlockThreshold.low),
SafetySetting(HarmCategory.hateSpeech, HarmBlockThreshold.low),
];
final model = GenerativeModel(
model: 'gemini-1.5-flash',
apiKey: apiKey,
safetySettings: safetySettings,
);
Котлин
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)
)
Ява
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);
ОТДЫХ
echo '{ "safetySettings": [ {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_ONLY_HIGH"}, {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_MEDIUM_AND_ABOVE"} ], "contents": [{ "parts":[{ "text": "'I support Martians Soccer Club and I think Jupiterians Football Club sucks! Write a ironic phrase about them.'"}]}]}' > request.json
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent" \ -H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d @request.json 2> /dev/null
Следующие шаги
- Более подробную информацию о полном API см. в справочнике API .
- Ознакомьтесь с руководством по технике безопасности для получения общего представления о мерах безопасности при работе со студентами магистратуры права.
- Узнайте больше об оценке вероятности и серьезности от команды Jigsaw
- Узнайте больше о продуктах, которые способствуют созданию решений по безопасности, таких как Perspective API . * Вы можете использовать эти настройки безопасности для создания классификатора токсичности. Чтобы начать работу, ознакомьтесь с примером классификации .