1. खास जानकारी
आर्टिफ़िशियल इंटेलिजेंस (एआई) अब कई सॉफ़्टवेयर सिस्टम का हिस्सा है. हालांकि, एआई ऐप्लिकेशन बनाना और ऐसा ऐप्लिकेशन बनाना जिस पर उपयोगकर्ता भरोसा कर सकें, दोनों अलग-अलग बातें हैं. कई असल दुनिया के एनवायरमेंट में, चुनौती सिर्फ़ जवाब जनरेट करना नहीं होती. चुनौती यह है कि ऐसा जवाब जनरेट किया जाए जो समय पर मिले, भरोसेमंद हो, कार्रवाई करने लायक हो, और इंसानों की विशेषज्ञता के मुताबिक हो.
इस कोडलैब में, आपको रेसिंग कोच सिम्युलेटर बनाने का तरीका बताया जाएगा. यह सिम्युलेटर, इन आइडिया को दिलचस्प तरीके से दिखाता है. यह ऐप्लिकेशन, वर्चुअल रेस कार से टेलीमेट्री का इस्तेमाल करता है. इससे ट्रैक पर कार के मूवमेंट को ऐनिमेट किया जाता है और कोचिंग से जुड़ी सलाह जनरेट की जाती है. हालांकि, रेसिंग एक उदाहरण है, लेकिन आर्किटेक्चर से जुड़े यही सिद्धांत, स्वास्थ्य सेवा, मैन्युफ़ैक्चरिंग, लॉजिस्टिक्स, और अन्य ऐसे डोमेन पर भी लागू होते हैं जहां भरोसे का महत्व होता है.
आपको टेलीमेट्री डेटा की हाई-वेलोसिटी स्ट्रीम के साथ काम करना होगा. साथ ही, इसे ऐसे फ़ॉर्म में बदलना होगा जो एआई के लिए फ़ायदेमंद और असरदार हो. इसके अलावा, आपको एलएलएम पर आधारित आउटपुट को एन्कोड की गई मानवीय गाइडेंस के साथ जोड़ना होगा, ताकि ज़्यादा भरोसेमंद जवाब जनरेट किए जा सकें.
आपको क्या बनाना है
इस कोडलैब में, आपको भरोसेमंद एआई प्रोटोटाइप बनाने के बारे में बताया जाएगा. यह प्रोटोटाइप:
- Google Cloud में चल रही वर्चुअल रेस कार से टेलीमेट्री स्ट्रीम करता है
- Chrome का इस्तेमाल करके, रेसट्रैक पर घूमती हुई कार को विज़ुअलाइज़ करता है
- यह फ़ंक्शन, रॉ टेलीमेट्री डेटा को एआई के लिए तैयार इनपुट में बदलता है
- Google Gemini की मदद से, रणनीति की लेयर लागू करता है
- मॉडल के आउटपुट को, एन्कोड की गई मानवीय गाइडेंस और सुरक्षा से जुड़े नियमों के साथ जोड़ता है
- Delivers Coaching Feedback Through A User-Facing Interface
आपको क्या सीखने को मिलेगा
इस कोडलैब को पूरा करने के बाद, ये काम किए जा सकेंगे:
- बताओ कि एआई सिस्टम को ज़्यादा भरोसेमंद क्या बनाता है
- मॉड्यूलर एआई आर्किटेक्चर का मकसद बताना
- सिम्युलेट की गई टेलीमेट्री की एक सामान्य पाइपलाइन बनाना
- एलएलएम के साथ इस्तेमाल करने के लिए, काम का और स्ट्रक्चर्ड डेटा तैयार करना
- भरोसा बढ़ाने के लिए, एआई के इस्तेमाल से जुड़े दिशा-निर्देशों और इंसानों के बनाए गए नियमों को लागू करना
- यह आकलन करना कि इस आर्किटेक्चर को अन्य डोमेन पर कैसे लागू किया जा सकता है
2. आपको इन चीज़ों की ज़रूरत होगी
शुरू करने से पहले, पक्का करें कि आपके पास ज़रूरी खाते, टूल, और सेवाएं तैयार हों.
ज़रूरी शर्तें
आपके पास ये चीज़ें होनी चाहिए:
- Gmail पते का इस्तेमाल करने वाला निजी Google खाता
- Google Cloud का ऐक्सेस और सीएलआई की बुनियादी जानकारी
- चालू बिलिंग खाता या क्लाउड क्रेडिट
- Gemini का इस्तेमाल करके, Google Cloud और जनरेटिव एआई के बारे में बुनियादी जानकारी
Gemini, Google का एआई मॉडल है. इसे बेहतरीन तर्क के आधार पर बनाया गया है. यह आपके हर आइडिया को हकीकत में बदलने में मदद करता है. यह मल्टीमॉडल कॉन्टेंट को समझने के साथ-साथ एजेंटिक और वाइब कोडिंग के लिए एक बेहतरीन मॉडल है.

