Пост №8 (финальный). Многоканальная работа, защита данных и итоги. Часть восьмая: финал
Теперь расскажу о работе системы с несколькими звонками одновременно. Это был важный момент, потому что в пиковые часы у нас в автосервисе могут звонить одновременно два-три клиента, а иногда и больше.
Когда я проектировал архитектуру, я понимал, что один нейромодуль не справится с параллельной обработкой. Если два менеджера разговаривают одновременно, система должна обрабатывать оба потока без задержек и без смешивания данных.
Поэтому я настроил систему так, что каждый звонок получает свой отдельный экземпляр обработчика. Когда MarkDroid на телефоне менеджера отправляет аудиопоток, данные идут на Beget в зашифрованном хешированном виде. На Beget они не расшифровываются, а сразу передаются на мой локальный сервер.
На локальном сервере работает дешифровщик. Он получает хешированный поток, расшифровывает его и передаёт в обработчик. Внутри обработчика запускаются все пять нейромодулей: распознавание, эмоциональный анализ, аналитический, рекомендательный и исполнительный. Каждый контейнер работает независимо от других.
Для ускорения обработки я использую систему словарей. Это заранее загруженные базы типовых фраз, терминов автосервиса, названий услуг, марок автомобилей и других часто встречающихся слов. Когда нейромодуль распознаёт речь, он сначала сверяется со словарями. Это снижает нагрузку на основную нейросеть и ускоряет распознавание. Система словарей работает как фильтр: она выделяет ключевые слова и передаёт их в аналитический модуль уже в структурированном виде.
Весь процесс выглядит так. Аудио в хешированном виде приходит на Beget. Beget передаёт его на мой сервер. Дешифровщик расшифровывает данные. Обработчик с помощью словарей быстро выделяет важную информацию. Нейромодули анализируют речь, голос и формируют подсказку. Готовая подсказка в хешированном виде отправляется обратно через Beget в интерфейс менеджера. Менеджер видит её на экране смартфона.
Все контейнеры используют общее API DeepSeek. Я оплачиваю тариф с достаточным лимитом запросов, чтобы обрабатывать одновременно до десяти звонков. Пока этого хватает. Если звонков больше, запросы выстраиваются в очередь и обрабатываются по очереди, но задержка всё равно остаётся в пределах нескольких секунд.
Важно, что контейнеры не хранят данные после завершения разговора. Как только звонок закончен, исполнительный модуль передаёт все данные на мой собственный сервер, а временный контейнер на Beget уничтожается. Это экономит ресурсы и гарантирует, что чужие данные не останутся в облаке.
Для меня было важно, чтобы менеджеры не чувствовали конкуренции за ресурсы. Если один разговор требует больше вычислительной мощности, например, клиент говорит сложными предложениями или эмоционально напряжён, это не влияет на другой разговор. Каждый контейнер имеет свои границы по памяти и времени.
Сейчас я планирую расширять систему. Во-первых, хочу добавить модуль, который будет анализировать повторные звонки от одного клиента. Чтобы система помнила предыдущие разговоры и видела динамику настроения клиента. Во-вторых, хочу настроить автоматическое создание отчётов для меня как руководителя. Чтобы в конце недели я получал сводку: сколько звонков обработано, сколько записей создано, какие возражения чаще всего возникали.
В-третьих, я думаю о том, чтобы добавить голосовой вывод подсказок. Чтобы менеджер мог не смотреть на экран, а слышать подсказку в наушник. Но это пока на стадии идей.
---
А теперь я хочу подвести краткий итог всей этой истории.
За полгода я создал систему, которая помогает моим менеджерам лучше общаться с клиентами. Ассистент работает в реальном времени, анализирует речь и голос, выдаёт подсказки, запоминает детали и автоматически заполняет CRM. Я не программист, я владелец автосервиса, и я сделал это с помощью современных инструментов и нейросетей.
Почему это важно. В нашем бизнесе общение с клиентом решает всё. Можно иметь отличных мастеров и современное оборудование, но если менеджер не может найти общий язык с человеком, клиент уйдёт к конкурентам. Нейроассистент не заменяет менеджера, он даёт ему опору и уверенность. Это как шпаргалка для экзамена, которая всегда под рукой.
Почему защита данных так важна. В автосервисе мы знаем о клиентах многое: номера телефонов, адреса, госномера, историю ремонтов. Эта информация должна быть под контролем. Все данные передаются в хешированном виде, расшифровываются только на моём локальном сервере. Beget я использую только как транзитный узел для передачи. Если у провайдера будут проблемы, моя база клиентов останется у меня. Если кто-то попытается взломать облачный сервер, он не получит историю разговоров и личные данные, потому что там нет расшифрованной информации. Это моя ответственность перед клиентами и законом.
Спасибо, что читали эту серию. Я не продаю и не рекламирую эту систему, я рассказываю о своём опыте. Всех 6 подписчиков обнял! Следующая серия пишется, она будет посвящена автоматизации приемки машин и проработки технологических процессов и их интеграция в систему. Если у вас есть вопросы — спрашивайте в комментариях, отвечу.
Конец.