Привет! На связи Ирина из команды AIMOTO, и сегодня мы хотим поделиться своим опытом разработки гаджетов на основе больших языковых моделей. Мы создаём детские умные 4G‑часы со встроенным виртуальным помощником, разработанным на базе YandexGPT.

В этой статье расскажем, как мы создали приложение для интерактивного помощника с помощью инструментария Yandex Cloud, а также покажем несколько фишек обращения с большими языковыми моделями, которые могут пригодиться другим разработчикам. Почему мы выбрали лёгкую версию LLM, как перенесли все ресурсоёмкие задачи на бэкенд и как работали с AI Assistant API в превью‑режиме — история разработки приложения ждёт вас под катом.

Ищем нейросеть для интерактивного диалога

AIMOTO BuddyGPT — бренд детских умных часов, адаптированный для российского рынка. У него две целевые аудитории: родители и дети‑школьники младшего возраста. Опция трекинга очень нравится родителям: она даёт возможность знать, где находится ребенок. Однако часы прежде всего должны нравиться самим детям.

Для того чтобы повысить вовлечение ребенка в ежедневное использование гаджета, мы разработали приложение для часов. Его ключевая идея — сделать взаимодействие с часами интерактивным и дать возможность поддерживать диалог. В первую очередь часы — это AI‑помощник, который помогает осваивать школьную программу, развивает мышление и расширяет кругозор

Для первого прототипа мы тестировали существующих на отечественном рынке голосовых ассистентов, но опыт оказался неудачным. Они не могли держать контекст разговора и вести диалог с пользователем. В итоге сервис работал в режиме поисковика, то есть только со сценарием ответа на вопросы. Детям такое было не интересно, они переставали пользоваться часами, а гаджет превращался в устройство по воспроизведению контента.

Мы хотели реализовать сценарий, схожий с нашим опытом взаимодействия с нейросетями. Целью было создать помощника, с которым ребенок мог бы общаться и узнавать новое так же, как мы это делаем с большими языковыми моделями.

Поэтому к приложению было несколько важных требований:

  1. Модель должна удерживать контекст беседы.

  2. Помощник должен уметь разговаривать, потому что читать с экрана дети не будут. Поэтому в связке с нейросетью нужно было задействовать технологии синтеза и распознавания речи.

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

Так что в выборе LLM у нас было несколько ограничений. Первое — продукты многих иностранных вендоров доступны только через VPN. Второе — данные пользователей должны оставаться в контуре отечественных вендоров, а в зарубежных решениях сложно контролировать, куда уходят пользовательские данные.

При этом для нас было максимально важно оперативно сделать и протестировать прототип, чтобы не тратить ресурсы на масштабную разработку продукта, который потом окажется невостребованным.

К этому моменту модели YandexGPT стали доступны в Yandex Cloud в режиме превью. Сначала мы тестировали модель вручную без кодинга. Потом увидели, что есть API, и начали прототипировать MVP. Саму модель решили настраивать с помощью промтов.

Архитектура и ML-пайплайн

Структура приложения со стороны пользователя простая: это главный экран, на котором ребёнок может задать вопрос виртуальному помощнику. Ещё есть блоки «Загадки», «Тренируем устный счёт», а также «Исследуем мир» — к нему мы создали контент в виде коротких историй, в которых простым языком раскрываются вопросы естествознания. Все разделы озвучили с помощью голосового синтеза Яндекса в Yandex SpeechKit.

Выбранная LLM позволяет хранить контекст беседы, и со временем мы разобрались, как этим можно управлять. В облачном сервисе для этого предусмотрены такие объекты, как треды, которые пользователь может создавать и удалять самостоятельно, и с их помощью регулировать, например, какое количество сообщений используется в контексте.

Мы предусматривали вероятный сценарий, когда после прослушивания раздела ребёнок может задать виртуальному помощнику уточняющие вопросы. Для этого в AI Assistant API создали отдельный тред с промтингом — подбор оптимального промта занял некоторое время.

Плюс мы добавили туда полный контент уроков. Всё содержимое занятий специально разрабатывалось для школьников и было предзаписано. При этом LLM даёт отличные ответы в контексте конкретной учебной темы. После каждого мини‑урока BuddyGPT задаёт какой‑то вопрос и приглашает ребёнка к обсуждению. В таком сценарии можно узнать у помощника ещё что‑то новое по теме.

Со стороны сервиса приложение выглядит так: ключевая бэкенд‑часть на облачных серверах и тонкая прослойка фронтенда на самих часах. В логику работы встроено взаимодействие со SpeechKit для распознавания и синтеза речи, и с LLM YandexGPT Lite для обработки запросов пользователей.

SpeechKit и YandexGPT находятся в едином контуре и биллинге. С этим удобно работать, проводить мониторинг и аналитику
SpeechKit и YandexGPT находятся в едином контуре и биллинге. С этим удобно работать, проводить мониторинг и аналитику

