Yelp kombinerar nativa och serverstyrda gränssnitt för sin AI-assistent
9 november 2026 · 2 min läsning
Yelp har implementerat en hybridarkitektur för användargränssnittet i sin AI-assistent genom att kombinera nativa mobilkontroller med serverstyrd rendering av konversationer.
Designen utnyttjar ramverket CHAOS, vilket står för Content Hosting Architecture with Optimization Strategies, för att rendera innehåll i konversationer. Navigering och inmatning av meddelanden förblir nativa. Denna arkitektur stöder webb, iOS och Android. I ett serverstyrt gränssnitt definierar backend vad klienten visar och hur den reagerar på interaktioner, vilket gör att ändringar i gränssnittet kan nå användare utan att en ny version av mobilappen behöver släppas.
Yelp Assistant lanserades på iOS under 2024 för att hjälpa användare att skapa projektförfrågningar till lokala tjänsteleverantörer. Tjänsten har sedan dess utökats till att besvara frågor om företag samt stödja åtgärder som bokningar av tider och matbeställningar.
Implementeringen separerar konfigurationen av vyn från konversationsdata. När en chatt startar hämtar klienten CHAOS-konfigurationen och initierar ett dataset för meddelandehändelser. Efterföljande händelser uppdaterar den befintliga vyn utan att konfigurationen behöver hämtas på nytt. Händelser representerar permanenta meddelanden från användare och botar, tillfälliga indikatorer för skrivande, snabba svar och länkar till destinationer. Backend kan även skicka åtgärder för att styra gränssnittet, till exempel genom att inaktivera chattinmatningen när en projektförfrågan är klar.
Enligt Yelp ledde detta arbete till grunden för nästa generations assistent, som nu kopplar samman företagsinformation med åtgärder som användare kan utföra. Arkitekturen möjliggjorde även återanvändning av assistenten för Android för att lansera pilotprojektet Biz Ask Anything.
Yelp ingenjörer påpekar att arkitekturen medför utmaningar gällande koordination. Det krävdes tid för ingenjörer att lära sig både assistenten och CHAOS, och delade implementationer kan fortfarande bete sig olika på olika plattformar. Genom att separera vykonfiguration från konversationsdata kan funktioner utvecklas oberoende av varandra.