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