
Introducing Experiments in ElevenAgents
The most data-driven way to improve real-world agent performance.
KUBI एक कन्वर्सेशनल बारिस्ता है जो ElevenLabs की कन्वर्सेशनल AI के साथ काम करता है। जानिए कैसे।
KUBI एक कन्वर्सेशनल रोबोट बारिस्ता और रिसेप्शनिस्ट है सेकंड स्पेस में, जो कि काओह्सिओंग, ताइवान में एक अगली पीढ़ी का 24/7 को-वर्किंग स्पेस है। क्योंकि यह वर्कस्पेस पूरी तरह ऑटोमेटेड है, इसलिए KUBI — जो मेंबर्स से पहली बार मिलता है — के लिए एक अलग, दोस्ताना एहसास देना बहुत जरूरी है। इसी वजह से Second Space ने ElevenLabs की कन्वर्सेशनल AI चुनी ताकि मेंबर्स के साथ मज़ेदार और यादगार बातचीत हो सके। चलिए, KUBI को एक्शन में देखते हैं।
KUBI एक एडवांस्ड मल्टी-सेंसरी आर्किटेक्चर का इस्तेमाल करता है ताकि इंसानों जैसी बातचीत हो सके। यह सिस्टम माइक्रोसर्विसेज़ आर्किटेक्चर पर चलता है, जिसमें अलग-अलग सर्विसेज़ एक साथ काम करती हैं और रियल-टाइम इवेंट स्ट्रीम के ज़रिए आपस में बात करती हैं। ये सर्विसेज़ कई काम संभालती हैं, जैसे रियल-टाइम AI इंफरेंस से फेस और ऑब्जेक्ट पहचानना, कैमरा से कप डिटेक्शन और चेक करना, रसीद प्रिंट करना, एक्सेस कंट्रोल के लिए सिक्योर फेसियल रिकग्निशन, और दूध व बीन्स डिस्पेंसर का सटीक कंट्रोल।
ये कुछ सर्विसेज़ हैं जो एक साथ चल रही हैं:
इतनी सारी माइक्रोसर्विसेज़ क्यों? आसान है — हम इन्हें अलग-अलग मैनेज कर सकते हैं, आसानी से स्केल कर सकते हैं, और हर काम के लिए सबसे अच्छा टूल इस्तेमाल कर सकते हैं।
इन सभी माइक्रोसर्विसेज़ को एक सेंट्रल सर्विस कोऑर्डिनेट करती है, जिसे मज़ाक में कहा जाता है "BigBoy"। यह असल में एक बड़ा, नॉन-ब्लॉकिंग इवेंट प्रोसेसर है:
| 1 | |
| 2 | internal 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 | |
| 19 | private 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 |
सीनारियो क्या हैं?
सीनारियो को ऐसे समझिए जैसे रोबोट के लिए नॉन-ब्लॉकिंग कंपाइलर एक्शन इवेंट्स के लिए। एक एक्शन इवेंट आमतौर पर सबसे आखिरी इवेंट होता है, जो किसी फिजिकल असर जैसे मूवमेंट या बोलने का कारण बनता है। जैसे, एक ग्रीटिंग सीनारियो में ये ट्रिगर हो सकता है:
LLM से इवेंट जेनरेशन: कुछ एक्शन इवेंट्स LLM से ऑटोमैटिकली बनते हैं, जैसे withAutoMotion दिए गए कॉन्टेक्स्ट के हिसाब से प्री-डिफाइंड लिस्ट से सबसे अच्छा मूवमेंट चुनता है। वहीं withAutoGif LLM का इस्तेमाल कर सबसे उपयुक्त टैग बनाता है, जिससे Giphy पर GIF मिलती है, जो बाद में KUBI के चेहरे पर उस वाक्य के साथ दिखती है।
एक्शन इवेंट्स का सिंक्रोनाइज़ेशन: ये इवेंट्स फिर एक शेड्यूलर से होकर गुजरते हैं, जो स्पीच, फेस एक्सप्रेशन और मूवमेंट को सिंक्रोनाइज़ रखता है। इससे KUBI की स्पीच उसके इशारों से पूरी तरह मेल खाती है।
सबसे अच्छी बात ये है कि सीनारियो एक्शन इवेंट्स को सुन सकते हैं और नए एक्शन इवेंट्स डायनामिकली ट्रिगर कर सकते हैं। जैसे:
BigBoy सचमुच सब कुछ देख और समझ सकता है। है ना कमाल?
ज्यादातर सर्विसेज़ लोकली होस्टेड हैं और डॉकर कंटेनर में चलती हैं। कंटेनर में, इनका लाइफसाइकल Supervisor प्रोसेस कंट्रोल सिस्टम से मैनेज होता है। एरर लॉग्स Sentry में इकट्ठा होते हैं और एक कस्टम एडमिन ऐप में भेजे जाते हैं, जिससे किसी भी एक्सेप्शन, सर्विसेज़ और सेंसर्स की रियल-टाइम स्थिति और लेटेंसी रिपोर्टिंग देखी जा सकती है। सबसे मज़ेदार बात — Flutter ऐप 90% AI से जेनरेट हुई है।
Second Space ने KUBI के लिए एक खास पर्सनैलिटी सोची थी — Deadpool, Portal गेम के Wheatley और Apex Legends के Pathfinder का मिक्स। उन्होंने सिर्फ 15 मिनट में वॉइस डिज़ाइन कर ली, जिसमें इमोशंस और पॉज़ भी थे, जिससे वॉइस और भी इंसानी लगी।
ElevenLabs KUBI की स्पीच कोर APIs से पावर देता है:
जब कोई ग्राहक कहता है, "हे KUBI!", ElevenLabs की कन्वर्सेशनल AI 200ms में जवाब दे सकती है, जिससे बातचीत सच में इंसानों जैसी लगती है।
ElevenLabs की कन्वर्सेशनल AI को WebSocket कनेक्शन से इस्तेमाल कर, KUBI फंक्शन कॉलिंग कर सकता है, जैसे:
ElevenLabs के एडमिन पैनल से अलग-अलग LLM मॉडल्स के बीच आसानी से स्विच करने से Second Space को समझ और सटीकता ऑप्टिमाइज़ करने में मदद मिलती है, क्योंकि हमने देखा कि अलग-अलग मॉडल्स टूल इरादे को अलग-अलग पहचानते हैं। अभी वे Gemini 2.0 Flash को कन्वर्सेशनल AI के लिए और ChatGPT 4o को स्टैटिक स्पीच जेनरेशन के लिए इस्तेमाल कर रहे हैं।
Second Space के पहले GitHub कमिट्स, जिनमें ElevenLabs का ज़िक्र है, जनवरी 2023 के हैं — multilanguage मॉडल आने से भी पहले। उन्होंने शुरू से ही ElevenLabs की क्वालिटी को पहचाना और भविष्य में मल्टी-लैंग्वेज सपोर्ट के लिए आर्किटेक्चर तैयार किया। अब, जापान और साउथ कोरिया जैसे मार्केट्स में जाना बस एक स्विच ऑन करने जितना आसान है — कोई एक्स्ट्रा डेवलपमेंट नहीं चाहिए!
माइक्रोसर्विसेज़, रियल-टाइम इवेंट्स और ElevenLabs की दमदार वॉइस टेक्नोलॉजी से KUBI सच में ज़िंदा जैसा लगता है और हर कॉफी व मज़ेदार बातचीत के साथ दुनिया को जीतने और खुश करने के लिए तैयार है।

The most data-driven way to improve real-world agent performance.
.webp&w=3840&q=95)
UK AI Security Institute researchers will explore the implications of AI voice technology