Авторизация
Забыли пароль?
Сброс пароля
Вернуться к авторизации

Чат с ИИ и оператором на Django Channels и WebSocket

26 августа ‘25

Заказчик: ведущий банк

Чат с AI и живым оператором для крупного банка на Django Channels и WebSocket. Без задержек. Без переключений страниц. С логикой, которая сама передаёт чат от нейросети GigaChat к сотруднику.

Агентство-исполнитель кейса

NooSoft

NooSoft - творим добро в цифровом мире! Комплексный подход к разработке пользовательски-ориентированных IT-решений, адаптированных под бизнес-потребности.

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 и человека – всё это делало разработку похожей на архитектурную головоломку.

Агентство-исполнитель кейса

NooSoft

NooSoft - творим добро в цифровом мире! Комплексный подход к разработке пользовательски-ориентированных IT-решений, адаптированных под бизнес-потребности.