Команда и разработка

Ещё до работы над MVP дизайнер и продакт‑менеджер провели кастдев среди родителей. По его результатам сделали наброски экранов и прототип. А параллельно запустили работу с фронтендом и бэкендом. Со стороны разработки был классический состав команды: бэк‑ и фронтендер, DevOps и тестировщик.

Команде было важно обеспечить такие метрики:

  • Время ответа приложения — не более 2–3 с. Дети точно не будут ждать, пока экран будет обновляться десятки секунд.

  • Полный цикл разработки — не более 5 месяцев.

Поскольку скорость ответа зависит от нескольких составляющих, нужно было минимизировать задержки на всех этапах:

  1. Визуализация помощника: мы создали персонажа — цифрового котика, который разговаривает с ребенком. В то время как мы разрабатывали для него 3D‑модель и анимацию, сразу проверяли, что визуализация не нагружает фронтенд и всё будет быстро работать.

  2. Облегчение фронтенда: как это принято для всех носимых устройств, на часах у нас минимум кода, всё тяжёлое выносится на бэкенд.

  3. Оптимизация работы бэкенда и самих сервисов в облаке: распознавания голоса, обработки данных YandexGPT и синтеза голоса.

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

Time-to-market

Этап вывода продукта на рынок занял не более полугода, от времени начала кастдева и создания прототипов до выбора провайдера и разработки. Основная разработка на бэкенде длилась 4 месяца. В это же время мы проводили нагрузочное тестирование, чтобы добиться нужной скорости ответов. И если на старте разработки ответов можно было ждать до 30 секунд, то в конце легко укладывались в 2–3 секунды.

Сложности 

Специфика носимого железа

Сложности реализации были связаны в первую очередь со спецификой носимых устройств. Мы по‑максимуму вынесли всё на бэкенд и получили по сути серверное приложение с тонкой прослойкой фронтенда на гаджетах. За счёт этого удавалось добиться быстрой работы виртуального помощника.

Но из‑за тонкостей работы с носимым гаджетом приходилось несколько раз переделывать визуализацию. Здесь тоже важно было найти баланс. С одной стороны, важно сделать персонажа робокота живым, с которым ребёнку нравилось бы общаться. С другой — не утяжелять анимацию. Во‑первых, потому что это дорого, а во‑вторых, потому что перегруженная анимация снижает скорость ответа приложения.

Передача данных при нестабильной связи

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

Подбор промтов и параметров YandexGPT

Пришлось много поработать с точки зрения промтинга. Нужно было подобрать такой запрос и настройки LLM, чтобы получать сбалансированные ответы между чрезмерной креативностью и слишком сложными объяснениями.

Долго тестировали сам промт. Экспериментировали с температурой, чтобы помощник объяснял всё понятно и весело, но при этом не превращал ответ в дурацкую шутку.

Например, на вопрос «Почему море солёное?» помощник иногда шутил: «Потому что в нём живут солёные рыбки». Даже в редких случаях нас этот вариант не устраивал. Важно было, чтобы BuddyGPT давал нормальный ответ на вопрос, но при этом не слишком заумно и в понятной ребенку форме.

Ответы модели нужно было обязательно тестировать на детях, потому что понятие смешного и интересного у них и у взрослых сильно различается.

Приложение работает на основе последней версии YandexGPT 5 Lite. Выбрали эту сборку, потому что она заметно быстрее остальных, а скорость ответов — критичный приоритет для нас. При этом для коротких ответов ребёнку нужен более быстрый ответ, и ресурсов модели Lite вполне хватает. LLM укладывает ответ в 300 символов: на таких коротких текстах разница в качестве между лёгкими и тяжёлыми моделями не заметна.

Информационная безопасность и возрастные ограничения 

Вопрос с безопасностью ответов помогла решить преднастроенная Яндексом этика модели. У нас большой опыт в создании детского контента, поэтому для тестирования уже был подготовленный список вопросов, на котором мы проверяли ответы модели. Оказалось, что сервис из коробки уже хорошо отвечает.

Единственную доработку, которую нам тут пришлось сделать, — поставить фильтр на фразу «Иди посмотри в интернете». Её модель могла выдавать после краткого ответа на стоп‑тему, если ребёнок не удовлетворялся этим коротким ответом.

Мы не стали собирать какие‑либо персональные данные в приложении, чтобы минимизировать риски утечек. Также мы отказались от постоянно включенного микрофона устройства — запись аудио активируется по нажатию на кнопку, что также снижает опасения пользователей по поводу «прослушки».

Скорость ответов виртуального помощника

