Backend для первой линии поддержки. Цель — быстрее разбирать входящие обращения: определить тему и срочность, извлечь номер заказа, сделать краткое резюме и подготовить черновик ответа, оставив финальное решение за оператором.
Система принимает свободный текст и с помощью LLM определяет одну из семи категорий, приоритет, намерение и тональность, извлекает номер заказа, формирует резюме и черновик ответа. LLM-провайдеры подключаются через единый интерфейс с поддержкой OpenAI-compatible API.
Модель отвечает только за понимание текста. Отдельный слой кода валидирует структурированный ответ, сверяет номер заказа с исходным сообщением, выявляет prompt injection, выдуманные контакты и небезопасные обещания. Решение об эскалации принимает детерминированный движок правил; необратимые финансовые действия модель выполнять не может.
Анализы версионируются, сохраняется audit trail. Фоновые задачи работают через transactional outbox, а оператор получает Telegram-карточку с действиями Approve, Edit и Reject.
Стек: Python 3.12, FastAPI, Pydantic, async SQLAlchemy, PostgreSQL, Alembic, HTTPX, Docker Compose.
Получился безопасный AI-контур вокруг первой линии поддержки. Надёжность подтверждена 233 автоматическими тестами, покрытие кода — 95%. На проверочном наборе из 40 обращений точность классификации составила 0,85, точность извлечения номера заказа — 1,0, защита от prompt injection — 1,0.