[EPIC-AID-004] Создать сервис purchase-ollama-worker для создания структуры сообщения
Создание структурированного сообщения для добавления в ‘цифровой холодильник’
NoteКраткая карточка эпика
- Эпик: (EPIC-AID-004)
- Компоненты: ollama-llm-proxy, Kafka (KRaft)
- Статус: Готово к реализации
- Направление связи: Ollama (Structured Output) \(\rightarrow\) Redis Censor \(\rightarrow\) Kafka (
bpds.aid.out.profanity.violate)
Бизнес-контекст и цель (Business Context)
Любой неструктурированный ввод (разбор рецептов через Ollama LLM, голосовой ввод) проверяется на наличие обсценной лексики. Чтобы предотвратить DDOS-атаки матом, счетчик нарушений инкрементируется в Redis. При достижении лимита (2 попытки), система генерирует критическое событие для домена IAD для немедленного бана сессии пользователя.
Список атомарных задач:
- [Backend] Метод
ProcessUploadText()вычитки сообщения из кафки : Интеграция Pydantic-валидации структурированного вывода Ollama на наличие запрещенных лексем (llm_profanity_censor.py). - [Backend] Метод
EvalTextConfidenceпроверки LLM-текста: Интеграция Pydantic-валидации структурированного вывода Ollama на наличие запрещенных лексем (llm_profanity_censor.py). - [Backend] Атомарный Redis-лимитер [Метод 2]: Реализация вызова Lua-скрипта в Redis для проверки текущего количества нарушений привязанного к
user_id(redis_violation_limiter.py). - [Backend] Эмиттер сигнала блокировки [Метод 3]: Публикация факта нарушения лимита в топик
bpds.aid.out.profanity.violateдля принудительного бана в IAD (profanity_event_producer.py).