Skip to content

Модерация

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

Доступные модели для этой цели:

  • omni-moderation-latest: Эта модель и все её варианты поддерживают больше категорий и мультимодальные вводы.
  • text-moderation-latest (Устаревшая): Старая модель, поддерживающая только текстовые вводы и меньше категорий. Новые модели omni-moderation будут оптимальным выбором для новых приложений.

Быстрый старт

Пункт модерации позволяет классифицировать как текст, так и изображения. Ниже представлены примеры использования с помощью официальных SDK. Эти примеры используют модель omni-moderation-latest:

Модерация текстовых вводов

Получение информации о классификации для текстового ввода

python
from openai import OpenAI
client = OpenAI()

response = client.moderations.create(
    model="omni-moderation-latest",
    input="...текст для классификации здесь...",
)

print(response)
javascript
import OpenAI from "openai";
const openai = new OpenAI();

const moderation = await openai.moderations.create({
    model: "omni-moderation-latest",
    input: "...текст для классификации здесь...",
});

console.log(moderation);
js
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": "...текст для классификации здесь..."
  }'

Модерация изображений и текста

python
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)
javascript
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);
bash
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.

json
{
  "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Контент изображающий смерть или физические повреждения в деталях.ВсеТекст и изображения

Создано при поддержке AITUNNEL