Как и обещали в первой части кейса, рассказываем о том, какой стек использовала IT-команда Сбера при работе над проектом с большими данными. Для тех, кто её не читал: благодаря этому проекту разработчики научились эффективно взаимодействовать с «бизнесом», пройдя через кризисные точки. Но в этой части речь пойдёт не об оптимизации работы IT-отдела, а о технической изнанке проекта.

Напомним, что в этом блоге мы рассказываем нашим потенциальным коллегам о том, какие проекты, технологии и команды есть сейчас в Сбере и что вас ждёт, если вы к нам присоединитесь. Поэтому сегодня в конце тех-кейса мы немного расскажем про  саму IT-команду на тот случай, если вы размышляете о работе у нас.

IT-команда Сбера разработала внутреннюю систему онлайн-мониторинга, которая позволяет видеть всю предысторию обращений клиента-юрлица и оперативно реагировать на его вопросы. Эта система объединяет в текстовом формате все клиентские входящие, разрозненные по каналам взаимодействия: почте, мессенджерам, телефонным переговорам.

В проекте используется всего один инстанс БД PostgreSQL. А именно: Postgres Sber Edition (разработка Сбера), которую команда решила использовать в рамках импортозамещения. Заодно нужно было посмотреть, как эта БД будет работать с высоконагруженными данными и сможет ли заменить Spark, Hadoop, Kafka Streams и другие инструменты, которые обычно компании используют для работы с большими данными. Плюс это решение позволяло команде быстро выкатить MVP системы, которая, напомним, должна была стать первой на рынке — а значит работать надо быстро.

Из чего состоит система онлайн-мониторинга и в чём основной принцип её работы

Система состоит из двух частей:

  1. Рабочее место сотрудника службы мониторинга

  2. Ядро системы

Рабочее место сотрудника службы мониторинга

Здесь отображается облако тегов за определённый период времени (например, сутки). В тегах наиболее часто употребляемые значимые слова увеличиваются в размере ��� так можно понять, какая задача требует неотложного внимания (например, слова «кредит» или «штраф»).

Для того чтобы оператор смог понять, перерастает ли ситуация в инцидент, у него есть индикатор-светофор: зелёный — всё хорошо; жёлтый — значимое слово стало употребляться чаще, возможно начало инцидента; красный — слишком частое употребление, инцидент.

Для «отлавливания» инцидентов был создан экран, где видно все диалоги между клиентами и операторами в данный момент времени. Инцидентные диалоги подсвечиваются. Сотрудник службы мониторинга может подключиться к диалогу и посмотреть его в текстовом формате буквально по репликам участников.

В облаке тегов можно кликать по всем словам большого размера, и так выходить на список всех диалогов с клиентами, где это слово фигурирует чаще других — так можно оперативно отвечать на вопросы о проблеме, которая стала типовой на данный момент (например, не работает какая-нибудь функция приложения), а также находить закономерности в недочетах клиентского обслуживания банком.             

Ядро системы

Ядро приложения построено на микросервисной архитектуре. Оно интегрируется с разными системами банка:

  • Телефонией Avaya для отслеживания телефонных диалогов между клиентами и операторами.

  • Системой SmartSpeech (транскрибатор, разработка компании СберДевайсы), которая процессит аудиотрафик и транскрибирует его в текст с помощью ИИ-обработки текстов на естественном языке (Natural Language Processing, NLP) и распределённого программного брокера сообщений Kafka. Транскрибированный текст сохраняется в базу данных.

  • Интеграционной платформой Synapse (событийный сегмент, разработка SberTech) для получения данных через Kafka.

К базе данных подключается инстанс приложения, который ищет необходимые данные и отправляет их на Python-модули с AI-моделями. Модели обрабатывают данные, затем снова кладут их в БД. 

Как происходит транскрибация телефонных переговоров

Интеграционный модуль AES (Application Enablement Services) по специальному интерфейсу GET ip подсоединяется к телефонии Avaya и собирает всю информацию о телефонном звонке в самом его начале. В этот же момент модуль отправляет метаданные звонка в транскрибатор SmartSpeech, который также подключён к Avaya. Здесь стартует процесс транскрибации текста: транскрибатор получает от Avaya RTP-трафик в виде звука и специальным инструментом для анализа преобразует его в печатный текст. После этого SmartSpeech отправляет текст в корпоративную сервисную шину Сбера, откуда он попадает в компиляционный модуль нашей системы, который сохраняет данные в базу. Всё это происходит в реальном времени, что накладывает определённые сложности. 

SmartSpeech начинает транскрибировать фразы в тот момент, когда между ними появляются длинные паузы (так же, как человек, он «понимает» по паузе, что фраза завершена). Kafka откидывает транскрибированные сообщения, а специально разработанный IT-командой сервис в многопоточном режиме за миллисекунды вычитывает их. Так достига��тся возможность посмотреть диалог в онлайне в режиме реального времени. С помощью такой системы можно много что узнавать о клиентах (о том, что конкретно можно узнавать и как эти знания использовать, мы расскажем в следующей статье о проекте).   

Чем интересна и одновременно сложна работа на этом проекте

Команда разработала и пользовательское приложение (фронтенд), и ядро (бэкенд), которое интегрировано со многими службами банка и представляет собой узловое звено высоконагруженной системы. Через эту систему постоянно идёт поток больших данных, которые не просто транскрибируются и отображаются. Диалоги из этих данных проходят обработку моделями искусственного интеллекта, то есть система позволяет анализировать и хранить аналитические данные диалогов, чтобы потом эффективно использовать в маркетинговых целях.

Знаете, пожалуй, пора перестать скромничать и сказать, что в проекте применяются самые передовые технологии и программы из сегодняшнего мира IT: микросервисы, контейнеры, ИИ, Big Data, речевые технологии, OpenShift, Kafka, Java Spring и другие. Полноценно используются эффективные мировые методологии разработки (DevOps, Agile, Git-flow), а команда старается использовать подход объединения разных путей с одной целью.

Радует то, что в результате оптимизации работы IT-отдела, о которой мы рассказывали в первой части, у разработчиков есть возможность осваивать эти технологии, пытаться выжать из них максимум, тестировать свои версии. Разработчики Сбера утверждают из своего предыдущего опыта, что мало какая российская комп��ния выделяет столько времени на тщательное изучение современных высоких технологий. При этом в разработке не происходит задержек — релизные циклы совпадают с двухнедельными спринтами. А один из разработчиков, который приехал работать к нам из Европы, говорит, что только в  Сбере он нашёл такой подход к взаимодействию в IT-команде, которому его обучали в европейском университете и который принят в продвинутых мировых компаниях.     

В заключение хочется дать небольшое пояснение насчёт особенностей работы в IT-команде Сбера. Некоторое время назад в Департаменте корпоративной архитектуры Сбера произошли кардинальные изменения, которые поддерживают новые цели всей экосистемы: внедрение передовых IT-продуктов и сервисов, масштабные инновации, конкурирование с глобальными технологическими компаниями. Благодаря этому вектору, у разработчиков в Сбере есть возможность использовать почти любые технологии, пробовать любые методы. Что ж, это и делает работу над подобными сложными проектами в Сбере интересной и по-настоящему творческой!