Модерация
Выявление потенциально опасного контента в текстах и изображениях. Пункт модерации представляет собой инструмент, который можно использовать для проверки, содержится ли в текстах или изображениях потенциально вредоносный материал. После обнаружения нежелательного контента разработчики имеют возможность предпринять корректирующие действия, такие как фильтрация контента или вмешательство в работу учетных записей пользователей, создающих нежелательные материалы. Пункт модерации доступен для использования бесплатно.
Доступные модели для этой цели:
omni-moderation-latest
: Эта модель и все её варианты поддерживают больше категорий и мультимодальные вводы.text-moderation-latest
(Устаревшая): Старая модель, поддерживающая только текстовые вводы и меньше категорий. Новые моделиomni-moderation
будут оптимальным выбором для новых приложений.
Быстрый старт
Пункт модерации позволяет классифицировать как текст, так и изображения. Ниже представлены примеры использования с помощью официальных SDK. Эти примеры используют модель omni-moderation-latest
:
Модерация текстовых вводов
Получение информации о классификации для текстового ввода
from openai import OpenAI
client = OpenAI()
response = client.moderations.create(
model="omni-moderation-latest",
input="...текст для классификации здесь...",
)
print(response)
import OpenAI from "openai";
const openai = new OpenAI();
const moderation = await openai.moderations.create({
model: "omni-moderation-latest",
input: "...текст для классификации здесь...",
});
console.log(moderation);
curl https://api.openai.com/v1/moderations \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "omni-moderation-latest",
"input": "...текст для классификации здесь..."
}'
Модерация изображений и текста
from openai import OpenAI
client = OpenAI()
response = client.moderations.create(
model="omni-moderation-latest",
input=[
{"type": "text", "text": "...текст для классификации здесь..."},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.png",
# можно использовать base64 кодированные URL-адреса изображений
# "url": "data:image/jpeg;base64,abcdefg..."
}
},
],
)
print(response)
import OpenAI from "openai";
const openai = new OpenAI();
const moderation = await openai.moderations.create({
model: "omni-moderation-latest",
input: [
{ type: "text", text: "...текст для классификации здесь..." },
{
type: "image_url",
image_url: {
url: "https://example.com/image.png"
// можно использовать base64 кодированные URL-адреса изображений
// url: "data:image/jpeg;base64,abcdefg..."
}
}
],
});
console.log(moderation);
curl https://api.openai.com/v1/moderations \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "omni-moderation-latest",
"input": [
{ "type": "text", "text": "...текст для классификации здесь..." },
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.png"
}
}
]
}'
Вот полный пример вывода для ввода изображения из кадра военного фильма. Модель правильно предсказывает индикаторы насилия в изображении, с категорией насилия, имеющей оценку более 0.8.
{
"id": "modr-970d409ef3bef3b70c73d8232df86e7d",
"model": "omni-moderation-latest",
"results": [
{
"flagged": true,
"categories": {
"sexual": false,
"sexual/minors": false,
"harassment": false,
"harassment/threatening": false,
"hate": false,
"hate/threatening": false,
"illicit": false,
"illicit/violent": false,
"self-harm": false,
"self-harm/intent": false,
"self-harm/instructions": false,
"violence": true,
"violence/graphic": false
},
"category_scores": {
"sexual": 2.34135824776394e-7,
"sexual/minors": 1.6346470245419304e-7,
"harassment": 0.0011643905680426018,
"harassment/threatening": 0.0022121340080906377,
"hate": 3.1999824407395835e-7,
"hate/threatening": 2.4923252458203563e-7,
"illicit": 0.0005227032493135171,
"illicit/violent": 3.682979260160596e-7,
"self-harm": 0.0011175734280627694,
"self-harm/intent": 0.0006264858507989037,
"self-harm/instructions": 7.368592981140821e-8,
"violence": 0.8599265510337075,
"violence/graphic": 0.37701736389561064
},
"category_applied_input_types": {
"sexual": [
"image"
],
"sexual/minors": [],
"harassment": [],
"harassment/threatening": [],
"hate": [],
"hate/threatening": [],
"illicit": [],
"illicit/violent": [],
"self-harm": [
"image"
],
"self-harm/intent": [
"image"
],
"self-harm/instructions": [
"image"
],
"violence": [
"image"
],
"violence/graphic": [
"image"
]
}
}
]
}
Выходные данные от моделей описаны ниже. JSON-ответ содержит информацию о том, какие (если они вообще есть) категории контента присутствуют в вводах и до какой степени модель считает, что они присутствуют.
Категория вывода
Категория | Описание |
---|---|
flagged | Установлено в true, если модель классифицирует контент как потенциально опасный, в противном случае false. |
categories | Содержит словарь с флагами нарушений по каждой категории. Для каждой категории значение является true, если модель флагирует соответствующую категорию как нарушенную, в противном случае false. |
category_scores | Содержит словарь с оценками по каждой категории, выданными моделью, обозначая уверенность модели в нарушении политики OpenAI для данной категории. Значение находится в диапазоне от 0 до 1, где более высокие значения указывают на более высокую уверенность. |
category_applied_input_types | Это свойство содержит информацию о типах ввода, которые были отметлены в ответе, для каждой категории. Например, если как изображение, так и текстовые вводы модели отмечены для "violence/graphic", свойство violence/graphic будет установлено в ["image", "text"]. Это доступно только в omni моделях. |
Мы планируем постоянно обновлять основную модель точки модерации. Поэтому, возможно, потребуется постепенная корректировка пользовательских политик, зависящих от category_scores, со временем.
Классификации содержимого
Таблица ниже описывает типы контента, которые могут быть обнаружены в API модерации, а также какие модели и типы ввода поддерживаются для каждой категории.
Категория | Описание | Модели | Вводы |
---|---|---|---|
harassment | Контент, выражающий, подстрекающий или продвигающий оскорбительный язык к любым целям. | Все | Только текст |
harassment/threatening | Оскорбительный контент, также включающий угрозы насилия или серьезного вреда. | Все | Только текст |
hate | Контент, выражающий, подстрекающий или продвигающий ненависть на основе расы, пола, этничности и т.д. | Все | Только текст |
hate/threatening | Ненавистнический контент, также включающий угрозы насилия на основе расы, пола и т.д. | Все | Только текст |
illicit | Инструкции или советы по совершению незаконных действий, как "как воровать". | Omni | Только текст |
illicit/violent | То же, что и в категории illicit , но с упоминанием насилия или оружия. | Omni | Только текст |
self-harm | Пропагандирующий или изображающий акты самоповреждения. | Все | Текст и изображение |
self-harm/intent | Выражение намерения совершить акты самоповреждения. | Все | Текст и изображение |
self-harm/instructions | Инструкции или советы по совершению действий самоповреждения. | Все | Текст и изображение |
sexual | Контент, предназначенный для возбуждения, за исключением образования. | Все | Текст и изображение |
sexual/minors | Сексуальный контент с участием лиц младше 18 лет. | Все | Только текст |
violence | Контент изображающий смерть или физические повреждения. | Все | Текст и изображения |
violence/graphic | Контент изображающий смерть или физические повреждения в деталях. | Все | Текст и изображения |