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

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

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

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

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

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

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

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

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

Gemini API классифицирует уровень вероятности небезопасного контента как 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 Порог не указан, блокировка с использованием порога по умолчанию.

Если этот параметр не установлен, настройка блокировки по умолчанию — Блокировать некоторые для всех категорий.

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

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

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

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

Отзывы кандидатов на ответ включены в finishReason и 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.HarmBlockOnlyLowAndAbove,
  },
  {
    Category:  genai.HarmCategoryHateSpeech,
    Threshold: genai.HarmBlockOnlyLowAndAbove,
  },
}

Node.js

import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";

// ...

const safetySetting = [
  {
    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 });

Интернет

import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";

// ...

const safetySetting = [
  {
    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);

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

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