[BACK-AI-07] Разработка FastAPI-сервиса ИИ-модерации текста и фильтрации нецензурной лексики

ИИ-компоненты (AI Service)

Published

October 14, 2026

NoteКраткая карточка задачи
  • Репозиторий / Компонент: ai_profanity_filter.
  • Язык: Python 3.10+ (FastAPI, Pydantic, Requests).
  • Тип задачи: Backend (ИИ-модерация контента).
  • Статус: Готово к реализации

Описание задачи

Необходимо реализовать специализированный микросервис модерации на базе FastAPI. Сервис перехватывает текстовые данные пользовательского ввода (названия создаваемых блюд, текстовые расшифровки аудио) и с помощью легковесной локальной модели qwen2.5:3b проверяет их на наличие нецензурной лексики, мата, спама или оскорблений.

Инструкция по шагам (Python)

  1. Проектирование Pydantic-схемы запроса: Описать структуру PromptRequest с обязательным полем prompt для передачи проверяемого текста. Параметры model="qwen2.5:3b" и format="json" зафиксировать как неизменяемые свойства по умолчанию.
  2. Маршрутизация эндпоинта фильтра: Создать метод POST /api/generate, отправляющий очищенный payload в локальное API Ollama (OLLAMA_HOST).
  3. Очистка ответа от Markdown разметки: Настроить регулярное выражение re.sub(r"```json\s*|```", "", raw_text) для удаления возможных тегов разметки, возвращаемых языковой моделью, перед конвертацией строки в JSON.
  4. Реализация мягкой политики отказоустойчивости (Soft Fallback):
    • Установить ограничение на время обработки запроса к Ollama в 25 секунд (timeout=25).
    • При возникновении исключений json.JSONDecodeError, сетевых таймаутов или ошибок перегрузки Ollama (status_code != 200), вызывать метод fallback_response.
    • Функция-fallback не должна возвращать ошибку блокировки интерфейса. Вместо этого она генерирует и возвращает чистый, безопасный дефолтный список продуктов (Куриное филе, Картофель, Сливки), позволяя конвейеру приёмки успешно завершить сессию пользователя.