- BrainTools - https://www.braintools.ru -

Меня зовут Платон [1] Малюгин, я Android Developer в Garage Eight. Мы в компании разрабатываем экосистему инвестиционных продуктов, и недавно на корпоративном хакатоне у нас появилась идея. Мы решили проверить, получится ли управлять торговой платформой — интерфейсом для инвестиций на финансовом и фондовом рынке — через голосовой диалог с ассистентом. Не просто задавать вопросы, а обсуждать рынок, анализировать инструменты и совершать операции.
За 48 часов хакатона мы собрали рабочий прототип такого голосового агента. Работает он так: пользователь произносит команду, система распознает речь, понимает запрос и отвечает голосом.
В статье расскажу, что скрывается за таким простым на первый взгляд сценарием, как устроена архитектура прототипа, почему выбрали именно ее и с какими проблемами столкнулись в процессе разработки.
Мы ежегодно устраиваем корпоративные хакатоны, на которых за 24 или 48 часов придумываем нестандартные решения, собираем прототипы и готовим их демо. А после лучшие решения стремимся внедрять в разрабатываемые нами продукты.
В этот раз хакатон длился двое суток, и сначала мы генерировали идеи. Сошлись на том, что хотим попробовать улучшить опыт [2] пользователей инвестиционных продуктов. Мы задались вопросом: что поможет инвесторам следить за своими инвестициями и новостями сферы, которые влияют на их инвестиционный пакет? Ответ оказался простым: голосовой ассистент, который будет в реальном времени помогать им управлять торговой платформой.
Чтобы ассистент действительно помогал, а не тормозил процессы, нам нужно было научить его грамотно интерпретировать запрос, обращаться к данным платформы, анализировать их и выдавать релевантные ответы. И всё это на разных языках, потому что запросы могут поступать от пользователей со всего мира.
Такую идею мы и взяли для работы на хакатоне. В итоге за 48 часов нам нужно было продумать архитектуру, выбрать технологии, собрать рабочий прототип и подготовить демо. Именно поэтому мы установили для себя несколько простых правил:
Не писать ничего с нуля, если можно использовать готовый сервис.
Минимизировать инфраструктуру.
Сосредоточиться на нескольких ключевых сценариях, чтобы не рассеивать внимание [3].
Для нашего эксперимента мы выбрали три основных сценария.
Торговая платформа сама по себе хранит много данных о пользователе. Она уже знает, как часто проходят операции, какие инструменты использует человек, и может понять здоровье портфеля.
Мы подумали, что весь контекст идеально подходит для анализа рынка. Да, на один простой вопрос ассистент не выдаст аналитику или полную динамику изменений, но это и не нужно. Цель — ускорить именно первичный анализ, и это ему под силу.
Пользователь: Что сейчас происходит с нефтью?
Ассистент: Цены на нефть снижаются на фоне ожиданий по спросу и новостей о запасах. Для долгосрочного инвестора это может быть поводом оценить, как нефтяные активы влияют на структуру портфеля: долю сырьевого сектора, валютную экспозицию и чувствительность к инфляции.
В вашем портфеле уже есть фонды и акции, связанные с энергетикой, поэтому стоит учитывать концентрацию в этом секторе перед любыми новыми инвестиционными решениями.
Этой информации хватит, чтобы разработать план действий на ближайшее время
По аналогии с первым сценарием ассистент может использовать данные платформы, чтобы обсуждать с пользователем его потенциальные операции.
Пользователь: Купить золото?
Ассистент: Золото часто рассматривают как защитный актив, особенно в периоды высокой неопределенности, инфляционных рисков или снижения реальных ставок.
Сейчас стоит оценить не краткосрочное движение цены, а роль золота в вашем портфеле: снижает ли оно общую волатильность, не создает ли избыточную концентрацию и соответствует ли вашему инвестиционному горизонту.
С учетом текущей структуры портфеля можно рассмотреть золото как инструмент диверсификации, но решение лучше принимать исходя из целевой доли защитных активов.
Пользователь может быстро получать ответы, которые помогают развеивать сомнения по инвестиционным вопросам
И если пользователь принимает решение, ассистент может выполнить действие или дать совет:
Пользователь: Хочу купить 0,2 BTC.
Ассистент: Проверьте параметры инвестиционной операции: покупка 0,2 BTC.
После выполнения доля криптоактивов в портфеле увеличится до 8%. Это выше вашего целевого диапазона в 5–7%, поэтому операция может повысить общий риск портфеля.
Ассистент предупреждает о рисках, прежде чем совершить какое-либо действие
Пользователи торговых платформ часто обращаются к службе поддержки с типовыми вопросами: почему закрылась сделка, когда откроется рынок или какой результат за сегодня. Ассистент может отвечать на такие вопросы прямо в диалоге.
Пользователь: С чем связана просадка портфеля?
Ассистент: Стоимость портфеля снизилась в основном из-за падения BTC и акций технологического сектора. Наибольший вклад в изменение внесла позиция в BTC, так как она занимает заметную долю портфеля и отличается высокой волатильностью.
Общая структура портфеля при этом остается в рамках выбранного риск-профиля.
Или:
Пользователь: Покажи результат за сегодня.
Ассистент: Сегодня стоимость портфеля выросла на 2,1%. Основной вклад в рост внесли акции технологического сектора.
При этом защитная часть портфеля, включая облигации и денежные инструменты, почти не изменилась. Общая доля высокорисковых активов остается в пределах вашего инвестиционного профиля.
Такие сценарии позволяют автоматически закрывать часть типовых запросов пользователей
На первый взгляд сценарии кажутся простыми. Но при работе с каждым из них ассистент должен:
распознавать речь пользователя,
обрабатывать запрос,
генерировать ответ на основе данных платформы,
озвучивать его.
Все эти компоненты нужно было объединить в одно решение, которое работало бы в реальном времени. Для такой голосовой коммуникации мы использовали LiveKit — платформу для WebRTC и связь с агентами. Так нам не нужно было писать собственную инфраструктуру для передачи аудио и мы могли сосредоточиться на логике [4] ассистента.
Из чего в итоге состоит наша система:
Мобильный клиент передает аудио пользователя и воспроизводит ответ агента.
AI Agent обрабатывает голосовые запросы, анализирует графики, экономические календари и другие инструменты платформы, формирует ответ.
LiveKit управляет WebRTC-комнатами и передает аудио между пользователем и агентом.
Auth-сервис выдает JWT‑токен для подключения к LiveKit и передает пользовательский контекст.
AI Realtime API распознает речь, обрабатывает запрос и генерирует голосовой ответ. А встроенный Voice Activity Detection (VAD) помогает определять, когда пользователь закончил говорить, готов слушать ответ или просит ассистента остановиться, если агент пошел в не ту сторону.
Классическая архитектура голосовых ассистентов выглядит так:
User speaking (VAD) → STT → LLM → TTS → User listening
где:
STT — распознавание речи через Whisper, Google Speech-to-Text;
LLM — обработка запроса через ChatGPT, Claude, Gemini;
TTS — синтез голоса через ElevenLabs, Google TTS, Azure TTS.
Любой из компонентов архитектуры можно менять под ваши цели, и такой гибкий подход дает свободу действий. Но тут нужна интеграция нескольких сервисов, а у нас не было на это времени.
Realtime API же объединяет всё в одном сервисе:
User speaking → Realtime API (VAD) → User listening
Для хакатона такая схема стала идеальным вариантом. Нам не пришлось копаться в инфраструктуре, и мы смогли быстрее запустить прототип
Мы остановились на Realtime API, потому что, во-первых, у нас уже был доступ ко всем возможностям интерфейса и мы могли работать без ограничений или дополнительных подписок. А во-вторых, вместо отдельных сервисов мы могли использовать один для всех операций, что и удобно, и бюджетно.
Наш ассистент должен был выполнять реальные действия, поэтому мы добавили инструменты, через которые модель могла обращаться к внутренним сервисам платформы и управлять ими. Так мы наладили:
1) работу с экономическим календарем, где собирали информацию о ближайших событиях;
2) сводку последних экономических новостей, из которых мы понимали, как ситуация в мире влияет на текущий рынок;
3) процессы, связанные с синтетическими пользовательскими данными: мы проводили аналитику смоделированного поведения [5], получали информацию об открытых или завершенных операциях и о доступном портфеле.
Несмотря на простую архитектуру, во время разработки возникло несколько проблем:
Модель неожиданно меняла язык ответа. Иногда она неправильно распознавала язык по речи в аудио. Пользователь мог говорить на английском, а ответ получать на испанском.
Агент отваливался из-за сбоя в сети. На хакатоне много сервисов работали одновременно и были сами по себе нестабильны, потому что мы не оптимизировали их для реальной системы. Добавляем к этому проблемы с интернетом и получаем периодически отслаивающегося агента. На деле сервисы нужно дорабатывать, вводить ограничения, чтобы они выдерживали нагрузку и плохая связь не влияла на работу агента.
Передачу пользовательского контекста нужно дорабатывать. Чтобы управлять торговой платформой, ИИ-агенту нужен токен пользователя. На хакатоне найти полноценное решение нам не удалось, поэтому в прототип зашили креды аккаунта. Очевидно, что в реальной системе нужен полноценный бэкенд и безопасная передача данных.
Если развивать проект дальше, можно двигаться сразу в нескольких направлениях:
Уменьшить зависимость от LiveKit API и Realtime API. Построить собственный пайплайн STT → LLM → TTS.
Расширить набор инструментов. Добавить управление ордерами и позициями, использовать мультимодальные модели для анализа скриншотов графиков.
Разработать режим торгового ментора. Ассистент сможет анализировать экран пользователя и помогать принимать решения.
По сути, у нас получилась умная колонка, через которую можно инвестировать. При этом не надо нажимать на кнопки или кликать мышкой — достаточно озвучить команду или вопрос. Отсюда вытекает закономерный вопрос: а не зря ли мы пилим пользовательский чинтерфейс, если можно отдать людям круто работающего голосового ассистента?
Возможно, через несколько лет взаимодействие с торговыми платформами и аналитическими системами как раз и будет происходить через обычный диалог с ассистентом.
А вы что думаете? Насколько реалистичен прогноз про голосовых помощников? Заменят ли они интерфейсы в будущем или так и останутся просто дополнительной опцией? Давайте обсуждать в комментариях.
Автор: maluginp
Источник [6]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/30582
URLs in this post:
[1] Платон: http://www.braintools.ru/article/8253
[2] опыт: http://www.braintools.ru/article/6952
[3] внимание: http://www.braintools.ru/article/7595
[4] логике: http://www.braintools.ru/article/7640
[5] поведения: http://www.braintools.ru/article/9372
[6] Источник: https://habr.com/ru/companies/garage8/articles/1037842/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1037842
Нажмите здесь для печати.