Настройки безопасности

Gemini API предоставляет настройки безопасности, которые вы можете настроить на этапе прототипирования, чтобы определить, требует ли ваше приложение более или менее ограничительную настройку безопасности. Вы можете настроить эти параметры в четырех категориях фильтров, чтобы ограничить или разрешить определенные типы контента.

В этом руководстве описано, как API Gemini обрабатывает настройки безопасности и фильтрацию, а также как вы можете изменить настройки безопасности для своего приложения.

Защитные фильтры

Настраиваемые фильтры безопасности Gemini API охватывают следующие категории:

Категория Описание
Домогательство Негативные или вредные комментарии, направленные против личности и/или защищенных атрибутов.
Разжигание ненависти Грубый, неуважительный или оскорбительный контент.
Сексуально откровенно Содержит ссылки на сексуальные действия или другой непристойный контент.
Опасный Поощряет, облегчает или поощряет вредные действия.
Гражданская честность Вопросы, связанные с выборами.

Вы можете использовать эти фильтры, чтобы настроить то, что подходит для вашего случая использования. Например, если вы создаете диалоги в видеоигре, вы можете счесть приемлемым разрешить больше контента, который имеет рейтинг «Опасный» из-за характера игры.

В дополнение к настраиваемым фильтрам безопасности Gemini API имеет встроенную защиту от основных угроз, таких как контент, который ставит под угрозу безопасность детей. Эти виды вреда всегда блокируются и не могут быть скорректированы.

Уровень фильтрации безопасности контента

API Gemini классифицирует уровень вероятности того, что контент небезопасен, как HIGH , MEDIUM , LOW или NEGLIGIBLE .

Gemini API блокирует контент на основе вероятности того, что контент небезопасен, а не его серьезности. Это важно учитывать, поскольку некоторый контент может оказаться небезопасным с низкой вероятностью, хотя тяжесть вреда все равно может быть высокой. Например, сравнивая предложения:

  1. Робот ударил меня.
  2. Робот меня порезал.

Первое предложение может привести к более высокой вероятности опасности, но второе предложение можно рассматривать как более строгое с точки зрения насилия. Учитывая это, важно тщательно протестировать и обдумать, какой соответствующий уровень блокировки необходим для поддержки ваших ключевых вариантов использования при минимизации вреда для конечных пользователей.

Безопасная фильтрация по запросу

Вы можете настроить параметры безопасности для каждого запроса к 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 ) или «Блокировать некоторые » (во всех других моделях) для всех категорий, кроме категории «Гражданская добросовестность» . .

Пороговое значение блокировки по умолчанию для категории «Гражданская целостность»«Блокировать большую часть при отправке запросов с помощью Google AI Studio» и «Нет блокировки» при непосредственном использовании Gemini API.

Вы можете установить эти настройки для каждого запроса, который вы отправляете в генеративную службу. Подробности см. в справочнике по API HarmBlockThreshold .

Обратная связь по безопасности

generateContent возвращает GenerateContentResponse , который включает обратную связь по безопасности.

Оперативная обратная связь включена в promptFeedback . Если задан параметр promptFeedback.blockReason , содержимое приглашения было заблокировано.

Отзывы кандидатов на ответ включены в Candidate.finishReason и Candidate.safetyRatings . Если содержимое ответа было заблокировано, а finishReason был SAFETY , вы можете проверить safetyRatings для получения более подробной информации. Контент, который был заблокирован, не возвращается.

Отрегулируйте настройки безопасности

В этом разделе описано, как настроить параметры безопасности как в Google AI Studio, так и в вашем коде.

Google ИИ-студия

Вы можете настроить параметры безопасности в Google AI Studio, но не можете их отключить.

Нажмите «Изменить настройки безопасности» на панели «Настройки запуска» , чтобы открыть модальное окно «Настройки безопасности запуска» . В модальном окне вы можете использовать ползунки, чтобы настроить уровень фильтрации контента для каждой категории безопасности:

Когда вы отправляете запрос (например, задавая вопрос модели), появляется сообщение «Нет содержимого», если содержимое запроса заблокировано. Чтобы просмотреть более подробную информацию, наведите указатель на текст «Нет содержимого» и нажмите Безопасность » .

SDK Gemini API

В следующем фрагменте кода показано, как установить параметры безопасности в вызове GenerateContent . Это устанавливает пороговые значения для категорий преследований ( HARM_CATEGORY_HARASSMENT ) и разжигания ненависти ( HARM_CATEGORY_HATE_SPEECH ). Например, установка для этих категорий значения BLOCK_LOW_AND_ABOVE блокирует любой контент, который с низкой или высокой вероятностью является оскорбительным или разжигающим ненависть высказыванием. Чтобы понять настройки пороговых значений, см. раздел Безопасная фильтрация по запросу .

Питон

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,
    }
)

Идти

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 });

Интернет

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 });

Дарт (Флаттер)

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-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d @request.json 2> /dev/null

Следующие шаги

  • См. справочник по API , чтобы узнать больше о полной версии API.
  • Ознакомьтесь с руководством по безопасности, чтобы получить общее представление о соображениях безопасности при разработке с использованием LLM.
  • Узнайте больше об оценке вероятности и серьезности от команды Jigsaw.
  • Узнайте больше о продуктах, которые способствуют созданию решений по обеспечению безопасности, таких как Perspective API . * Вы можете использовать эти настройки безопасности для создания классификатора токсичности. Чтобы начать, посмотрите пример классификации .