ИИ-модерация контента на своём VPS
Ручная модерация не успевает за потоком комментариев и заявок. Настроим ИИ-фильтр на VPS: он проверяет тексты на токсичность, спам и нарушения, а спорные случаи отдаёт человеку.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что модерирует ИИ
ИИ-модерация автоматически отсеивает то, на что раньше уходили часы ручной работы: оскорбления, спам-ссылки, флуд, нарушения правил площадки. Модель выдаёт вердикт и уверенность, а вы решаете, что делать.
- Токсичность — оскорбления, угрозы, хейт
- Спам — реклама, ссылочный мусор
- Нарушения правил — по вашим кастомным критериям
Модерация — чувствительные данные пользователей, поэтому держать её на своём VPS правильнее, чем слать тексты во внешний сервис. Быстрый NVMe и EPYC у MAATRIX обеспечивают низкую задержку проверки в реальном времени.
Классические стоп-листы проигрывают там, где выигрывает ИИ: они не видят контекста и легко обходятся заменой букв, пробелами и синонимами. Фраза может не содержать ни одного слова из блэклиста и при этом быть откровенно токсичной — модель это понимает, а регулярка нет. Обратная сторона: любая модель ошибается, поэтому автоматику всегда сочетают с ручной проверкой спорных случаев.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для ИИ-модерацииПодход: классификация через LLM
Локальная модель классифицирует текст по вашим правилам и возвращает структурированный вердикт. Это гибче готовых блэклистов: ИИ ловит замаскированный мат и контекст, а не только стоп-слова.
Ставим модель и зависимости:
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen2.5:7b
pip install fastapi uvicorn openai
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Пайплайн проверки
Модель отвечает строгим JSON — так вердикт легко обрабатывать в коде:
from openai import OpenAI
ai = OpenAI(api_key="x", base_url="http://127.0.0.1:11434/v1")
SYS = ('Ты модератор. Верни JSON: '
'{"toxic": bool, "spam": bool, "score": 0..1}. Без пояснений.')
def moderate(text):
r = ai.chat.completions.create(model="qwen2.5:7b",
messages=[{"role": "system", "content": SYS},
{"role": "user", "content": text}],
response_format={"type": "json_object"})
return r.choices[0].message.content
response_format json_object заставляет модель отвечать валидным JSON без лишнего текста.
API-эндпоинт модерации
Оборачиваем проверку в FastAPI, чтобы сайт или бот дёргали её по HTTP:
from fastapi import FastAPI
from pydantic import BaseModel
import json
app = FastAPI()
class In(BaseModel):
text: str
@app.post("/moderate")
def check(i: In):
verdict = json.loads(moderate(i.text))
verdict["action"] = "block" if verdict["score"] > 0.8 else "review"
return verdict
uvicorn mod:app --host 127.0.0.1 --port 8100
Разделение вердикта и действия — сознательное. Модель отвечает только фактами о тексте (токсичен, спам, оценка), а решение блокировать или отправить на проверку принимает ваш код по понятным порогам. Так логику модерации легко менять без вмешательства в модель: захотели строже — подняли порог, добавили новую категорию — дописали одно поле в системный промпт. Эндпоинт слушает localhost, а дёргает его ваш сайт, бот или движок комментариев по внутренней сети.
Пороги и очередь на ручную проверку
Не блокируйте всё автоматически. Разумная схема — три зоны по score:
- score > 0.8 — блокировать сразу
- 0.4-0.8 — в очередь на ручную проверку
- < 0.4 — пропускать
Спорные случаи складывайте в отдельную таблицу, чтобы модератор быстро их разбирал. Так ИИ снимает объём, но финальное слово за человеком в неоднозначных ситуациях. Пороги — не универсальная константа: на дружелюбном форуме и на площадке объявлений разная норма резкости, поэтому калибруйте их на собственных данных. Хороший приём — какое-то время логировать вердикты в режиме наблюдения, не блокируя ничего, и по накопленной выборке подобрать границы, при которых ложных срабатываний минимум.
Надёжность и частые ошибки
- Ложные срабатывания — калибруйте пороги на своих данных, не берите чужие вслепую.
- Обход маскировкой — LLM ловит замену букв лучше блэклиста, но добавьте нормализацию текста.
- Невалидный JSON — оборачивайте json.loads в try/except с фолбэком на review.
- Пики нагрузки — ставьте очередь (Redis) перед моделью, чтобы не терять запросы.
journalctl -u modbot -f # следим за вердиктами и ошибками
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для ИИ-модерацииОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Почему не готовый облачный модератор?
Свой на VPS не отдаёт пользовательские тексты третьим лицам и не тарифицируется за объём. Данные остаются у вас.
Насколько точен ИИ-модератор?
Точнее блэклистов на контексте и маскировке, но не идеален. Спорные случаи стоит отправлять человеку.
Справится ли CPU в реальном времени?
Для потока комментариев да. EPYC + NVMe у MAATRIX держат низкую задержку; при больших пиках добавьте очередь.
Можно ли задать свои правила?
Да, правила задаются системным промптом — описываете, что считать нарушением на вашей площадке.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.