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

Чтобы эффективно решать эту задачу, сервис Kolas.ai предлагает SaaS-платформу для классификации сообщений. Теперь для разработчиков доступен официальный Python-клиент Kolas.ai, опубликованный на PyPI, который позволяет быстро интегрировать API в любые Python-проекты.

В этом руководстве мы подробно рассмотрим установку, настройку и примеры использования.

Почему стоит выбрать Kolas.ai для автоматической модерации

  • Классификация сообщений по категориям: Neutral, Spam, Insult и др.
  • Поддержка языков: английский, русский, украинский (другие добавляются по запросу).
  • Безопасность: авторизация через протокол OAuth2.
  • Гибкость: поддержка как синхронной, так и асинхронной обработки сообщений.
  • Высокая точность благодаря ML-моделям, обученным на реальных пользовательских данных.

Установка Python-клиента Kolas.ai

Чтобы подключить клиент к проекту, выполните установку через pip:

pip install clean-talk-client

Создание проекта Clean Talk

Для интеграции API нужно:

  1. Зарегистрироваться на Kolas.ai.
  2. Создать новый проект Clean Talk и загрузить датасеты для обучения.
  3. Получить Client ID и Client Secret.
  4. (Опционально) Настроить webhook для асинхронной классификации сообщений.

Аутентификация через OAuth2

from clean_talk_client.kolas_ai_oauth_client import KolasAiOAuthClient

YOUR_CLIENT_ID = '' # Set your client ID
YOUR_CLIENT_SECRET = '' # Set your client secret

oauth_client = KolasAiOAuthClient()
auth_result = oauth_client.auth(YOUR_CLIENT_ID, YOUR_CLIENT_SECRET)

Access token обновляется после истечения срока действия.

Синхронная классификация сообщений (Sync API)

Синхронная обработка подходит для чат-ботов, систем поддержки, интерактивных приложений.

from clean_talk_client.clean_talk_prediction_client import CleanTalkPredictionClient
from clean_talk_client.message import Message
from clean_talk_client.predict_request import PredictRequest

YOUR_PROJECT_ID = '' # Set your project ID

client = CleanTalkPredictionClient(auth_result.access_token)
request = PredictRequest(
YOUR_PROJECT_ID,
[
Message('11177c92-1266-4817-ace5-cda430481111', 'Hello world!'),
Message('22277c92-1266-4817-ace5-cda430482222', 'Good buy world!'),
]
)
# Sync request to kolas.ai. It returns result of predictions immediately
response = client.predict(request)
for prediction in response.get_predictions():
print("MessageId:", prediction.message_id)
print("Message:", prediction.message)
print("Prediction:", prediction.prediction)
print("Probability:", prediction.probability)
print("Categories:", ", ".join(prediction.categories))

Пример результата:

MessageId: 11177c92-1266-4817-ace5-cda430481111
Message: Hello world!
Prediction: Neutral
Probability: 0.9036153107882
Categories: Insult, Neutral, Spam

MessageId: 22277c92-1266-4817-ace5-cda430482222
Message: Good buy world!
Prediction: Neutral
Probability: 0.99374455213547
Categories: Insult, Neutral, Spam

Асинхронная классификация сообщений (Async API)

Если необходимо обрабатывать большой поток данных (форумы, социальные сети, игровые чаты), используйте асинхронный режим:

from clean_talk_client.clean_talk_prediction_client import CleanTalkPredictionClient
from clean_talk_client.message import Message
from clean_talk_client.predict_request import PredictRequest

YOUR_PROJECT_ID = '11' # Set your project ID

client = CleanTalkPredictionClient(auth_result.access_token)
request = PredictRequest(
YOUR_PROJECT_ID,
[
Message('11177c92-1266-4817-ace5-cda430481111', 'Hello world!'),
Message('22277c92-1266-4817-ace5-cda430482222', 'Good buy world!'),
]
)

client.async_predict(request)

Результаты приходят на ваш webhook.

Заключение

Интеграция Python-клиента Kolas.ai в проект позволяет:

  • Автоматизировать модерацию чатов и форумов.
  • Уменьшить нагрузку на ручных модераторов.
  • Повысить качество пользовательских коммуникаций.

Попробуйте прямо сейчас: установите пакет с PyPI, подключите API, и получите готовый инструмент для фильтрации спама и оскорблений в реальном времени.