Poznaj KUBI – konwersacyjnego robota-baristę
- Autor
- Thor Schaeff
- Opublikowano
- Ostatnia aktualizacja
PosłuchajPosłuchaj tego artykułu
KUBI to konwersacyjny robot-barista i recepcjonista w Second Space, nowoczesnej przestrzeni coworkingowej 24/7 w Kaohsiung na Tajwanie. Ponieważ wszystko działa tu automatycznie, KUBI — jako pierwszy kontakt z członkiem — musi dodać trochę ludzkiego ciepła. Dlatego Second Space wybrało nasze Conversational AI, żeby rozmowy z KUBI były fajne i zapadały w pamięć. Zobacz, jak działa KUBI.
Jak działa KUBI
KUBI korzysta z zaawansowanej, wielozmysłowej architektury, żeby naśladować ludzką rozmowę. Całość opiera się na architekturze mikroserwisów — każdy z nich działa osobno i komunikuje się przez strumień zdarzeń w czasie rzeczywistym. Serwisy odpowiadają m.in. za rozpoznawanie twarzy i obiektów przez AI, wykrywanie kubków i sprawdzanie poprawności przez kamery, drukowanie paragonów, bezpieczne rozpoznawanie twarzy do kontroli dostępu oraz precyzyjne sterowanie dozownikami mleka i ziaren.
Oto niektóre z serwisów, które działają jednocześnie:
- Środowisko Serwis kamer: Wykorzystuje AI (PyTorch w Pythonie) do wykrywania twarzy i obiektów na żywo.
- Tablet Serwis kamer: Podobny, ale wykrywa kubki na stole, obce przedmioty i sprawdza, czy np. KUBI faktycznie trzyma kubek.
- Serwis drukowania paragonów: Prosty i niezawodny, napisany w Node + Typescript. Łączy się z drukarką termiczną RS232.
- Serwis płatności: Napisany w Kotlin JVM dla lepszej wydajności i bezpieczeństwa typów. Obsługuje raportowanie paragonów do urzędów i płatności kartą, krypto lub online.
- Dozowniki mleka i ziaren: Oddzielne, precyzyjne serwisy na Arduino. Liczy się tu czas i niskie opóźnienia.
- Rozpoznawanie twarzy: Bezpieczny serwis w Kotlinie, używany do kontroli dostępu.
- Serwis czyszczenia dzbanków: Automatycznie myje dzbanki po spienianiu mleka — Arduino.
- I inne serwisy, np. do API aplikacji mobilnej, wyświetlania menu itd.
Po co tyle mikroserwisów? Proste — każdy ogarniamy osobno, łatwo je skalować i możemy dobrać najlepsze narzędzia do każdego zadania.
Centralny rdzeń oparty na zdarzeniach spina wszystko razem
Wszystkimi mikroserwisami zarządza centralny serwis, żartobliwie nazwany "BigBoy". To po prostu ogromny, nieblokujący procesor zdarzeń:
Jak działa BigBoy:
- Nasłuchuje zdarzeń od wszystkich serwisów.
- Sprawdza scenariusze pod kątem odpowiednich wyzwalaczy.
- Wybiera najlepszy scenariusz.
- Planuje akcje do wykonania.
Czym są scenariusze?
Wyobraź sobie scenariusze jako nieblokujące kompilatory dla zdarzeń akcji. Zdarzenie akcji to zwykle ostatni krok w łańcuchu, który wywołuje fizyczny efekt, np. ruch lub mowę. Przykładowo, scenariusz powitania może wywołać:
MotionEvent(HelloMotion)
Generowanie zdarzeń przez LLM: Niektóre zdarzenia akcji są generowane automatycznie przez LLM, np. z AutoMotion wybiera najlepszy ruch z listy na podstawie kontekstu. Z kolei z AutoGif używa LLM do wygenerowania najlepszego taga do danej frazy. Tag służy do pobrania GIF-a z Giphy, który pojawia się na twarzy KUBI razem z tekstem.
Synchronizacja zdarzeń akcji: Te zdarzenia trafiają do planera, który pilnuje, żeby mowa, mimika i ruchy były zsynchronizowane. Dzięki temu to, co mówi KUBI, idealnie pasuje do jego gestów.
Elastyczność i rozbudowa
Fajne jest to, że scenariusze mogą nawet nasłuchiwać zdarzeń akcji i wywoływać nowe zdarzenia akcji dynamicznie. Przykład:
- Jeśli BigBoy wykryje SayEvent("Wesołych Świąt"), może automatycznie włączyć świąteczne światła i efekty specjalne w pomieszczeniu.
- Inny fajny przykład — jeśli użytkownik zamawia przez naszą aplikację mobilną, wszystkie jego akcje (kliknięcia, płatność itd.) zamieniane są na zdarzenia i BigBoy reaguje na nie od razu. Na przykład, jeśli przewiniesz „Oatmilk Latte”, KUBI może zapytać: „Na pewno nie chcesz Oatmilk Latte? Jest naprawdę dobre!”
BigBoy dosłownie widzi i wie wszystko, co się dzieje. Fajne, prawda?
DevOps i obserwowalność
Większość serwisów działa lokalnie w kontenerach dockera. Ich cyklem życia zarządza Supervisor. Logi błędów trafiają do Sentry i do naszej aplikacji admina, gdzie monitorujemy wyjątki, status serwisów i sensorów oraz opóźnienia. Co ciekawe, 90% aplikacji Flutter napisała AI.
Jak używamy ElevenLabs do tworzenia niezapomnianych rozmów
Second Space miało konkretną wizję osobowości KUBI — trochę Deadpoola, Wheatleya z gry Portal i Pathfindera z Apex Legends. Udało im się zaprojektować głos w 15 minut — z emocjami i pauzami, które sprawiają, że brzmi bardzo ludzko.
KUBI mówi dzięki dwóm naszym API:
Text to Speech (TTS)
- Obsługuje ok. 90% rozmów.
- Korzysta z gotowych scenariuszy, żeby oddać odpowiedni klimat.
- Wiadomości generowane przez LLM można personalizować, dźwięk jest wysokiej jakości, wymowa świetna, nie liczy się czas.
- Oferuje bardzo naturalną mowę w wielu językach: angielskim, chińskim, hiszpańskim, japońskim, a nawet łotewskim (łotewski Deadpool, ktoś chętny?).
Tryb konwersacyjny (na żywo)
Włącza się, gdy klient powie "Hej KUBI!", Conversational AI od ElevenLabs odpowiada w 200 ms, więc rozmowa jest naprawdę naturalna.
- Priorytet: Niskie opóźnienia.
- Czasem kosztem jakości dźwięku, ale liczy się szybkość reakcji.
- Korzysta z naszego nowego narzędzia wykrywanie języka, które automatycznie rozpoznaje język.
- Sesja Conversational AI uruchamia się na żądanie, gdy członek wchodzi do lokalu lub mówi „Hej, KUBI!”
Własne narzędzia konwersacyjne
Dzięki połączeniu WebSocket z Conversational AI od ElevenLabs, KUBI może korzystać z wywołań funkcji, np.:
- złóż zamówienie: Rozpoznaje zamówienia, wysyła zdarzenia prosto do BigBoy.
- opłać zamówienie: Od razu informuje nasz PaymentService, żeby uruchomić terminal płatniczy.
Łatwe przełączanie modeli LLM przez panel admina ElevenLabs pozwala Second Space lepiej dopasować rozumienie i dokładność — zauważyliśmy, że różne modele lepiej rozpoznają intencje niż inne. Teraz używają Gemini 2.0 Flash jako głównego modelu do Conversational AI, a ChatGPT 4o do generowania statycznych wypowiedzi.
KUBI w nowych krajach
Pierwsze commity Second Space na GitHubie z ElevenLabs są z stycznia 2023 — zanim pojawił się model wielojęzyczny. Od początku docenili jakość ElevenLabs i zbudowali architekturę gotową na obsługę wielu języków. Teraz wejście na rynek Japonii czy Korei to kwestia jednego kliknięcia — bez dodatkowej pracy deweloperskiej!
Podsumowanie
Mikroserwisy, zdarzenia w czasie rzeczywistym i technologia głosu od ElevenLabs sprawiają, że KUBI naprawdę żyje i jest gotowy zachwycać świat — kawa po kawie, rozmowa po rozmowie.
.webp&w=3840&q=80)
.webp&w=3840&q=80)
.webp&w=3840&q=80)