Google Cloud का इस्तेमाल करने के लिए क्रेडिट पाना
क्रेडिट पाने के लिए, इस लिंक पर जाएं और Gmail ईमेल पते (gmail.com डोमेन) से लॉग इन करें. इसके बाद, Google Cloud Platform (GCP) के अपने बिलिंग खाते में क्रेडिट स्वीकार करें. ऐसा करने पर, क्रेडिट आपके खाते में लागू हो जाएंगे.
3. भरोसेमंद एआई क्यों ज़रूरी है
कई एआई सिस्टम, धाराप्रवाह और भरोसेमंद जवाब दे सकते हैं. हालांकि, धाराप्रवाह जवाब देना, भरोसेमंद जवाब देने जैसा नहीं है. असल दुनिया के सिस्टम में, उपयोगकर्ताओं को अक्सर समय पर, भरोसेमंद जवाबों की ज़रूरत होती है. ये जवाब, सुरक्षा से जुड़े नियमों के मुताबिक होने चाहिए और इन्हें विषय के जानकारों ने तैयार किया होना चाहिए.
यह तब खास तौर पर ज़रूरी हो जाता है, जब कोई सिस्टम तेज़ी से बदल रहे डेटा पर काम करता है. बहुत देर से मिलने वाला जवाब किसी काम का नहीं होता. ऐसा जवाब जो आत्मविश्वास से भरा हो, लेकिन उसमें ज़रूरी संदर्भ शामिल न हो, वह गुमराह करने वाला हो सकता है. अगर किसी जवाब में इंसानी विशेषज्ञता का इस्तेमाल नहीं किया गया है, तो उस पर भरोसा करना मुश्किल हो सकता है. भले ही, वह जवाब कितना भी सटीक लगे.
इस कोडलैब में रेसिंग कार के उदाहरण का इस्तेमाल किया गया है. इसमें समस्या यह नहीं है कि एआई कोई दिलचस्प बात कह सकता है या नहीं. समस्या यह है कि क्या सिस्टम ऐसी सलाह दे सकता है जो काम की हो, सुरक्षित हो, समय पर दी गई हो, और स्थिति के हिसाब से सही हो.
आइए, टेलीमेट्री के एक छोटे से सैंपल को देखें और दो संभावित आउटपुट की तुलना करें:
Racing Car Telemetry Data
{
"speedMph": 118,
"throttle": 91,
"frontGrip": "nominal",
"rearGrip": "low",
"trackPosition": "Turn 1 Entry"
}
एआई से मिला जवाब, जिसमें तथ्यों की कमी हो
"Stay aggressive on the throttle and carry your speed into Turn 1"
भरोसेमंद जवाब
"Rear grip is low at Turn 1 entry. Reduce your throttle slightly and prioritize a stable corner entry"
क्या आपको कोई अंतर दिखा?
अगर हम सिर्फ़ एआई के जवाब पर भरोसा करें, तो क्या होगा?
पहले जवाब में भरोसेमंद जानकारी दी गई है, लेकिन इसमें जोखिम के बारे में नहीं बताया गया है. दूसरा जवाब ज़्यादा मददगार है, क्योंकि इसमें कॉन्टेक्स्ट और पाबंदी के बारे में बताया गया है.
एलएलएम को पूरे सिस्टम के तौर पर मानने के बजाय, आपको इसे भरोसेमंद बनाने के लिए, इसे बड़े आर्किटेक्चर के एक हिस्से के तौर पर मानना होगा. इसके अलावा, कई ऐप्लिकेशन में सलाह को इतनी तेज़ी से डिलीवर करने की ज़रूरत होती है कि उस पर कार्रवाई की जा सके. जैसे, रेसकार, मेडिकल प्रक्रिया, विमानन, पावर ग्रिड, ट्रेडिंग सिस्टम, समुद्री नेविगेशन वगैरह.
अब, इस तरह का आर्किटेक्चर बनाने का तरीका जानते हैं.
4. हाई-वेलोसिटी एआई और मॉड्यूलर भरोसेमंद आर्किटेक्चर के बारे में जानकारी
कुछ एआई सिस्टम को अलग-अलग तरह के व्यवहार की ज़रूरत होती है. उन्हें बदलती परिस्थितियों के हिसाब से तुरंत जवाब देना चाहिए. साथ ही, उन्हें सोच-समझकर दिए गए जवाबों के लिए भी काम करना चाहिए.
मॉड्यूलर आर्किटेक्चर, इन ज़िम्मेदारियों को अलग-अलग पाथ में बांटता है. एक पाथ रिफ़्लेक्सिव हो सकता है. यह तुरंत आने वाले सिग्नल की व्याख्या करता है. दूसरे पाथ में रणनीति पर फ़ोकस किया जा सकता है. इससे, ज़्यादा बेहतर तरीके से तर्क करने और ज़्यादा कॉन्टेक्स्ट के हिसाब से फ़ैसले लेने में मदद मिलती है. अन्य पाथ, अलग-अलग तरह की सुविधाओं को टारगेट करते हैं.

कुछ फ़ैसले रीयल-टाइम में लिए जाने चाहिए. कुछ फ़ैसले लेने के लिए, ज़्यादा समय तक सोच-विचार करना ज़रूरी होता है.
भरोसेमंद एआई को अक्सर दोनों की ज़रूरत होती है.
आर्किटेक्चर को अलग-अलग करने से, सिस्टम को बेहतर तरीके से काम करने में मदद मिलती है. साथ ही, एआई की मदद से बेहतर सुझाव भी मिलते हैं. इससे, इंसानों के दिशा-निर्देशों के हिसाब से तय की गई पाबंदियों और डोमेन के बारे में जानकारी देने के लिए, एक साफ़-सुथरा प्लैटफ़ॉर्म भी मिलता है.
इस छोटे से प्रोग्राम में, हमने रिफ़्लेक्स पाथ और रणनीति पाथ को Python फ़ंक्शन के तौर पर लागू किया है.
const telemetry = {
speed: 147,
grip: 0.68,
corner_type: "sharp",
lap_trend: "entering_corners_too_fast",
};
function reflexPath(event: typeof telemetry): string {
if (event.grip < 0.70) {
return "REFLEX: Reduce throttle now";
}
return "REFLEX: No urgent issue";
}
function strategyPath(event: typeof telemetry): string {
if (event.lap_trend === "entering_corners_too_fast") {
return "STRATEGY: Brake earlier and prioritize corner exit";
}
return "STRATEGY: Driving pattern looks stable";
}
console.log(reflexPath(telemetry));
console.log(strategyPath(telemetry));
एक ही टेलीमेट्री डेटा के लिए, दोनों फ़ंक्शन अलग-अलग तरीके से काम करते हैं. रिफ़्लेक्स फ़ंक्शन, तुरंत चेतावनी देता है. रणनीति फ़ंक्शन, नियमों के आधार पर हमें कोचिंग से जुड़ी सलाह देता है.
आपको क्यों लगता है कि इस लॉजिक को अलग रखना फ़ायदेमंद है?
अब हम एक मज़ेदार ऐप्लिकेशन बनाते हैं, जिसमें कई हिस्से होंगे. इससे हम देखेंगे कि यह आर्किटेक्चर, तेज़ी से जवाब देने और बेहतर तरीके से तर्क देने की क्षमता को, भरोसेमंद एआई सिस्टम में कैसे बदलता है. इस सिस्टम का इस्तेमाल किया जा सकता है.
5. टेलीमेट्री स्ट्रीमिंग सर्वर बनाना
अब जब आपको आर्किटेक्चर के लक्ष्य के बारे में पता चल गया है, तो ऐप्लिकेशन को चलाने वाली डेटा पाइपलाइन बनाने का समय आ गया है.
इस सेक्शन में, वर्चुअल रेस कार के लिए एक सामान्य टेलीमेट्री स्ट्रीम बनाई जाएगी. डेटा, जीपीएस या ट्रैक-पोज़िशन का डेटा रखने वाले CSV सोर्स से मिलेगा. आपका ऐप्लिकेशन, इसे लाइव स्ट्रीम में बदल देगा. इसका इस्तेमाल यूज़र इंटरफ़ेस (यूआई) और एआई लेयर कर सकती है.
इस सेक्शन में, आपको यह जानकारी मिलेगी:
- स्ट्रीमिंग सर्वर और ऐप्लिकेशन के लिए, Google Cloud में नया प्रोजेक्ट बनाना
- टेलीमेट्री डेटा भेजने के लिए, छोटा सर्वर बनाना
- उन इवेंट को ब्राउज़र यूज़र इंटरफ़ेस (यूआई) या कंसोल पर स्ट्रीम करना
1. Cloud Shell खोलें
A. Google Cloud Console पर जाएं.
B. इस कोडलैब के लिए नया प्रोजेक्ट बनाएं. सबसे ऊपर मौजूद, प्रोजेक्ट के ड्रॉपडाउन मेन्यू पर क्लिक करें.

