
Авторизация

Сброс пароля
Чат с ИИ и оператором на Django Channels и WebSocket
Заказчик: ведущий банк

Чат с AI и живым оператором для крупного банка на Django Channels и WebSocket. Без задержек. Без переключений страниц. С логикой, которая сама передаёт чат от нейросети GigaChat к сотруднику.
1. Вводная задача от заказчика, проблематика, цели
В NooSoft обратился один из ведущих банков с запросом на разработку быстрого и современного чата. Требование – мгновенный обмен сообщениями и высокая доступность. В качестве первого собеседника планировалось использовать нейросеть с возможностью оперативного подключения администратора, если бот не справляется с вопросом пользователя.
Решение реализовывалось как пилотный pet-проект отдельно от цифровой инфраструктуры банка. Это позволило команде экспериментировать с архитектурой, стеком и логикой взаимодействия. На первом этапе основной задачей было протестировать, как будет работать связка ИИ и живого оператор в “боевых” условиях.
2. Описание реализации кейса и творческого пути по поиску оптимального решения
Стек технологий для AI-чата
Чтобы создать виртуального ассистента с мгновенным откликом и поддержкой переключения между ботом и оператором, мы выбрали стек, ориентированный на исполнение операций в режиме реального времени.
В качестве основы взяли Django Channels, которые расширяют стандартный функционал Django и дают доступ к нативной работе с WebSocket. Это ключевой момент, поскольку альтернативы вроде Short или Long polling были недостаточно быстрыми и не обеспечивали стабильную двустороннюю связь.
Отдельный WebSocket route отвечает за подключение оператора, если нейросеть не могла ответить на вопрос. При этом один и тот же чат мог в нужный момент переключаться с AI на человека и обратно без перерыва в общении и с сохранением контекста.
В качестве AI-модели использовали GigaChat – отечественную нейросеть, способную поддерживать деловую переписку, анализировать формулировки и выдавать осмысленные ответы на банковские темы. Для интеграции с моделью мы реализовали свой микросервис, обрабатывающий запросы и возвращающий результат в рамках единой логики.
Сложности: авторизация, переключение режимов, деплой
Несмотря на то, что проект кажется достаточно простым, он скрывал подводные камни. Впрочем как и любой другой кейс. Но мы за честность без прикрас, поэтому приоткроем ширму и расскажем о трудностях, про которые принято молчать.
- Переключение между ИИ и админом. Одна из самых трудоемких задач – обеспечить корректную работу чата, в котором могут участвовать и нейросеть, и живой оператор. Часто возникали ошибки на стыке: бот начинал отвечать одновременно с админом. Это путало пользователей и нам пришлось выстроить точный алгоритм порядка действий: кто имеет приоритет, как и когда подключается человек, какие диалоги «захвачены» и кому видны. Отладка этой логики заняла наибольшую часть времени разработки.
- Деплой и серверная часть. Еще один вызов – деплой WebSocket-приложения на защищённый сервер. Мы разворачивали всё на отдельной машине с поддержкой безопасных протоколов TLS/SSL. На этапе публикации пришлось тщательно настраивать окружение: WebSocket-соединения, безопасность, стабильная работа при множественных сессиях и переключениях режимов. Отладка требовала внимания к каждой детали, особенно в сценариях с одновременным функционированием бота и администратора.
«Ошибки чаще всего возникали на стыке AI и оператора – в момент, когда оба пытались ответить. Эти нюансы и сделали проект особенно интересным», – делится программист.
Принцип работы от AI до администратора
Логика бота строится на простом, но гибком алгоритме: сначала нейросеть, затем человек (если требуется).
Пользователь начинает диалог, и первым отвечает GigaChat – интеграция с этой моделью позволяет быстро обрабатывать стандартные запросы. Но если бот не справляется, предусмотрен плавный переход на оператора через отдельный WebSocket-маршрут.
Администратор получает уведомление и может «захватить» сеанс общения. При этом чат автоматически пропадает у других работников, чтобы избежать конфликтов.
Если текущий человек перегружен, то поток переназначается другому – это специально предусмотрено в функционале.
Хотя бот не обучается в процессе общения, всё сохраняется, формируя полную историю взаимодействий, что в дальнейшем станет основой для аналитики или адаптации под конкретные бизнес-процессы.
Дополнительно реализованы уведомления в формате toast-сообщений, чтобы операторы не пропустили новые обращения или смену их статуса.
Сценарий пользователя
Чтобы понять, как устроен чат, достаточно пройти путь пользователя. Он максимально простой и бесшовный:
- Пользователь заходит на сайт. На экране появляется окно, где можно сразу начать писать вопрос.
- Первым отвечает бот. За секунды нейросеть GigaChat предлагает решение. Например, тариф, порядок действий, ссылку на нужный раздел, список документов.
- Если бот не справляется, то подключается оператор. В диалог входит человек и продолжает разговор с того же места без потери контекста.
- Оператор решает вопрос и завершает диалог. Чат автоматически закрепляется за конкретным сотрудником, а остальным становится недоступен. Весь диалог сохраняется в системе.
Пользователь не ощущает переключения между ботом и человеком, всё происходит в том же потоковом канале. Нет потери времени: WebSocket обеспечивает мгновенную передачу сообщений. Можно перевести чат другому оператору, если текущий перегружен.

Схема работы ИИ-чата

Пример переписки в чате
3. Результаты сотрудничества
Проект задумывался как тестовый MVP, поэтому до полноценного внедрения в инфраструктуру банка дело не дошло. Однако внутренние тесты показали, что связка “WebSocket + GigaChat + живая поддержка” работает стабильно и гибко.
С базовым функционалом мы добились главного:
- Быстрая реакция на обращения.
- Переключения между ИИ и оператором без разрыва диалога.
- Управления загруженностью администраторов.
Объёма MVP достаточно, чтобы оперативно адаптировать решение под конкретные бизнес-процессы: финтех, поддержку клиентов, автоиндустрию, госуслуги и т.д.
Разработка проводилась как отдельный pet-проект, но при масштабировании и использовании репликаций, Redis pub/sub и распределённой обработки, система может показать отличную производительность в продакшене.
4. Заключение
Текущий MVP уже закрывает ключевые задачи, но у него есть большой потенциал для масштабирования в полноценную систему.
Команде NooSoft проект запомнился множеством нестандартных решений, спонтанных «затыков» и, конечно, моментами, когда очередная попытка улучшить алгоритм и усовершенствовать работу бота наконец даёт свои плоды. Возможность динамически передавать чаты между операторами, управление уведомлениями, борьба с конкурентными ответами от AI и человека – всё это делало разработку похожей на архитектурную головоломку.