Инженерите на Yelp съчетаха нативен и сървърно управляван интерфейс за стрийминг на отговори от AI асистенти

Източник: InfoQ / Yelp Engineering
В детайлен архитектурен доклад инженерният екип на Yelp представи решение за едно от най-трудните предизвикателства при внедряването на AI асистенти в мобилни приложения: как да се съчетае плавният стрийминг на текст с интерактивни нативни компоненти като карти, бутони за резервация и галерии [1]. Решението комбинира сървърно управляван потребителски интерфейс (Server-Driven UI) с оптимизирана мобилна архитектура.
Паралелно синтактично анализиране на JSON потоци и нативно рендериране
Традиционните чатботове показват бавен текстов курсор, след което зареждат тежки статични карти. Yelp разработи стрийминг парсер, който идентифицира предварително дефинирани UI схеми в суровия изход на модела. Докато текстът се изписва на екрана, приложението нативно конструира интерактивни бутони за поръчка и рейтингови звезди без трептене на екрана и без повторно прерисуване.
Оптимизация на мрежовия трафик и офлайн устойчивост
Хибридният подход позволява на сървъра да управлява визуалното оформление според намерението на потребителя, докато клиентското приложение използва кеширани нативни библиотеки за рисуване. Това спестява над 60% от обема на мобилния трафик и осигурява безупречна плавност от 120 кадъра в секунда на съвременни смартфони.
Преходът от чист текст към богати мултимодални работни пространства
Първата вълна на потребителски AI бе доминирана от обикновени текстови кутии, имитиращи SMS чатове. За сложни потребителски сценарии като избор на ресторант, планиране на ремонт или наемане на майстор обаче текстът е неефективен. Потребителите се нуждаят от визуални сравнения, бутони за действие с един клик и локационни филтри. Архитектурата на Yelp задава посоката за цялата мобилна индустрия: AI асистентът трябва да бъде композитор на потребителски интерфейси в реално време, адаптиращ екрана спрямо конкретната задача на човека.

Анализ на стрийминг JSON парсера, Server-Driven UI и производителността.