- BrainTools - https://www.braintools.ru -
Молока в кофе можно налить по-разному, но в одном случае получится 3в1, а в другом — капучино. Точно так же с внедрением ИИ, который сейчас пытаются пришить к каждой кофемолке. Мы попробовали вставить ИИ в платёжный терминал не ради хайпа, а чтобы он начал реально слышать клиента в условиях ревущей кофемашины и бесконечного гула торгового зала. И, кажется, получился вообще не капучино. Раф, как минимум! 😀
Я Владимир Графсков, техлид по интеграционным проектам Эвотора. Расскажу, зачем нашему пинпаду понадобилась нейронка, как мы решились делать голосовой интерфейс для платёжного терминала, как устроен EvoPoint и как он меняет процесс покупки.

Предпринимателю не нужен зоопарк из ноутбука, сканера и чекопечатающей машинки на одной точке. И мы в Эвоторе это понимаем и с каждым годом стараемся уместить всё больше нужных функций в одном коробке.
Мы хотели, чтобы терминал не только принимал оплату, но и участвовал в формировании заказа. Клиент произносит заказ, система показывает, что распознала, а сотрудник получает результат до завершения сценария оплаты. Часть операций переносится с кассира на устройство, но выбор и подтверждение остаются у клиента.
Распознать заказ в тихой комнате не так уж и сложно. А вот распознать его в кофейне, где одновременно работают кофемашина и вытяжка, играет музыка и говорят несколько человек на фоне — задача со звёздочкой. На этом этапе мы и привлекли ИИ.
EvoPoint уже проверяли в реальных условиях: терминал работал на нашем стенде-кофепойнте на фестивале Gastreet 2025, а в этом году — в баре Docs in Box на Gastreet 2026. Именно шум фестивальной площадки — с музыкой, толпой и работающими кофемашинами — стал для системы одним из первых серьёзных испытаний на устойчивость к посторонним звукам.
EvoPoint задумывался как точка входа, которая автоматизирует формирование заказа. Главная инновация здесь — голосовое управление покупкой. Это позволяет клиенту самостоятельно собрать заказ, а сотруднику — начать готовить кофе ещё до того, как чек будет официально пробит. Всё, теперь даже интроверты смогут работать бариста!
На словах звучит просто, но чтобы это всё заработало, пришлось полностью спроектировать с нуля архитектуру голосового сценария: от звуковой волны до анализа интента. Формально пинпад EvoPoint — это не монолит, а часть распределённой системы. На уровне архитектуры в голосовом сценарии участвуют такие блоки:
Оркестратор — передаёт команды между локальными приложениями и кассой.
STT-модель (Speech-to-Text) на пинпаде — преобразует аудио в текст.
Клиентский экран — показывает результат и уточнения.
Ключевая фишка — голосовое управление, а для этого мы должны научить пинпад слушать, слышать и показывать нам, что он всё правильно понял. Ну и ещё кой-чего прикрутить по пути.
Оркестратор не распознаёт речь и не проводит оплату. Это foreground service на Android, который связывает приложения на пинпаде с POS.
Локальные приложения подключаются через AIDL, обмен с POS идёт через UART. Все участники используют общий конверт команды: uuid, тип команды, направление, источник, получатель и payload.
Оркестратор принимает сообщение, сохраняет его в локальный журнал и передаёт нужному адресату. Если получатель указан, команда идёт конкретному приложению. Если нет, используется широковещательная доставка.
Что находится внутри оркестратора:
Транспорт: AIDL для локальных приложений и UART для POS.
Маршрутизация: направление команды и пакет получателя.
Защита сценариев: состояния FREE, PAYMENT и QUALITY.
Доставка: uuid и служебные статусы получения сообщения.
Журналирование: локальная база, receipt id и пакетная отправка через WorkManager.
В архитектуре используются паттерны Mediator, Message Router, Command Message, Adapter, Repository и Correlation Identifier. Для отправки логов реализовали Store and Forward.
Когда Voice Recognition выдаёт текстовую гипотезу, её нужно разобрать. Одно дело — показать текст на экране для бариста, другое — научить систему выделять сущности и интенты:
Действие: добавить, заменить, удалить, вернуть обратно.
Объект: «латте», «круассан шоколадный», «3в1 воды до края».
Модификатор: «большой», «с корицей», «без сахара».
Мы разработали сервис, который обрабатывает голосовой ввод и сам формирует действие в терминале. Сахар в капучино добавляет не бариста, а сама кассовая система — пока, правда, только в заказе и на чековой ленте.
Чтобы не превращать заказ в «сломанный телефон», мы используем customer_screen. Это UI-слой, который визуализирует то, что поняла система. Если ввод неоднозначен, например, в меню три вида латте, терминал не угадывает, а выводит сценарий уточнения.
Это критически важный UX-предохранитель. Никто же не хочет получить классический латте, если заказывал безлактозный.
А что, если терминал вообще не расслышал заказ?
Для этого есть отдельный сценарий: сначала система активно слушает первую фразу клиента («я хочу заказать»), затем — если распознавание не удалось — переспрашивает, показывая экран уточнения с повторным активным слушанием. Если и вторая попытка не дала результата, терминал показывает экран «я вас не расслышал» и возвращается на стартовый экран, чтобы клиент мог начать заново.
После формирования заказа оркестратор координирует переход к оплате и передаёт команды между участниками сценария. Платёжную операцию и фискализацию выполняют специализированные компоненты, а оркестратор только доставляет команды и ответы.
Покупка переводится в состояние оплаты.
Активируется выбор метода: NFC, QR (СБП) или классический чип. Отдельно работаем над интеграцией сервиса «Вжух» — быстрой оплаты по биометрии ладони, которая добавит ещё один способ расплатиться без карты и телефона.
Команда уходит в изолированный платёжный контур, и после подтверждения транзакции формируется фискальный чек.
Теперь пинпад может принять заказ и передать его бариста, но можно пойти ещё дальше. Оценка качества обслуживания ― отдельная головная боль [1] для любого бизнеса. Оценки можно собирать из отзывов на Яндекс Картах, мониторить Книгу жалоб и предложений или поставить отдельного человека допрашивать посетителей на выходе из заведения.
Но есть решение интереснее — мы сделали специальное приложение для EvoPoint. Если клиент ставит оценку, она сохраняется вместе с чеком (receipt_id), устройством и временем события. Дальше данные уходят в бэкенд и агрегируется статистика. В личном кабинете Эвотора из собранных данных формируются:
индекс удовлетворённости;
средняя оценка;
распределение оценок;
конверсия — сколько клиентов вообще дошли до оценки;
список чеков с детализацией.
Визуально обычные «звёздочки на экране» превращаются в полноценную статистику, с которой уже можно работать. Вот как это работает:
терминал показывает оценку;
оценка сохраняется вместе с идентификаторами события;
данные связываются с чеком;
бэкенд строит по ним метрики;
личный кабинет показывает аналитику по точкам, устройствам и сотрудникам.
Интеграция с EvoBonus и EvoSell (рекомендательный сервис в Эвоторе). Пинпад сможет анализировать корзину и предлагать товары на основе Big Data.
Open API. Позволит подключать к EvoPoint собственные сценарии. Например, ресторан сможет реализовать голосовой сбор предзаказа на вынос ещё до подхода клиента к терминалу.
Если честно, я считаю, что голосовой интерфейс в рознице — это направление с огромным потенциалом, и мы только в начале пути. Именно поэтому в приоритете у нас сейчас как раз эти два направления: сначала докрутим аналитику корзины через EvoBonus и EvoSell, а следом откроем API, чтобы бизнес мог собирать свои голосовые сценарии под конкретные задачи.
Мы продолжаем докручивать наши модели и собирать фидбек. Если у вас есть идеи, как ещё можно использовать «слушающий» терминал — добро пожаловать в комментарии. Обсудим!
Автор: evotor_ru
Источник [2]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/36397
URLs in this post:
[1] боль: http://www.braintools.ru/article/9901
[2] Источник: https://habr.com/ru/companies/habr_evotor/articles/1089188/?utm_campaign=1089188&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.