Poznaj KUBI, konwersacyjnego robota baristę

KUBI to konwersacyjny barista, który działa z Conversational AI od ElevenLabs. Oto jak.

KUBI to konwersacyjny barista i recepcjonista w Second Space, nowoczesnej przestrzeni co-workingowej 24/7 w Kaohsiung, Tajwan. Ponieważ działanie przestrzeni jest w pełni zautomatyzowane, dla KUBI — jako pierwszego punktu kontaktu z członkami — ważne jest, aby dodać unikalny, przyjazny akcent. Dlatego Second Space wybrało

Jak działa KUBI

KUBI wykorzystuje zaawansowaną architekturę multisensoryczną do symulacji interakcji przypominającej ludzką. System opiera się na architekturze mikroserwisów, gdzie wyspecjalizowane usługi działają równocześnie i komunikują się przez strumień zdarzeń w czasie rzeczywistym. Te usługi zarządzają różnymi zadaniami, w tym rozpoznawaniem twarzy i obiektów za pomocą AI w czasie rzeczywistym, wykrywaniem kubków i kontrolą poprawności przez kamery, drukowaniem paragonów, bezpiecznym rozpoznawaniem twarzy do kontroli dostępu oraz precyzyjnym sterowaniem dozownikami mleka i ziaren.

Jak działa KUBI

  • Środowisko Usługa kamery: Wykorzystuje AI w czasie rzeczywistym (PyTorch w Pythonie) do wykrywania twarzy i obiektów.
  • Tablet Usługa kamery: Bardzo podobna, ale wykrywa kubki na stole, obce obiekty i sprawdza poprawność - np. czy robot KUBI faktycznie trzyma kubek.
  • Usługa drukowania paragonów: Prosta i niezawodna z Node + Typescript. Komunikuje się z drukarką termiczną RS232.
  • Usługa płatności: Zbudowana z Kotlin JVM dla solidnej współbieżności i bezpieczeństwa typów. Obsługuje raportowanie paragonów rządowych i komunikację z terminalem kart kredytowych, bramką płatności kryptowalutowych lub dostawcami płatności online.
  • Dozowniki mleka i ziaren: Oddzielne precyzyjne usługi — Arduino. Czasowo wrażliwe, niska latencja.
  • Rozpoznawanie twarzy: Bezpieczna i silnie typowana usługa Kotlin, używana do kontroli dostępu.
  • Usługa strumienia wody: Automatycznie czyści dzbanki do spieniania mleka po użyciu — Arduino.
  • I różne inne usługi, np. dla API aplikacji mobilnej, wyświetlania menu itp.

Oto niektóre z usług działających równocześnie:

Centralny rdzeń oparty na zdarzeniach, który to wszystko łączy

Dlaczego wszystkie te mikroserwisy? Proste — zarządzamy nimi niezależnie, łatwo skalujemy i używamy najlepszych narzędzi do każdego zadania."BigBoy". To w zasadzie ogromny, nieblokujący procesor zdarzeń:

Centralny rdzeń napędzany zdarzeniami, który to wszystko łączy

  1. Nasłuchuje przychodzących zdarzeń ze wszystkich usług.
  2. Sprawdza scenariusze pod kątem odpowiednich wyzwalaczy.
  3. Wybiera najlepszy scenariusz.
  4. Planuje działania do odtworzenia.
1
2internal object WeatherIdleScenario: SingleTaskScenario(scenario){
3
4 importance = Importance.Medium
5 compilationTimeout = Time.ThreeSeconds
6 interruptable = false
7 exeutionExpiration = = Time.TenSeconds
8
9 override fun isEligible(event: Event, environment: Environment): Maybe<Boolean> = withEnvironment(environment) {
10 just {
11 (event is IdleEvent
12 && !triggeredInLast(40.minutes)
13 && (personPresent() || hasActiveSessions)
14 && environment.weatherService.lastReportWithin(10.minutes))
15 }
16 }
17}
18
19private val scenario = ScenarioRecipe { event, env, session ->
20
21
22 invokeOneOf(
23
24 phrase {
25 sayWith {
26 "Rainy day today, isn't it? That's why I have my little umbrella! Look!".asEnglish
27 }.withAutoGift().withAutoMotion()
28 }.given { Weather.isRaining() },
29
30 phrase {
31 sayWith {
32 "Friend, it's so cold outside! So sad for you... because you're a human. I don't really mind!".asEnglish
33 }.withAutoMotion()
34
35 sayWith {
36 "Wait, that soudned a bit rude.".asEnglish
37 }.withAutoMotion()
38
39 }.given { Weather.isCold() },
40
41 )
42
43
44}
45
46

Czym są scenariusze?

Pomyśl o scenariuszach jako o nieblokujących kompilatorach dla zdarzeń akcji robota. Zdarzenie akcji to zazwyczaj najbardziej końcowe zdarzenie, ostatni krok w łańcuchu, prowadzący do fizycznego efektu, takiego jak ruch czy mowa. Na przykład, scenariusz powitania może wywołać:

SayEvent("Cześć! Witamy!", wave.gif)
MotionEvent(HelloMotion)

Pomyśl o scenariuszach jako o nieblokujących kompilatorach dla zdarzeń akcji robota