प्रोजेक्ट बनाते समय, बिलिंग खाते को लिंक करने का विकल्प मिलता है:
अगर आपने पहले ही कोई प्रोजेक्ट बना लिया है, तो बाईं ओर मौजूद पैनल खोलें. इसके बाद, Billing पर क्लिक करें और देखें कि बिलिंग खाता, इस GCP खाते से लिंक है या नहीं.
C. Gemini API पासकोड पाना
Google Cloud क्रेडिट चालू करने के बाद, आपको Google Cloud में Gemini को ऐक्सेस करने के लिए, Gemini API कुंजी की ज़रूरत होगी.
Gemini API पासकोड बनाने के लिए, हमें Google Vertex AI Studio का इस्तेमाल करना होगा.
Vertex AI Studio में, सबसे नीचे बाईं ओर "दस्तावेज़" के ऊपर मौजूद, "एपीआई पासकोड पाएं" पर क्लिक करें. Gemini के लिए एक एपीआई पासकोड बनाएं. यह देखने में, वर्णों की एक लंबी स्ट्रिंग की तरह होता है. इस पासकी को किसी सुरक्षित जगह पर सेव करें. हम इस एपीआई पासकोड का इस्तेमाल, छठे चरण "रेसिंग कार सिम्युलेटर बनाना" में करेंगे. इससे Google Cloud में Gemini को ऐक्सेस करने की हमारी पुष्टि हो पाएगी.
डी॰ ब्राउज़र पर आधारित टर्मिनल खोलने के लिए, सबसे ऊपर मौजूद बार में Cloud Shell आइकॉन (टर्मिनल आइकॉन) पर क्लिक करें.
ई॰ टर्मिनल सेशन शुरू होने का इंतज़ार करें.

2. कोड प्राप्त करें
मास्टर रेपो का क्लोन बनाएं.
git clone https://github.com/ocupop/trustable-ai-codelab.git
cd trustable-ai-codelab
ध्यान दें कि इस रेपो में दो फ़ोल्डर हैं: "koru-application" (वेब ऐप्लिकेशन) और "streaming-telemetry-server" (सिम्युलेटेड रीयल-टाइम रेस कार टेलीमेट्री). इस चरण में, "streaming-telemetry-server" के बारे में बताया गया है. हम अगले चरण में "koru-application" का इस्तेमाल करेंगे.
3. ज़रूरी एपीआई चालू करना
हर प्रोजेक्ट के लिए एक बार चलाएं:
# Set Project ID
gcloud config set project YOUR_PROJECT_ID
# Enable APIs
gcloud services enable \
run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com
YOUR_PROJECT_ID की जगह अपना असल प्रोजेक्ट आईडी डालें. अगर प्रोजेक्ट पहले से सेट है, तो पहली लाइन को छोड़ दें.
आपको प्रोजेक्ट की सूची में YOUR_PROJECT_ID मिल सकता है

4. बैकएंड को Cloud Run पर डिप्लॉय करना
रिपो रूट से (यानी, पक्का करें कि आप trustable-ai-codelab फ़ोल्डर में हों):
gcloud run deploy streaming-telemetry-server \
--source streaming-telemetry-server \
--platform managed \
--region us-central1 \
--allow-unauthenticated
ध्यान दें कि प्रॉम्प्ट मिलने पर, आपको ‘Y' दबाना पड़ सकता है
- पहली बार चलाने पर, आपको एपीआई चालू करने या Artifact Registry रेपो बनाने के लिए कहा जा सकता है. अपनी ज़रूरत के हिसाब से इसे स्वीकार करें.
- अगर आपने
us-central1के अलावा किसी दूसरे क्षेत्र का इस्तेमाल किया है, तो--regionका इस्तेमाल करके उस क्षेत्र के बारे में बताएं - डिप्लॉयमेंट पूरा होने पर, gcloud service-URL प्रिंट करता है. टेलीमेट्री सर्वर के लिए इस यूआरएल को पूरे एंडपॉइंट के तौर पर इस्तेमाल करने के लिए, हमें इसमें "events" जोड़ना होगा.
5. स्ट्रीम के यूआरएल का इस्तेमाल करना
टेलीमेट्री सर्वर अब Server-Sent-Events (एसएसई) का इस्तेमाल करके, सिम्युलेट किया गया टेलीमेट्री डेटा भेज रहा है. यह डेटा, इस फ़ॉर्मैट के एंडपॉइंट पर भेजा जा रहा है :
service-URL/events // service-URL - the last line displayed by "deploy"
ब्राउज़र में टेस्ट करें: Chrome का इस्तेमाल करके, इस स्ट्रीम एंडपॉइंट यूआरएल पर जाएं. आपको ब्राउज़र में स्ट्रीम किया गया डेटा दिखेगा. यह डेटा, रेसिंग कार के सेंसर से मिलने वाले डेटा जैसा होगा.

