Möt KUBI, den konversationsbaserade robotbaristan
- Skriven av
- Thor Schaeff
- Publicerad
- Senast uppdaterad
LyssnaLyssna på den här artikeln
KUBI är en konversationsbaserad robotbarista och receptionist på Second Space, en nästa generations coworkingplats som är öppen dygnet runt i Kaohsiung, Taiwan. Eftersom arbetsplatsen är helt automatiserad är det väldigt viktigt att KUBI — som medlemmarnas första kontaktpunkt — tillför en unik och vänlig känsla. Därför valde Second Space ElevenLabs Conversational AI för att skapa roliga och minnesvärda interaktioner med medlemmarna. Låt oss se KUBI i action.
Så fungerar KUBI
KUBI använder en avancerad multisensorisk arkitektur för att simulera mänskliga interaktioner. Systemet bygger på en mikrotjänstarkitektur där specialiserade tjänster körs parallellt och kommunicerar via en händelseström i realtid. Tjänsterna hanterar olika uppgifter, bland annat ansikts- och objektigenkänning med AI-inferens i realtid, koppdetektering och rimlighetskontroller via kameror, kvittoutskrift, säker ansiktsigenkänning för åtkomstkontroll samt exakt styrning av mjölk- och bönedispenserar.
Här är några av tjänsterna som körs parallellt:
- Miljö- kameratjänst: Använder AI-inferens i realtid (PyTorch i Python) för att upptäcka ansikten och objekt.
- Surfplatte- kameratjänst: Mycket liknande, men upptäcker koppar på bordet och främmande föremål samt gör rimlighetskontroller – till exempel om KUBI-roboten faktiskt håller i en kopp.
- Kvittoutskriftstjänst: Enkel och tillförlitlig med Node + Typescript. Kommunicerar med en RS232-termisk skrivare.
- Betaltjänst: Byggd med Kotlin JVM för robust parallellitet och typsäkerhet. Hanterar myndighetsrapportering av kvitton och kommunikation med kortterminaler, betalningsgateways för krypto och leverantörer av onlinebetalningar.
- Mjölk- & bönedispenserar: Separata precisionstjänster — Arduino. Tidskänsliga med låg latens.
- Ansiktsigenkänning: Säker och starkt typad Kotlin-tjänst som används för åtkomstkontroll.
- Vattenstråletjänst: Rengör automatiskt mjölkkannor efter användning — Arduino.
- Och flera andra tjänster, till exempel för API:et till mobilappen, menyvisning med mera…
Varför alla dessa mikrotjänster? Enkelt — vi hanterar dem oberoende av varandra, skalar enkelt och använder de bästa verktygen för varje uppgift.
En central händelsedriven kärna som knyter ihop allt
En central tjänst, skämtsamt kallad "BigBoy", samordnar alla dessa mikrotjänster. Den är i praktiken en enorm, icke-blockerande händelseprocessor:
Så här fungerar BigBoy:
- Lyssnar på inkommande händelser från alla tjänster.
- Kontrollerar scenarier för möjliga utlösare.
- Väljer det bästa scenariot.
- Schemalägger åtgärder för uppspelning.
Vad är scenarier?
Se scenarier som icke-blockerande kompilatorer för robotars åtgärdshändelser. En åtgärdshändelse är vanligtvis händelsen längst ned i flödet, alltså det sista steget i en kedja som leder till en fysisk effekt, som rörelse eller tal. Ett hälsningsscenario kan till exempel utlösa:
MotionEvent(HelloMotion)
Händelsegenerering med LLM: Vissa åtgärdshändelser genereras automatiskt av en LLM. Till exempel väljer withAutoMotion den bästa rörelsen från en fördefinierad lista utifrån sammanhanget. withAutoGif använder däremot en LLM för att skapa den lämpligaste taggen för den aktuella frasen. Taggen används för att hämta en GIF från Giphy, som sedan visas på KUBI:s ansikte tillsammans med frasen.
Synkronisering av åtgärdshändelser: Dessa händelser går sedan genom en schemaläggare som ser till att tal, ansiktsuttryck och rörelser hålls synkroniserade. Synkroniseringen gör att KUBI:s tal passar perfekt med gesterna.
Flexibelt och utbyggbart
Det fina är att scenarier till och med kan lyssna på åtgärdshändelser och dynamiskt utlösa nya åtgärdshändelser. Till exempel:
- Om BigBoy upptäcker SayEvent("God jul") kan den automatiskt aktivera festlig belysning och specialeffekter i rummet.
- Ett annat kul exempel är att om användaren väljer vår mobilapp för att beställa, omvandlas alla användarinteraktioner (att klicka på en produkt, genomföra en betalning och så vidare) till händelser, och BigBoy kan också reagera i realtid. Om användaren till exempel skrollar förbi ”Oatmilk Latte” kan KUBI säga: ”Är du säker på att du inte vill ha den där Oatmilk Latte? Den är verkligen god!”
BigBoy ser och vet bokstavligen allt som händer. Rätt coolt, va?
DevOps och observerbarhet
De flesta tjänsterna hostas lokalt och körs i Docker-containrar. I containern hanteras deras livscykel av processkontrollsystemet Supervisor. Felloggar samlas in i Sentry och skickas till en anpassad adminapp för att övervaka undantag, realtidsstatus för tjänster och sensorer samt latensrapporter. Det häftiga är att Flutter-appen till 90 % genererades av AI.
Använda ElevenLabs för att skapa minnesvärda interaktioner
Second Space hade en mycket specifik personlighet i åtanke för KUBI – en blandning av Deadpool, Wheatley från spelet Portal och lite Pathfinder från Apex Legends. De lyckades designa rösten på 15 minuter, komplett med känslor och pauser som gör rösten ännu mer mänsklig.
ElevenLabs driver KUBI:s talfunktioner genom två centrala API:er:
Text-To-Speech (TTS)
- Hanterar cirka 90 % av våra interaktioner.
- Använder fördesignade scenarier för precis rätt känsla.
- Meddelanden som genereras av LLM:er kan personanpassas med högkvalitativt ljud och bästa möjliga uttal, utan att vara tidskritiska.
- Erbjuder otroligt naturligt flerspråkigt tal på engelska, kinesiska, spanska, japanska och till och med lettiska (lettisk Deadpool, någon?).
Konversationsläge (realtid)
När en kund säger "Hej KUBI!" aktiveras ElevenLabs Conversational AI, som kan svara inom 200 ms, så att interaktionen känns verkligt mänsklig.
- Prioritet: Låg latens.
- Byter bort en del ljudkvalitet mot snabbare respons.
- Använder ElevenLabs nya realtidsverktyg language_detection, som direkt och dynamiskt hanterar olika språk.
- En Conversational AI-session startas vid behov när en medlem går in i lokalen eller säger ”Hej, KUBI!”
Anpassade konversationsverktyg
Med ElevenLabs Conversational AI via en WebSocket-anslutning kan KUBI använda funktionsanrop, till exempel:
- make_order: Identifierar beställningar och skickar händelser direkt till BigBoy.
- make_payment: Meddelar omedelbart vår PaymentService för att aktivera kortterminalen för betalningar.
Att enkelt växla mellan olika LLM-modeller via ElevenLabs adminpanel hjälper Second Space att optimera förståelse och träffsäkerhet, eftersom vi märkte att olika modeller känner igen verktygs-intentioner bättre än andra. De använder just nu Gemini 2.0 Flash som kärnmodell för Conversational AI och ChatGPT 4o för statiska talgenereringar.
Expandera KUBI till fler marknader
Second Spaces första GitHub-commits som nämner ElevenLabs är från januari 2023 – redan innan den flerspråkiga modellen släpptes. De insåg tidigt ElevenLabs engagemang för kvalitet och byggde med tillförsikt en arkitektur för framtida flerspråkigt stöd. Nu är det lika enkelt att gå in på marknader som Japan och Sydkorea som att slå på en strömbrytare — inget extra utvecklingsarbete krävs!
Slutsats
Mikrotjänster, realtidshändelser och ElevenLabs kraftfulla röstteknik gör att KUBI känns verkligt levande och redo att erövra och glädja världen, en kaffe och en kvick interaktion i taget.