Synchronizacja zdarzeń akcji: Te zdarzenia przepływają przez harmonogram, który zapewnia synchronizację mowy, wyrazów twarzy i ruchów. Synchronizacja zapewnia, że mowa KUBI idealnie pasuje do jego gestów.

Generowanie zdarzeń z LLM:

Synchronizacja zdarzeń akcji: Te zdarzenia przepływają następnie przez harmonogram, który zapewnia synchronizację mowy, mimiki i ruchów. Synchronizacja zapewnia, że mowa KUBI idealnie pasuje do jego gestów. i dynamicznie wyzwalać nowe zdarzenia akcji. Na przykład:

  • Jeśli BigBoy wykryje
  • Inny fajny przykład to - jeśli użytkownik wybierze naszą aplikację mobilną do złożenia zamówienia, wszystkie interakcje użytkownika (klikanie na produkt, dokonywanie płatności itp.) są przekształcane w zdarzenia i BigBoy może również reagować w czasie rzeczywistym. Na przykład, jeśli użytkownik przewinie obok „Oatmilk Latte”, KUBI może powiedzieć „Jesteś pewien, że nie chcesz tego Oatmilk Latte? Jest naprawdę dobre!”

Fajne jest to, że scenariusze mogą nawet nasłuchiwać

DevOps i obserwowalność

BigBoy dosłownie widzi i wie wszystko, co się dzieje. Całkiem fajne, prawda?

Większość usług jest hostowana lokalnie i opakowana w kontener docker. W kontenerze ich cykl życia jest zarządzany przez system kontroli procesów Supervisor. Dzienniki błędów są zbierane w Sentry i przesyłane do niestandardowej aplikacji administracyjnej do monitorowania wszelkich wyjątków, statusu usług i czujników w czasie rzeczywistym oraz raportowania opóźnień. Fajne jest to, że aplikacja Flutter została w 90% wygenerowana przez AI.

Wykorzystanie ElevenLabs do tworzenia niezapomnianych interakcjizaprojektować głos w 15 minut, w komplecie z emocjami i pauzami, które sprawiają, że głos brzmi jeszcze bardziej ludzko.

Second Space miało bardzo konkretną osobowość na myśli dla KUBI - mieszankę Deadpoola, Wheatleya z gry Portal i trochę Pathfindera z Apex Legends. Udało im się

ElevenLabs zasila możliwości mowy KUBI poprzez dwa główne API:

  • Obsługuje ~90% naszych interakcji.
  • Używa wcześniej zaprojektowanych scenariuszy dla idealnego klimatu.
  • Wiadomości generowane przez LLM mogą być personalizowane, z wysokiej jakości dźwiękiem, najlepszą wymową, nie są czasowo krytyczne.
  • Oferuje niesamowicie naturalną, wielojęzyczną mowę w językach angielskim, chińskim, hiszpańskim, japońskim, a nawet łotewskim (Łotewski Deadpool, ktoś?).

Aktywowany, gdy klient mówi,

Tryb konwersacyjny (w czasie rzeczywistym)"Hej KUBI!", konwersacyjna AI od ElevenLabs potrafi odpowiedzieć w 200ms, sprawiając, że interakcja wydaje się naprawdę ludzka.

  • Priorytet: Niska latencja.
  • Zamienia trochę jakości dźwięku na szybkość reakcji.
  • Używa nowego narzędzia ElevenLabs do language_detection, dynamicznie obsługując różne języki natychmiast.
  • Sesja konwersacyjna AI uruchamiana na żądanie, gdy członek wchodzi do obiektu lub mówi „Hej, KUBI!”

Korzystając z konwersacyjnej AI od ElevenLabs przez połączenie WebSocket, KUBI może wykorzystywać wywoływanie funkcji, na przykład:

Narzędzia konwersacyjne na zamówienie

  • make_order: Rozpoznaje zamówienia, wysyła zdarzenia bezpośrednio do BigBoy.
  • make_payment: Natychmiast powiadamia naszą Usługę Płatności, aby uruchomić terminal kart kredytowych do płatności.

Rozszerzanie KUBI na dodatkowe rynkiintencje narzędzia niż inne. Obecnie używają Gemini 2.0 Flash jako swojego głównego modelu dla konwersacyjnej AI i ChatGPT 4o do statycznych generacji mowy.

Łatwe przełączanie między różnymi modelami LLM przez panel administracyjny ElevenLabs pomaga Second Space optymalizować zrozumienie i dokładność, ponieważ zauważyliśmy, że różne modele lepiej rozpoznają

Rozszerzanie KUBI na dodatkowe rynki

Pierwsze commity Second Space na GitHubie odnoszące się do ElevenLabs pochodzą z stycznia 2023 - nawet przed wydaniem modelu wielojęzycznego. Wcześnie dostrzegli zaangażowanie ElevenLabs w jakość i zbudowali architekturę przewidującą przyszłe wsparcie wielojęzyczne. Teraz wejście na rynki takie jak Japonia i Korea Południowa jest tak proste, jak przełączenie przełącznika — bez dodatkowej pracy deweloperskiej!

Podsumowanie

Zobacz więcej

ElevenLabs

Twórz z najwyższą jakością dźwięku AI