Из‑за требований к скорости ответа мы оптимизировали свою базу данных. На быстроту ответов здесь влияет количество нод и организация распределённой системы. Мы пошли по пути уменьшения длины ответа и ограничения длины запроса. Плюс выбрали модель Lite. В нагрузочных тестах видим, что при 1000 одновременных пользователей приложение работает стабильно.

DevOps‑инженеры отслеживают доступность нод и другие параметре в Zabbix. Доступность самой LLM не отслеживаем, так как управляемый сервис уже предусматривает распределение между несколькими зонами доступности, автопереключение и автоскейлинг. В нашей разработке мы контролируем длинные запросы, чтобы вовремя их определить и потом сократить и упростить.

Сами разработчики AI Assistant API в таких случаях рекомендуют отслеживать следующие параметры в мониторинге:

  • количество обращений в моменте и общую нагрузку на языковые модели;

  • сами запросы к модели;

  • параметры сети.

Отсутствие документации на старте

Ещё сложностью в нашем случае стало то, что мы начали использовать AI Assistant API на этапе, когда сервис был в режиме превью. Документация по нему ещё развивалась, а у нас порой возникали не совсем стандартные вопросы, ответы на которые мы не могли найти в официальной справке.

Мы обратились в сообщество для разработчиков в Telegram, где можно задать вопрос и специалистам Яндекса, и коллегам, работающим с ML. Возможность напрямую взаимодействовать с экспертами сильно помогла нам в работе над приложением.

Планы

На старте мы думали, что больше всего будет востребован главный экран приложения, где можно задать вопрос робокоту. На самом деле во время тестов мы увидели, что дети больше всего слушают мини‑уроки в разделе «Исследуем мир». Его мы планируем разрабатывать и дальше.

Также мы увидели, что нужно ещё продумать онбординг пользователей, как правильно пользоваться гаджетом и приложением. Есть определённая специфика взаимодействия с помощником. Например, говорить с ним нужно, зажав клавишу микрофона, а не просто кликнув на неё единожды. И, кстати, многие дети часто схватывают эту особенность быстрее, чем родители, так что хотим предусмотреть возможность совместного онбординга ребёнка и родителя.

В плане развития приложения мы пока думаем, куда двигаться дальше. В том числе мы смотрим в сторону генерации изображений, чтобы подкреплять ответы помощника картинкой или даже иллюстрированной историей. Если поймём, что раздел с тренировкой устного счёта пользуется спросом, то начнём развивать и его.

Команда Yandex Cloud также предлагает свои гипотезы, в каких направлениях может развиваться приложение, исходя из общих технологических трендов:

  • подключение базы знаний и использование RAG;

  • развитие до AI‑агента за счёт появления новой функциональности, доступной через Function Calling: вызова функций и других инструментов, которые запускают дополнительные действия вроде установки будильника или включения медиапроигрывателя.

В эту сторону тоже смотрим, если поймём, что гипотезы подтверждаются и для нас.

Комментарии (6)


  1. Kartafan
    20.08.2025 08:04

    А часы уже есть в продаже?


    1. idyomina Автор
      20.08.2025 08:04

      Добрый день! часы в продаже на всех маркетплейсах https://www.aimoto.tech на сайте есть ссылки.


  1. imanov_sh
    20.08.2025 08:04

    А не пробовали гибридный подход — простые детские вопросы обрабатывать локально на часах, сложные отправлять в облако? Или железо совсем не тянет?


    1. idyomina Автор
      20.08.2025 08:04

      На данном этапе работали с моделью и сервисами Яндекс, а здесь только облако. И качество работы нас устроило, не было смысла усложнять


  1. Akapulka0_0
    20.08.2025 08:04

    Мне интересно как решается проблема зацикливания диалогов и генерации ложной информации, известная как «галлюцинации нейросетей», особенно учитывая, что аудитория — дети, которых ели быть откровенным родители не всегда полностью понимают, а сами дети воспринимают ответы ИИ исключительно буквально. При этом чрезмерная стерильность и шаблонность ответов может скорее отпугнуть современных детей от продукта. Все это ставит серьёзные вопросы безопасности и надёжности.

    Также было бы интересно узнать, используется ли вы дополнительный уровень валидации ответов — например, отдельную нейросеть или модуль, который контролирует правильность контекста и фильтрует неподходящий или бессмысленный контент?


    1. idyomina Автор
      20.08.2025 08:04

      Мы боремся с «галлюцинациями» не отдельной нейросетью, а вот такой простой комбинацией :

      • для мини-уроков ответы привязаны к подготовленному контенту,

      • модель настроена отвечать «не знаю», если нет данных,

      • длина и стиль подогнаны под ребёнка — коротко, понятно, дружелюбно.

      Плюс нам помогает сам сценарий использования: дети не ведут длинные диалоги часами, поэтому мы регулярно чистим контекст и сбрасываем чат. Это естественным образом снижает риск зацикливаний и накопления ошибок.