कनेक्शन बंद करने के लिए, ब्राउज़र टैब को बंद करें.
curl की मदद से टेस्ट करना:
अब शेल कमांड लाइन से टेस्ट करते हैं.
curl -N service-URL/events # Replace service-URL with actual deployment endpoint
आपको क्लाउड शेल विंडो में, स्ट्रीम किया गया डेटा दिखेगा.

हम इस टेलीमेट्री डेटा का इस्तेमाल, रेसिंग कार में लगे सेंसर से मिलने वाले डेटा को सिम्युलेट करने के लिए करेंगे. कोडलैब के बाकी हिस्से में इस डेटा का इस्तेमाल किया जाएगा. टर्मिनल विंडो में CTRL-C डालकर, curl प्रोग्राम को बंद किया जा सकता है.
आपको किन बातों का ध्यान रखना चाहिए
इस सेक्शन को भरते समय, आने वाले डेटा के टाइप पर ध्यान दें. रॉ टेलीमेट्री डेटा अक्सर बहुत ज़्यादा होता है. साथ ही, यह समय के हिसाब से बदलता रहता है. इसलिए, एआई के अनुमान लगाने के लिए इसका तुरंत इस्तेमाल नहीं किया जा सकता. फ़्रंट-एंड ऐप्लिकेशन बनाने के बाद, हमें रॉ डेटा को ऐसे फ़ॉर्मैट में फ़िल्टर करना होगा जिसे एलएलएम तेज़ी से प्रोसेस कर सके.
हालांकि, इससे पहले डेटा को विज़ुअलाइज़ करने के लिए, वेब फ़्रंट-एंड बनाते हैं.
6. रेसिंग कार सिम्युलेटर बनाना
इस सेक्शन में, आपको यह जानकारी मिलेगी:
- रेसिंग कार चलाने जैसा अनुभव देने वाला सिम्युलेशन बनाना
- टेलीमेट्री सर्वर को रेसिंग कार के वेब ऐप्लिकेशन से कनेक्ट करना
- सिम्युलेट की गई रेस देखना
इस समय, हमारे पास क्लाउड में चल रही रेसिंग कार से टेलीमेट्री का वर्किंग सिम्युलेशन है. अब हम ऐसा ऐप्लिकेशन बनाएंगे जो आपकी लोकल मशीन पर चलता है, Google Cloud से कनेक्ट होता है, और उस डेटा को दिखाता है.
हमारा भरोसेमंद एआई ऐप्लिकेशन, Google Cloud की सेवाओं और Chrome में चलने वाले लोकल इंटेलिजेंस, दोनों की सुविधाओं का इस्तेमाल करता है.
स्ट्रीमिंग टेलीमेट्री सेवा, Google Cloud में चलती है. हालांकि, रेसिंग कार ऐप्लिकेशन आपकी लोकल मशीन पर चलता है. इसका मतलब है कि आपको रिपॉज़िटरी को फिर से क्लोन करना होगा. इस बार, इसे अपने लैपटॉप या डेस्कटॉप कंप्यूटर पर क्लोन करें.
आसानी के लिए, एक ही डेटाबेस में स्ट्रीमिंग सर्वर और रेसिंग कार ऐप्लिकेशन, दोनों का कोड मौजूद है.
GitHub से फ़्रंट-एंड ऐप्लिकेशन को क्लोन करें:
git clone https://github.com/ocupop/trustable-ai-codelab.git
cd trustable-ai-codelab
लैपटॉप या डेस्कटॉप पर रेपो क्लोन हो जाने के बाद, ऐप्लिकेशन को चलाएं.
cd koru-application # racing car simulation app
npm install
npm run dev

