Ассистент в ЛК.
Архитектура диалога.
Как запрос клиента проходит путь от очереди до персонального результата.
3D-иллюстрация: Серебристое ядро внутри трёх орбит. Движущиеся импульсы связывают клиента, ассистента и бизнес-сервисы в единую систему.
Не просто чат. Единая точка входа в сервисы личного кабинета.
Сначала очередь.
Потом вычисления.
Запрос превращается в фоновую задачу Celery. API подтверждает приём, не удерживая соединение на всё время работы модели.
3D-иллюстрация: Зелёные блоки-запросы движутся по направляющим к серебристому шлюзу. Очередь отделяет входящий поток от тяжёлых вычислений.
Приём запроса и подготовка ответа живут независимо.
Больше запросов.
Больше исполнителей.
Несколько воркеров обрабатывают независимые задачи параллельно. Очередь сглаживает всплески, а число исполнителей можно увеличивать отдельно от API.
Важный нюансОчередь не гарантирует автоматическое повторение: в текущей конфигурации повторы генерации отключены.
3D-иллюстрация: Единый вход распределяет движущиеся блоки по трём независимым вычислительным башням.
Масштабируется обработка, а не весь личный кабинет.
Один клиент.
Его контекст.
До постановки задачи проверяются авторизация и доступ к чату. В обработку передаются история диалога и контекст текущего действия.
3D-иллюстрация: Идентификационная пластина входит в кольцо доступа. Малые карточки истории соединяются с одной персональной сессией.
Ассистент работает в контексте клиента, а не анонимного сообщения.
Сначала границы.
Затем ответ.
Guardrails проверяют новое текстовое сообщение перед планированием. Явно заблокированный запрос получает корректный отказ без запуска обычного сценария агента.
Важный нюансТекущий режим: при ошибке, таймауте или отсутствии настройки внешняя проверка пропускается (fail-open). Это не абсолютная гарантия безопасности.
3D-иллюстрация: Объёмный щит пропускает зелёные импульсы. Отдельный тусклый блок отклоняется от защитного контура.
Правила задают допустимые границы диалога.
Смысл остаётся.
Данные защищаются.
В модельном контексте и трассировках распознанные персональные данные заменяются обозначениями. Соответствие значений хранится отдельно от текста для модели.
Важный нюансВнешний входной guardrail получает исходный текст для проверки. Это отдельная граница передачи данных.
3D-иллюстрация: Пластины с открытой фактурой проходят сквозь защитное кольцо и превращаются в одинаковые закрытые блоки.
Модели передаётся необходимый контекст, а не весь набор исходных значений.
Понять намерение.
Выбрать маршрут.
Оркестратор учитывает вопрос, историю и активный сервис. Определяет, нужно ли дать консультацию, получить данные или продолжить уже начатый процесс.
3D-иллюстрация: Центральный многогранник направляет импульсы по трём ветвям: знания, данные и сервисное действие.
Одна реплика может начать новый сценарий или продолжить текущий.
Знания для ответа.
Факты для решения.
Для консультации ассистент ищет материалы в базе знаний. Для персонального вопроса обращается к подключённым бизнес-системам в контексте доступа клиента.
3D-иллюстрация: Раскрытый набор серебристых пластин-источников отдаёт светящийся фрагмент в центр подготовки ответа.
Консультация опирается на знания, персонализация на данные систем.
Сервисы разные.
Подход единый.
Получение сведений, документы, налоговые сценарии и действия по ПДС подключаются как отдельные сервисы. Каждый отвечает за свой бизнес-результат.
3D-иллюстрация: Четыре разных модульных блока соединены с одним основанием. Общий разъём позволяет управлять ими одинаково.
Ассистент объединяет сервисы, не смешивая их бизнес-логику.
Не всё сразу.
Шаг за шагом.
Сервис знает текущий шаг, проверяет введённые данные и запрашивает недостающее. Однозначный ответ на ожидаемый шаг может обрабатываться без нового вызова модели.
3D-иллюстрация: Четыре ступени поднимаются к финальной платформе. Зелёный маркер последовательно переходит между шагами.
Прогресс хранится в состоянии: диалог не начинает процесс заново на каждой реплике.
Диалог объясняет.
Кнопка действует.
Текст, кнопки и документы образуют единый ответ. Нажатие передаёт структурированный контекст действия, чтобы система продолжила нужный бизнес-процесс.
Важный нюансПодтверждение и итог операции зависят от правил конкретного сервиса и ответа бизнес-системы.
3D-иллюстрация: Зелёный объёмный переключатель нажимается на серебристой панели и передаёт импульс к результату.
Кнопка несёт смысл действия, а не только отображаемую подпись.
Черновик не равен
готовому ответу.
Сгенерированный консультационный ответ проходит отдельную модельную проверку. При явном отказе черновик заменяется сообщением об ограничении.
Важный нюансСервисная ветка завершается отдельно. При таймауте модельного валидатора консультационный ответ не блокируется.
3D-иллюстрация: Серебристая пластина ответа проходит через две рамки контроля и получает зелёный знак допуска.
Генерация и оценка ответа разделены.
Ответ становится
потоком событий.
Воркер публикует статусы, фрагменты ответа и данные интерфейса в Redis Streams. Это отдельный канал доставки, не очередь заданий Celery.
3D-иллюстрация: Три слоя серебристого накопителя принимают последовательность зелёных блоков-событий. Каждый блок сохраняет своё место в потоке.
Очередь отвечает за выполнение. Поток отвечает за доставку.
Воркер создаёт.
ЛК получает.
API читает события из Redis и передаёт их браузеру через SSE. Личный кабинет показывает ход обработки и собирает ответ из поступающих событий.
Важный нюансСтриминг здесь означает поток событий и частей ответа; это не обещание выдачи каждого токена модели сразу после генерации.
3D-иллюстрация: Блоки движутся от накопителя по дуге к объёмной экранной рамке и последовательно заполняют строки ответа.
Генерация не привязана к одному соединению с браузером.
Поток временный.
История остаётся.
Redis хранит события доставки и быстрый контекст. PostgreSQL сохраняет историю сообщений. Состояние сценария позволяет продолжать обслуживание в диалоге.
Важный нюансСобытия Redis автоматически истекают; история хранится отдельно. Восстановление выдачи зависит от сохранённых событий и позиции чтения.
3D-иллюстрация: Лёгкое зелёное кольцо краткосрочного потока вращается над устойчивой серебристой башней долговременной истории.
Срок жизни потока не определяет срок жизни истории.
Управляем не только
успешным путём.
Система отслеживает состояние задачи, ограничивает время обработки и поддерживает остановку. При ошибке обработчик пытается завершить поток понятным событием, а не бесконечным ожиданием.
Важный нюансЭто механизмы контроля, а не обещание безотказности. Повтор бизнес-операции требует отдельной проверки её результата.
3D-иллюстрация: Вращающийся индикатор вокруг ядра останавливается у контрольного блока. Отдельная ветка показывает завершение с ограничением.
Трассировки связывают этапы: запрос, решение, сервис и результат.
Новый сервис.
Знакомый контракт.
Общий абстрактный класс задаёт жизненный цикл: старт, шаги, проверка данных, завершение и отмена. Новая реализация добавляет свои правила и подключается через реестр.
Важный нюансИнтеграция всё равно требует проверки доступа, бизнес-правил, инструментов и клиентского представления.
3D-иллюстрация: Новый зелёный модуль опускается в свободное гнездо серебристой платформы. Остальные подключённые модули остаются на месте.
Расширяем возможности через общий интерфейс, не переписывая транспорт и очередь.
Одна архитектура.
Много возможностей.
Очередь распределяет работу. Guardrails задают границы. Сервисы выполняют сценарии. Redis и SSE доставляют результат клиенту.
3D-иллюстрация: Шесть узлов соединены вокруг общего ядра. Зелёный импульс проходит весь маршрут от входящего сообщения до результата.
Клиент видит простой диалог. За ним работает управляемый бизнес-процесс.