Chrome में, अपनी लोकल मशीन पर पोर्ट खोलें (ऊपर दिए गए उदाहरण में http://localhost:5173 के तौर पर). आपको "एआई मोटरस्पोर्ट कोचिंग" ऐप्लिकेशन का लैंडिंग पेज दिखेगा.

"डैशबोर्ड खोलें ->" बटन पर क्लिक करें. इससे ऐप्लिकेशन का यूज़र इंटरफ़ेस (यूआई) शुरू हो जाएगा.

इस समय, आपके पास Google Cloud में रेस-कार की टेलीमेट्री जनरेट करने वाला टेलीमेट्री सर्वर और एक लोकल वेब ऐप्लिकेशन है. यह ऐप्लिकेशन, उस डेटा को विज़ुअलाइज़ कर सकता है और एलएलएम से कनेक्ट हो सकता है. आइए, इन्हें कनेक्ट करते हैं. साथ ही, Gemini LLM की सेवाओं से भी कनेक्ट करते हैं.
ऐप्लिकेशन के सबसे ऊपर दाएं कोने में मौजूद, गियर आइकॉन (सेटिंग) पर क्लिक करें.

दूसरे चरण में मिला Gemini API पासकोड डालें. इससे आपको Google Cloud में Gemini की सेवाओं का ऐक्सेस मिलता है.
"सेव करें" पर क्लिक करें, ताकि ऐप्लिकेशन को आपका एपीआई पासकोड याद रहे.
अब ऐप्लिकेशन को टेलीमेट्री सर्वर से कनेक्ट करते हैं. ऐप्लिकेशन के डैशबोर्ड में, "लाइव सेशन" पर क्लिक करें.

टेक्स्ट फ़ील्ड में, क्लाउड पर आधारित टेलीमेट्री सर्वर (पांचवां चरण) का यूआरएल डालें. यह फ़ील्ड "SSE URL or .txt file path" के नाम से है. हमारा एसएसई यूआरएल इस फ़ॉर्म में था:
https://streaming-telemetry-server-${PROJECT_NUMBER}.${REGION}.run.app/events
टेलीमेट्री सर्वर के एंडपॉइंट का यूआरएल डालने के बाद, "कनेक्ट करें" पर क्लिक करें. यह टेक्स्ट फ़ील्ड के दाईं ओर मौजूद होता है. यूआरएल के आखिर में "events" जोड़ना न भूलें.
अब आपको ऐप्लिकेशन में, सिम्युलेट किया गया डेटा दिखेगा!
अगर स्पीकर का वॉल्यूम बढ़ा हुआ है, तो आपको अलग-अलग तरह के कोच से कार रेसिंग के बारे में सलाह सुनाई देगी. हर कोच की अपनी अलग पर्सनैलिटी होती है. अलग-अलग कोच चुनकर देखें. इससे आपको रेसिंग के बारे में उनकी अलग-अलग सलाह और बोलने के अलग-अलग तरीके देखने को मिलेंगे. अगर आपको ऑडियो बंद करना है, तो स्पीकर आइकॉन पर क्लिक करके ऐसा किया जा सकता है.

अब हमारे पास एक ऐप्लिकेशन है. आइए, अब यह जानते हैं कि हमने एलएलएम के ज़रिए डेटा को बेहतर तरीके से प्रोसेस करने के लिए, डेटा को कैसे तैयार किया. साथ ही, हम पूरे सिस्टम पर भरोसे को बढ़ाने के लिए, अतिरिक्त सुविधाएं कैसे जोड़ सकते हैं.
7. एआई की मदद से समस्या का पता लगाने के लिए टेलीमेट्री तैयार करना
रॉ टेलीमेट्री, सिम्युलेशन के लिए काम की होती है. हालांकि, यह आम तौर पर बहुत ज़्यादा जानकारी वाली होती है और इसे एलएलएम को सीधे तौर पर नहीं भेजा जा सकता. अगर टेलीमेट्री डेटा को बिना किसी बदलाव के भेजा जाता है, तो इससे लेटेन्सी बढ़ सकती है, नॉइज़ आ सकती है, और मिलने वाले सुझावों की क्वालिटी कम हो सकती है.
इस सेक्शन में, टेलीमेट्री को ज़्यादा काम के फ़ॉर्म में बदला जाएगा.
इस सेक्शन में, आपको यह जानकारी मिलेगी:
- टेलीमेट्री के रॉ JSON की जांच करना
- यह पहचान करना कि तर्क के लिए कौनसे फ़ील्ड सबसे ज़्यादा काम के हैं
- डेटा को फ़िल्टर करना या उसकी खास जानकारी पाना
- गैर-ज़रूरी जानकारी को कम करना
- ड्राइविंग की स्थिति को एआई के हिसाब से तैयार करना
भरोसेमंद एआई बनाने के लिए यह एक अहम कदम है. जवाब की क्वालिटी सिर्फ़ मॉडल पर निर्भर नहीं करती, बल्कि मॉडल को मिले डेटा के स्ट्रक्चर और उसकी अहमियत पर भी निर्भर करती है.
अब रेसिंग कारों के लिए खास डेटा एक्सप्लोर करते हैं. हम ऐप्लिकेशन में कुछ वैल्यू बदलकर, उसे फिर से लोड करके, और नतीजे देखकर एक्सपेरिमेंट कर सकते हैं.
../src/services/telemetryStreamService.ts near line 180
// Clamp G-forces
gLat = Math.max(-3, Math.min(3, gLat)); // sideways G-force
gLong = Math.max(-3, Math.min(3, gLong)); // front/back G-force
कार में जी-फ़ोर्स, ऐक्सलरेशन या डीऐक्सलरेशन को मेज़र करते हैं. रेसिंग कार में, जी-फ़ोर्स को समझने से कार को हैंडल करने और उसकी परफ़ॉर्मेंस को बेहतर बनाने में मदद मिलती है. अगर हमारे ऐप्लिकेशन में यह जानकारी नहीं है, तो ड्राइवर को सलाह देना मुश्किल हो जाता है. उन दो लाइनों को कमेंट आउट करें, gLat और gLong, दोनों की वैल्यू को 0.0 पर सेट करें, और ऐप्लिकेशन को फिर से चलाएं.
ध्यान दें कि जब कार किसी कोने के पास पहुंचती है, तो कोई सलाह नहीं दी जाती है. यह रेस ड्राइवर के लिए ज़्यादा मददगार नहीं है!
इसके बाद, किए गए बदलाव को पहले जैसा करें और ऐप्लिकेशन को फिर से चलाएं. क्या आपने ध्यान दिया कि कार के किसी कोने पर पहुंचने पर, ऑडियो से जुड़ी सलाह मिलती है? ड्राइवर को सलाह देने के लिए, जी-फ़ोर्स के डेटा पॉइंट ज़रूरी होते हैं.
अब हम कार की रफ़्तार को 30 मील प्रति घंटे तक सीमित कर देते हैं. इस स्पीड से हम कोई रेस नहीं जीत पाएंगे. हालांकि, इससे यह ज़रूर पता चलेगा कि हमें किस तरह की ट्रेनिंग मिलती है.
उसी फ़ाइल (telemetryStreamService.ts) में लाइन 158 के पास, आपको processPoint() फ़ंक्शन दिखेगा. आइए, इस फ़ंक्शन में स्पीड को सीमित करें.
बदलें:
private processPoint(point: GpsSSEPoint) {
...
const speedKmh = point.speed > 200 ? point.speed : point.speed * 3.6;
...
इन्हें भेजें:
private processPoint(point: GpsSSEPoint) {
...
let speedKmh = point.speed > 200 ? point.speed : point.speed * 3.6;
speedKmh = Math.min(speedKmh, 48); // 48 kmh is approx 30 mph
...
ऐप्लिकेशन को फिर से चलाएं. अब हमें किस तरह की कोचिंग की सलाह मिलती है? अगर हम आराम से गाड़ी चला रहे हैं, तो हमें ज़्यादा ईंधन की ज़रूरत नहीं होती!
अब उन बदलावों को पहले जैसा करें और ऐप्लिकेशन को फिर से चलाएं.
साफ़ तौर पर कहा जा सकता है कि कार की स्पीड, एक अहम डेटा पॉइंट है. यह समझना बहुत ज़रूरी है कि सलाह देने के लिए, कौन-कौनसा डेटा ज़रूरी है. यह भी उतना ही ज़रूरी है कि यह पता लगाया जाए कि कौनसा डेटा काम का नहीं है.
आपको यहां सुरक्षा और भरोसे के बारे में भी सोचना चाहिए. अच्छी तरह से तैयार किए गए इनपुट से भी, भरोसेमंद जवाब मिलने की गारंटी नहीं होती. हमें अब भी, इंसानों के बनाए गए नियमों और साफ़ तौर पर बताई गई पाबंदियों को लागू करना होगा.
डेटा तैयार करना, सिर्फ़ प्रीप्रोसेसिंग का चरण नहीं है. यह भरोसा बढ़ाने की रणनीति का एक अहम हिस्सा है. साफ़ इनपुट से, ज़्यादा सटीक और भरोसेमंद आउटपुट मिलते हैं.
8. सुरक्षा के दिशा-निर्देश और एन्कोड की गई मानवीय विशेषज्ञता जोड़ना
भरोसेमंद एआई सिस्टम को सिर्फ़ मॉडल के आउटपुट पर निर्भर नहीं रहना चाहिए. कई मामलों में, सबसे भरोसेमंद सिस्टम में लार्ज लैंग्वेज मॉडल की तार्किकता के साथ-साथ, साफ़ तौर पर बताए गए नियम, डोमेन की जानकारी, और इंसानों के बताए गए प्रतिबंधों को शामिल किया जाता है.
इस सेक्शन में, आपको वह लेयर जोड़नी होगी.
इस लेयर को, कोडिंग के ज़रिए तैयार की गई कोचिंग की जानकारी के तौर पर देखा जा सकता है. इसमें जवाब देने के पसंदीदा पैटर्न, पुष्टि करने के नियम, सुरक्षा जांच या स्ट्रक्चर्ड गाइडेंस शामिल हो सकता है. इससे सिस्टम को भरोसेमंद और मददगार बने रहने में मदद मिलती है.
इस सेक्शन में, आपको यह जानकारी मिलेगी:
- जवाब देने से जुड़े ऐसे नियम लागू करना जिनसे मॉडल के व्यवहार पर असर पड़ता है
- गुमराह करने वाली सलाह को कम करने के लिए, सुरक्षा जांच लागू करना
- पाइपलाइन में, एन्कोड की गई मानवीय विशेषज्ञता को शामिल करना
- इन बदलावों से पहले और बाद में, जवाबों की तुलना करना
आइए, जानते हैं कि हमारे ऐप्लिकेशन में डोमेन के बारे में विशेषज्ञता कैसे जोड़ी जाती है.
एलएलएम को आम तौर पर रेसिंग या रेस कार की परफ़ॉर्मेंस के फ़िज़िक्स के बारे में ट्रेनिंग नहीं दी जाती है. अगर हमारे ऐप्लिकेशन में डोमेन से जुड़ी विशेषज्ञता शामिल होती, तो उपयोगकर्ता इसके सुझावों पर ज़्यादा भरोसा कर पाते. ये दिशा-निर्देश, इंसानी विशेषज्ञता पर आधारित नियमों से मिलते हैं. दूसरे शब्दों में कहें, तो यह डोमेन की विशेषज्ञता वाली लेयर होती है.
../src/utils/coachingKnowledge.ts near line 115
...
export const RACING_PHYSICS_KNOWLEDGE = `
CORE PRINCIPLES:
1. **The Friction Circle:** A tire has 100% grip. If you use 100% for braking, you have 0% for turning.
- *Error:* Turning while 100% braking = Understeer (Plowing).
- *Fix:* "Trail braking" (releasing brake pressure as steering angle increases).
2. **Weight Transfer:**
- Braking shifts weight forward (Front grip UP, Rear grip DOWN).
- Accelerating shifts weight backward (Front grip DOWN, Rear grip UP).
- *Error:* Lifting off throttle mid-corner shifts weight forward abruptly -> Oversteer (Spin risk).
3. **The racing line:**
...
इन सिद्धांतों का पालन करके, भरोसेमंद आउटपुट जनरेट किया जाता है. अगर हमारे पास यह विशेषज्ञता न हो, तो क्या होगा? Let's find out.
हम RACING_PHYSICS_KNOWLEDGE को हटाते हैं और रेसिंग से जुड़ी सलाह देखते हैं.
export const RACING_PHYSICS_KNOWLEDGE = ``;
ऐप्लिकेशन को फिर से चलाएं. अब हमें किस तरह की कोचिंग की सलाह मिलती है?
सामान्य सलाह पर ध्यान दें.
हमें अब फ़्रिक्शन, वज़न ट्रांसफ़र, एग्ज़िट स्पीड वगैरह के बारे में ज़्यादा जानकारी नहीं मिलती. इस जानकारी के बिना, हम पर भरोसा कम किया जाता है. रेसिंग से जुड़ी अपनी विशेषज्ञता को वापस लाएं और ऐप्लिकेशन को फिर से चलाएं.
यह चरण, भरोसेमंद एआई सिस्टम का एक अहम पहलू है. बेहतर प्रॉम्प्ट से, भरोसेमंद कॉन्टेंट अपने-आप नहीं बन जाता. सिस्टम के डिज़ाइन और गंभीरता से सोचने-समझने की क्षमता से भरोसा बढ़ता है.
एलएलएम, समाधान का हिस्सा है, लेकिन यह पूरा समाधान नहीं है. जब एआई के आउटपुट में, इंसानों के पास मौजूद जानकारी का इस्तेमाल किया जाता है, तो उस पर भरोसा बढ़ता है.
9. कोचिंग पर्सोना और उपयोगकर्ता अनुभव डिज़ाइन करना
रीज़निंग पाइपलाइन सेट अप करने के बाद, अगला सवाल यह है कि सिस्टम को उपयोगकर्ता के साथ कैसे कम्यूनिकेट करना चाहिए.
इस सेक्शन में, आपको कोचिंग के अनुभव को बेहतर बनाने के लिए यह तय करना होगा कि रणनीति तय करने वाली लेयर, ड्राइवर से कैसे कम्यूनिकेट करेगी. आपको कोचिंग देने वाले किसी एक पर्सोना के लिए सिस्टम प्रॉम्प्ट को बेहतर बनाना होगा. साथ ही, यह तय करना होगा कि उसके दिशा-निर्देशों को कैसे दिया जाना चाहिए, ताकि वे साफ़ तौर पर समझ में आएं, समय पर मिलें, और सबसे ज़रूरी बात यह है कि उन पर कार्रवाई की जा सके.
इस सेक्शन में, आपको यह जानकारी मिलेगी:
- कोचिंग की भूमिका के लिए, सिस्टम प्रॉम्प्ट बनाना या उसे बेहतर बनाना
- कोचिंग के अलग-अलग तरीके आज़माएं
- देखें कि प्रॉम्प्ट में किए गए बदलावों से जवाबों पर क्या असर पड़ता है
- भरोसेमंद सुझाव पाने के लिए, यूज़र इंटरफ़ेस (यूआई) से जुड़ी ज़रूरी शर्तें तय करना
- ज़रूरी और गैर-ज़रूरी मैसेज के लिए, लिखाई को बोली में बदलने की सुविधा (टीटीएस) के बारे में जानकारी
हमारे ऐप्लिकेशन में कई कोचिंग पर्सोना शामिल हैं. इनमें से हर एक, अलग-अलग तरह की कोचिंग से जुड़ी सलाह देता है.
PERSONA | खास बातें |
Tony | प्रेरणा देने वाला, भावनाओं पर आधारित |
रेचल | तकनीकी, फ़िज़िक्स पर आधारित |
एजे | सीधे तौर पर दिए गए निर्देश |
Garmin | डेटा पर फ़ोकस करने वाला, डेल्टा ऑप्टिमाइज़ेशन |
सुपर एजे | अडैप्टिव, गड़बड़ी के टाइप के हिसाब से स्विच |
इन पर्सोना को ../src/utils/coachingKnowledge.ts फ़ाइल में तय किया गया है.
इस फ़ाइल में, आपको एक ऑब्जेक्ट मैप (COACHES) दिखेगा. यह स्ट्रिंग कुंजियों को CoachPersonas से जोड़ता है. CoachPersona में, हर तरह के कोच के एट्रिब्यूट शामिल होते हैं. एक ज़रूरी एट्रिब्यूट systemPrompt है. हर पर्सोना का अपना systemPrompt होता है, जो एलएलएम को यह बताता है कि उसे जवाब कैसे देना है.
आइए, इनमें से किसी एक system prompts में बदलाव करके देखते हैं कि एलएलएम कैसे जवाब देता है.
लाइन 31 के आस-पास, आपको "एजे" के लिए systemPrompt दिखेगा. एजे, सलाह देने के मामले में बहुत सीधी और साफ़ बात करता है. चलिए, इसे systemPrompt में बदलते हैं, ताकि एजे बहुत ज़्यादा विनम्रता से जवाब दे.
systemPrompt: `You are AJ, a race engineer that is excessively polite.
Use telemtry terminology. Be actionable
Examples: "Lat G settling. please throttle",
"Brake when its convenient."
Keep responses under 12 words. Never explain — just command.`
ऐप्लिकेशन को फिर से चलाएं. इसके बाद, कोच के तौर पर एजे को चुनें और देखें कि किस तरह के जवाब जनरेट होते हैं.
अब ओरिजनल systemPrompt को वापस लाएं और ऐप्लिकेशन को फिर से चलाएं. ध्यान दें कि सिस्टम प्रॉम्प्ट, एलएलएम को सही जवाब देने के लिए ज़रूरी है.
भरोसे का मतलब सिर्फ़ सही जानकारी देना नहीं है. यह डिलीवरी के बारे में भी है. तकनीकी तौर पर सही सलाह भी तब असरदार नहीं होती, जब वह साफ़ तौर पर न दी गई हो, सही समय पर न दी गई हो या ध्यान भटकाने वाली हो.
भरोसेमंद सिस्टम को अच्छी तरह से कम्यूनिकेट करना चाहिए. उपयोगकर्ता अनुभव, भरोसेमंद आर्किटेक्चर का हिस्सा है.
10. एंड-टू-एंड आर्किटेक्चर की समीक्षा करना
इस समय तक, आपने सिस्टम के मुख्य हिस्से बना लिए हैं. अब यह देखने का समय है कि ये दोनों सुविधाएं एक साथ कैसे काम करती हैं.
अब आपके ऐप्लिकेशन में ये कॉम्पोनेंट शामिल हैं:
- टेलीमेट्री स्ट्रीम
- विज़ुअलाइज़ेशन लेयर
- एआई की सुविधाओं वाला डेटा ट्रांसफ़ॉर्मेशन स्टेज
- तर्क करने वाले एलएलएम की मदद से काम करने वाले रणनीति कॉम्पोनेंट
- सुरक्षा से जुड़े दिशा-निर्देश और एन्कोड की गई मानवीय गाइडेंस
- उपयोगकर्ताओं को ट्रेनिंग देने का अनुभव
इन कॉम्पोनेंट के पूरे फ़्लो को समझने का एक आसान और मददगार तरीका यह है कि हम अपने ऐप्लिकेशन में लॉगिंग की सुविधा जोड़ें.
हम टेलीमेट्री डेटा को पाथ के हिसाब से देखने के लिए, लॉगिंग की सुविधा जोड़ेंगे.
सबसे पहले, टेलीमेट्री डेटा देखते हैं. telemetryStreamService.ts में, लाइन 212 के आस-पास (this.emit(frame) से पहले), एक ऐसी लाइन जोड़ें जो स्पीड, लैटरल जी-फ़ोर्स (साइडवे ऐक्सलरेशन) दिखाए. साथ ही, यह भी दिखाए कि ड्राइवर ब्रेक पैडल को कितनी तेज़ी से दबा रहा है.
console.log('FRAME', {
speed: frame.speed.toFixed(1),
gLat: frame.gLat.toFixed(2),
brake: frame.brake.toFixed(0) }
);
ऐप्लिकेशन को फिर से लोड करें. ऐप्लिकेशन चलाने से पहले, Chrome के DevTools में कंसोल खोलें, ताकि डीबग करने से जुड़ी यह जानकारी देखी जा सके.

ऐप्लिकेशन में, टेलीमेट्री एंडपॉइंट डालें और "कनेक्ट करें" पर क्लिक करें. अब आपको आने वाला टेलीमेट्री डेटा दिखेगा.
अब, रिफ़्लेक्स पाथ और रणनीति के पाथ के लिए लॉगिंग जोड़ते हैं.
../src/services/coachingService.ts में, this.emit() से पहले लाइन 71 के आस-पास, reflex पाथ के लिए लॉगिंग लाइन जोड़ें:
console.log('Reflex', {
action: rule.action,
text,
coach: this.coachId }
);
इसके बाद, उसी फ़ाइल में लाइन 287 के आस-पास, this.emit() से पहले, strategy पाथ के लिए मिलती-जुलती लॉगिंग लाइन जोड़ें. आइए, Gemini API से मिले कोचिंग रिस्पॉन्स text को जोड़ते हैं:
console.log('Strategy', {
coach: coach.id,
chars: text.length,
preview: text.slice(0, 60) }
);
ऐप्लिकेशन को फिर से चलाएं. आपको कंसोल में दिखेगा कि टेलीमेट्री डेटा, सोर्स से इन पाथ के ज़रिए कैसे फ़्लो करता है. इनकमिंग स्ट्रीम को फ़िल्टर किया जाता है. इसके बाद, इसे एलएलएम को भेजा जाता है. भरोसेमंद मानवीय विशेषज्ञता के ज़रिए इसकी पुष्टि की जाती है. इसके बाद, इसे उपयोगकर्ता को दिखाया जाता है. इसके लिए, सही यूज़र इंटरफ़ेस का इस्तेमाल किया जाता है.
ध्यान दें कि हमने भरोसेमंद एआई के बड़े लक्ष्य को पूरा करने के लिए, अलग-अलग तकनीकी कॉम्पोनेंट को कनेक्ट किया है. आर्किटेक्चर की वैल्यू, किसी एक कॉम्पोनेंट में मौजूद नहीं होती. वैल्यू इस बात पर निर्भर करती है कि ये हिस्से एक-दूसरे को कैसे मज़बूत करते हैं.
भरोसेमंद एआई, आर्किटेक्चर का नतीजा होता है, न कि कोई एक सुविधा.
सेवा को बंद करना (सेवा को हटाना)
जब आपको इस सेवा की ज़रूरत न हो, तो इसे हटाना न भूलें. ऐप्लिकेशन के साथ टेलीमेट्री सर्वर की जांच पूरी होने के बाद, आपको Cloud Run सेवा मिटा देनी चाहिए और इसके लिए बिलिंग बंद कर देनी चाहिए:
gcloud run services delete streaming-telemetry-server \
--region us-central1 \
--platform managed
अगर ज़रूरी हो, तो us-central1 की जगह उस क्षेत्र का नाम डालें जिसका इस्तेमाल आपने डिप्लॉय करते समय किया था. जब कहा जाए, तब पुष्टि करें.
11. चुनौतियां
अब मुख्य ऐप्लिकेशन काम कर रहा है और आपको अलग-अलग कॉम्पोनेंट के बारे में पता है. इसलिए, डिज़ाइन को बेहतर बनाने की कोशिश करें.
सुझाई गई चुनौतियां
- कोचिंग के ज़्यादातर लॉजिक को एज पर ले जाना
- बारिश या कम ट्रैक्शन के हिसाब से सिम्युलेशन में बदलाव करना
- जानें कि मॉडल ट्यूनिंग या फ़ाइन-ट्यूनिंग से परफ़ॉर्मेंस कैसे बेहतर हो सकती है
- आर्किटेक्चर को किसी अन्य डोमेन के हिसाब से ढालना. जैसे, चिकित्सा, मैन्युफ़ैक्चरिंग या लॉजिस्टिक्स
उदाहरण के लिए, इस लैब में सीखी गई बातों को किसी दूसरे डोमेन पर लागू करते समय, इन सवालों पर विचार करें:
- किसी दूसरे फ़ील्ड में रेसिंग टेलीमेट्री यानी लगातार डेटा के बराबर क्या है?
- कौनसे फ़ैसले तुरंत लिए जाने चाहिए और कौनसे फ़ैसले ज़्यादा रणनीतिक होते हैं?
- किस तरह की मानवीय विशेषज्ञता को कोड में शामिल करना होगा?
- उपयोगकर्ताओं को क्या देखना होगा, ताकि उन्हें सिस्टम पर भरोसा हो सके?
इन चुनौतियों से आपको रेसिंग के उदाहरण से आगे बढ़कर सोचने में मदद मिलती है. साथ ही, इस कोडलैब के पीछे भरोसेमंद होने के डिज़ाइन पैटर्न को समझने में मदद मिलती है.
12. खास जानकारी और अगले चरण
इस कोडलैब में, आपने रेसिंग डेमो से ज़्यादा चीज़ें बनाई हैं. आपने भरोसेमंद एआई सिस्टम को डिज़ाइन करने का एक बेहतरीन उदाहरण दिया है.
आपने रॉ टेलीमेट्री से शुरुआत की, उसे एलएलएम के लिए काम के फ़ॉर्मैट में बदला, एआई की मदद से तर्क लगाया, और एन्कोड की गई मानवीय गाइडेंस और जवाब की सीमाओं के साथ आउटपुट को बेहतर बनाया. इस दौरान, आपने देखा कि भरोसा, आर्किटेक्चर से मिलता है. सिर्फ़ मॉडल के आउटपुट से नहीं.
भरोसेमंद एआई सिस्टम में अक्सर ये शामिल होते हैं:
- स्ट्रक्चर्ड रीयल-टाइम डेटा
- मॉडल पर आधारित रीज़निंग
- डोमेन के बारे में जानकारी को कोड में बदला गया है
- साफ़ तौर पर बताए गए दिशा-निर्देश
- उपयोगकर्ता अनुभव को ध्यान में रखकर डिज़ाइन करना
रेसिंग के उदाहरण से इन आइडिया को समझने में मदद मिली. हालांकि, इसी तरीके का इस्तेमाल उन सभी जगहों पर किया जा सकता है जहां एआई से मिलने वाले सुझाव समय पर, कार्रवाई करने लायक, और भरोसेमंद होने चाहिए.
