🔥Build Complex AI Agents in Java Like a Pro with LangGraph4j | LangGraph4J Tutorial for beginner

Publicado em

Vídeo em Hindi, publicado pelo canal Learn Code With Durgesh.

इस सामग्री के बारे में: नीचे दिया गया सारांश, मुख्य बिंदु और विषय वीडियो की ट्रांसक्रिप्ट से स्वचालित रूप से तैयार किए गए हैं। वे वीडियो में प्रस्तुत सामग्री, राय, दावों और भविष्यवाणियों को दर्शाते हैं और IA Dots की ओर से किसी समर्थन, सत्यापन या तथ्य-जांच का प्रतिनिधित्व नहीं करते हैं।

वीडियो सारांश

यह वीडियो जावा में लैंग ग्राफ 4जे (LangGraph4j) का उपयोग करके कॉम्प्लेक्स एजेंटिक वर्कफ़्लो और मल्टी-एजेंट एप्लिकेशन बनाने की अवधारणा को समझाता है और इसका एक व्यावहारिक उदाहरण प्रस्तुत करता है।

मुख्य बिंदु

  • जावा में केवल चैटबॉट बनाने की तुलना में कॉम्प्लेक्स एजेंटिक मोड (जैसे प्लानर, डेवलपर और रिव्यूअर) बनाना अधिक चुनौतीपूर्ण होता है।
  • लैंग ग्राफ 4जे स्प्रिंग एआई और लैंग चेन 4जे को प्रतिस्थापित नहीं करता है, बल्कि यह जटिल ग्राफ-आधारित ऑर्केस्ट्रेशन और स्टेट मैनेजमेंट प्रदान करता है।
  • जटिल वर्कफ़्लो में आने वाली मुख्य समस्याओं में कॉम्प्लेक्स वर्कफ़्लो मैनेजमेंट, डायनेमिक डिसीजन मेकिंग, शेयर्ड स्टेट मैनेजमेंट, लूप और रीटाई मैनेजमेंट, तथा परसिस्टेंस और रिकवरी शामिल हैं।
  • लैंग ग्राफ 4जे पाइथन के लैंग ग्राफ से प्रेरित है और इसे जावा इकोसिस्टम के लिए विकसित किया गया है, जहाँ ऑपरेशन नोट्स होते हैं और कनेक्शन एजेस कहलाते हैं।
  • वीडियो में मेवेन प्रोजेक्ट, शेयर स्टेट (डैव स्टेट), नोड्स, और कंडीशनल एजेस का उपयोग करके एक व्यावहारिक एजेंट्स का लूप बनाकर दिखाया गया है।

विषय

लैंग ग्राफ 4जेएजेंटिक एआईस्टेट मैनेजमेंटकंडीशनल एजेसजावा एआई टूल्समल्टी-एजेंट वर्कफ़्लो
वीडियो का ट्रांसक्रिप्ट

उपलब्ध कैप्शन का पाठ; इसमें त्रुटियाँ हो सकती हैं।

गाइज़ आज के समय में Java में AI एप्लीकेशनेशंस डेवलप करना काफी इजी हो गया है। हमारे पास बहुत सारे टूल्स हैं। जैसे स्प्रिंग AI है। हमारे पास लैंग चैन फोर 4A है। इन सारे टूल्स की हेल्प से हम अगर चाहें तो हम एलएल में इंटीग्रेशन कर सकते हैं। रैग, एमसीपी, कन्वर्सेशन, मेमोरी जैसे फीचर्स को इंप्लीमेंट बहुत आसानी से कर सकते हैं। लेकिन प्रॉब्लम तब शुरू होती है कि जब हमारे पास कोई कॉम्प्लेक्स एजेंट आता है। और अगर हम कोई कॉम्प्लेक्स एजेंट बनाना चाहते हैं। सिर्फ चैट बॉट तो बन जाता है भाई। आप नॉर्मल एचटीटीपी पे कॉल कर लो तब भी चैटबॉट बना सकते हो। लेकिन अगर हमें कोई कॉम्प्लेक्स एजेंट डेवलप करना है। मान लीजिए आपको एक ऐसा सॉफ्टवेयर एआई डेवलपर बनाना है। मतलब हमें एक ऐसा सॉफ्टवेयर ही बनाना है जो एआई डेवलपर की तरह काम करे। जैसे यूजर की रिक्वायरमेंट आए और वो हमारा एआई डेवलपर क्या करे? वो प्लान करे। जैसे फॉर एग्जांपल मैं आपको दिखाता हूं। हमारे पास अलग-अलग काम करे जो हमारा एप्लीकेशन हो। वो उसके पास एक प्लानर हो। वो प्लान करे। यूजर से रिक्वायरमेंट ले, एनालिसिस करें और पूरा प्लान बना दे। उसके बाद प्लान जब बन गया तो वह प्लान फॉरवर्ड हो जाना चाहिए डेवलपर के पास। डेवलपर उस प्लान के अकॉर्डिंग एप्लीकेशनेशंस को डेवलप करें। सब कुछ कोड करे, जनरेट करें, कोड जो भी करना हो करें कोई दिक्कत वाली बात नहीं। जब एक बार एप्लीकेशन रेडी हो जाए उसके बाद आ जाएगा नेक्स्ट एजेंट सब एजेंट का काम जो कि है रिव्यूअर। रिवर कोड को रिव्यु करेगा कि भाई आपने कोड सही लिखा भी है कि कोड सही नहीं लिखा है। और अगर अप्रूव हो जाता है तब तो ठीक है हमारा लाइक काम हो चुका और हम इस मैजेंटिक मोड को ऑफ कर सकते हैं। लेकिन अगर अप्रूव नहीं हुआ तो हम लूप में भेजना चाहते हैं। मतलब फिर से वो डेवलपर के पास जाएगा और फिर से कोड को रिव्यु करेगा और मैक्सिमम अटेम्प्ट लाइक हम बता दें कि भैया तीन से चार पांच बार आप यह प्रोसेस फॉलो करिएगा। अगर रिव्यूअर रिव्य्यू करने के बाद अप्रूव नहीं कर रहा है तो डेवलपर फिर से डेवलप करेगा। सही करेगा, इंप्रूव करेगा। फिर से रिव्यूअर के पास आएगा। फिर से डेवलपर के पास जाएगा। अगर अप्रूव नहीं होगा। जब तक यह अप्रूव नहीं हो जाता या फिर मैक्सिमम लिमिट क्रॉस नहीं हो जाती है। मैक्सिमम अटेम्प्ट कंप्लीट नहीं हो जाते तब तक ऐसे लूप चलता रहे। ये होता है कॉम्प्लेक्स एजेंटिक मोड। और अगर हम कॉम्प्लेक्स एजेंटिक मोड यूज़ करना चाह रहे हैं jaवा में वहीं पे प्रॉब्लम स्टार्ट होती है। अब सवाल यह है कि jaवा में हम इस तरह के एप्लीकेशनेशंस या एजेंट्स कैसे बनाएंगे? कैसे करेंगे भाई? स्प्रिंग एआई से हम एलएलएम कॉल कर सकते हैं। लच चेन 4J से भी हम एआई फंक्शनैलिटीज को इंप्लीमेंट कर सकते हैं। लेकिन मल्टीपल एजेंट्स के बीच हम कोऑर्डिनेशन कैसे बैठाएंगे? डायनेमिक राउटिंग कैसे करेंगे? स्टेट मैनेजमेंट और एग्जीक्यूशन कंट्रोल की बात आती है। वहां पे ये सारे जो फ्रेमवर्क्स हैं वो इतना तगड़ा काम नहीं करते हैं। जैसे स्प्रिंग एi और लाइन चेन फोर्स है। वो नहीं कर पाएंगे भाई। कोऑर्डिनेशन वगैरह नहीं कर पाएंगे। तो यहां पे जो फ्रेमवर्क हमारा काम कर सकता है ऐसे कॉम्प्लेक्स एi फ्लो और एजेंट बनाने के लिए वो लंग ग्राफ 4J जैसे लंग चैन 4J है वैसे लंग ग्राफ 4J है। लंग ग्राफ 4J हम लोग इस वीडियो के अंदर समझेंगे कि एक्चुअली कौन सी प्रॉब्लम को सॉल्व करता है और प्रैक्टिकली मैं आपको प्रैक्टिकली मैं आपको बताऊंगा कि इसका कैसे इस्तेमाल कर सकते हो। ये कौन सी प्रॉब्लम सॉल्व करता है और और सबसे इंटरेस्टिंग बात फ्रेमवर्क का फंडामेंटल समझेंगे। समझने के लिए शुरुआती में ओपन या एपीआई की जरूरत भी नहीं पड़ेगी। आप सिंपली मैं जो आपको सिखा रहा हूं बस आप वीडियो देखिए और आप चीजों को अच्छे से समझिए। आप समझ जाओ कि लन ग्राफ का लंग ग्राफ का क्या यूज़ है और आप कॉम्प्लेक्स एजेंटिक मोड एप्लीकेशनेशंस कैसे बना पाओगे क्योंकि भाई यही फ्यूचर है। एजेंट एजेंटिक इज़ अ फ्यूचर और एजेंटिक एआई एप्लीकेशनेशंस बनाना आप डेवलप करना सीख लीजिए। नाउ पहली चीज मैं आपको बता दूं कि Python जावास्क्रिप्ट जैसे फ्रेमवर्क के अंदर लैंग ग्राफ बहुत कॉमन है। बहुत प्रैक्टिकल लाइब्रेरी है। बहुत ज्यादा लोग यूज़ करते हैं। बट जावा में ऐसी लाइब्रेरी मैं ढूंढ रहा था तो मुझे मिली लंग चैन फॉर लैं ग्राफ फॉर जेस नाम से एंड दिस इज़ अ गिट रेफो और अच्छे खासे इस पे स्टार्स हैं। 2.1 के स्टार्स हैं। तो मैंने यूज़ किया है अभी तो सर्वर लाइक हम प्रैक्टिकल सर्वर्स के लिए नहीं यूज़ कर रहे हैं। बट हां ये लाइब्रेरी लाइक उसी काइंड ऑफ़ इनेबलिंग ल ग्राफ इंजीनियरिंग फॉर अर्जेंटिक एआई फ्लो इन जावा। तो एक्चुअली ये वही काम करती है जो लैंड ग्राफ वगैरह बाकी टेक्नोलॉजीस में करती हैं। तो वही काम ये चाव में करती है। अब इसका प्रैक्टिकल यूज़ करेंगे तब आपको समझ में आएगा कि हां ये काम कैसे करती है। समय के साथ ये चीजें इवॉल्व होंगी तो और मजा आएगा। समय के साथ ये चीजें इवॉल्व होंगी। तो लाइक फ्यूचर में आपको ऐसी लाइब्रेरीज़ और देखने को मिलेगी जिसकी हेल्प से आप एआई एप्लीकेशनेशंस बना सको। बना सकोगे। ओके? सो नाउ एक चीज़ मैं एक चीज़ मैं आपको और यहां पे एक्सप्लेन कर देता हूं। जैसे फॉर एग्जांपल आप यहां पे थे ना? ठीक है? यहां पे। सो यस मैं इसकी बात कर रहा था इस टाइप के एप्लीकेशन जैसे ये हमारा नॉर्मल फ्लो है यूजर की रिक्वायरमेंट आई प्लानर डेवलपर रिव्यूअर और रिव्यूअर ने अगर अप्रूव नहीं किया तो फीडबैक डेवलपर को जाएगा डेवलपर फिर से एनहांस करेगा चीजों को फिर से रिव्यूअर के पास चीजें आएंगी फिर से वो फीडबैक जाएगा ऐसे ही लूप चलता रहेगा इट्स लाइक इट्स कॉल्ड कॉम्प्लेक्स एजेंटिक मोड गाइज़ बात यहां पे जावा की लिमिटेशन की नहीं है प्रॉब्लम हमारे कॉम्प्लेक्स एजेंट वर्क फ्ल्लोस की है और कॉम्प्लेक्स एजेंट वर्क फ्लोस को मैनुअली कैसे ऑर्केस्ट्रेट करने करना है उसकी है जो हमारी लाइब्रेरीज़ है जैसे मैंने बात की स्प्रिंग एi की लाइब्रेरी हो गई या lang चैन 4j की बात हो गई यह ऑलरेडी हमें यूज़फुल एजेंट रिलेटेड कैपेबिलिटीज़ प्रोवाइड करते हैं। लंग ग्राफ क्या करता है? लंग ग्राफ 4 जे उन्हें रिप्लेस बिल्कुल भी नहीं करता। अगर आपको ऐसा लगता है। उन्हें रिप्लेस बिल्कुल भी नहीं करता। बट ये लाइन ग्राफ हमें एक ऐसी चीज देता है जिसको हम बोलते हैं कॉम्प्लेक्स ग्राफ बेस्ड ऑर्केस्ट्रेशन। समझ में आया? मतलब लंग ग्राफ की हेल्प से हम लोग कॉम्प्लेक्स ग्राफ बेस्ड ऑर्केस्ट्रेशन कर सकते हैं। और इस ग्राफ बेस्ड ऑर्केस्ट्रेशन करने का हमें लन ग्राफ एक ऑप्शन देता है। आया समझ में? तो अब नॉर्मल जो फ्लोस हम बनाते हैं लाइक नॉर्मल एजेंटिक या नॉर्मल एप्लीकेशन जो हम स्प्रिंग एआई और अपने लैंग चैन फोरजे से बनाते हैं थोड़ा-थोड़ा आप एक करके प्रॉब्लम समझो कि क्या-क्या प्रॉब्लम हो सकती है और उन्हें कैसे सॉल्व करना है वो हम लोग बात करेंगे थोड़ी देर में सबसे पहली प्रॉब्लम हमारे कॉम्प्लेक्स वर्क फ्लो मैनेजमेंट की है गाइस द फर्स्ट वन इसको मैं ऐसे कर देता हूं अब समझना मान लीजिए हमारे पास चार एजेंट्स हैं और चारों एजेंट्स हमने यहां पे बना दिए हैं आपके सामने एक है प्लानर एजेंट एक है डेवलपर एजेंट, एक है कोड रिवर एजेंट और एक है टेस्टिंग एजेंट। ये चार एजेंट है गाइस। और चारों एजेंट अपना-अपना काम करेंगे अलग-अलग। सिंपल जावा में हम सीक्वेंसली मेथड कॉल कर सकते हैं। कुछ ऐसा मतलब अगर हमारे पास जावा कोड है तो हम ऐसे मेथड कॉल कर सकते हैं। जैसे फॉर एग्जांपल हमने थोड़ा सा इसको छोटा करो तो आप और समझ पाओगे कि देखो हमने क्या किया? हमने सिंपली देखो हमने सिंपली अ प्लानर डॉट जनरेट प्लान कर लिया। डेवलपर डॉट जनरेट कोड कर लिया। रिव्यूअर डॉट रिव्य्यू कोड कर लिया और टेस्टर डॉट जनरेट टेस्ट कर लिया। और मैंने इन जो जो इसने प्लान बना के दे दिया वो मैंने यहां पास कर दिया। लेट मी शो। लेट मी शो यू बाय। यह देखो इसने मैंने यहां पास कर दिया। और इसने जो हमें कोड दिया वो कोड उठा के मैंने रिव्यूअर को दे दिया। और रिव्यूअर ने जो रिव्यु दिया वो उठा के मैंने टेस्टर को दे दिया। टेस्टर ने टेस्ट बना के हमें यहां फाइनल आउटपुट दे दिया। तो ये हम ऐसा भी कर सकते हैं। सिंपल जावा कोड भी लिख सकते हैं। लेकिन अगर रिव्यूअर कोड जनरेट कर दे। ठीक है? अगर हमारा जो रिव्यूअर है वो कोड रिजेक्ट कर दे। नॉट जनरेट। मान लो इसने क्या किया? इसने कोड को रिजेक्ट कर दिया। मतलब इसको इसने रिव्यूअर के पास कोड गया। इस वाले एजेंट के पास लेट मी सो इस वाले एजेंट के पास यह है। तो यहां पे आया कोड जैसा मैंने बता रखा है डायग्राम में। अ ये देखो ये कोड उठा के हमने इसको दे दिया। तो रिव्यूअर अगर रिजेक्ट कर दे तो हमें कंडीशनल एग्जीक्यूशन कैसे इंप्लीमेंट करना है। ये है कॉम्प्लेक्स मोड प्रॉब्लम। आया समझ में? मतलब अगर इसने प्रॉब्लम को रिजेक्ट कर दिया। तो अब हमें दोबारा से डेवलपर को देना है। कंडीशनल रेंडरिंग करनी है। कंडीशनल रेंडरिंग नहीं बोल सकते। कंडीशनल एग्जीक्यूशन बोल सकते हैं। तो हमें कंडीशनल एग्जीक्यूशन इंप्लीमेंट करना पड़ेगा और उसके लिए फिर हमारा यह नॉर्मल फ्लो काम नहीं करेगा। हालांकि आप कर सकते हो बट फिर वही बात आ जाएगी कि मैनुअल अ ऑर्केस्ट्रेशन लगाना पड़ेगा। मैनुअल ऑर्कस्ट्रेट करना पड़ेगा। खुद से करना पड़ेगा। कोई हमारे पास लाइब्रेरी नहीं है इस काम करने इस काम को करने के लिए। आसान या इस काम करने के लिए कोई आसान तरीका हमें दे। तो ये पहली प्रॉब्लम थी जो मैंने आपको बताई। दूसरी प्रॉब्लम है डायनेमिक डिसीजन मेकिंग। दिस इज़ आल्सो द प्रॉब्लम। हर एजेंट का जो मैंने चारों एजेंट बताया या तीन हो, चार हो, 10 भी हो सकते हैं। हर एजेंट का एग्जीक्यूशन पाथ फिक्स नहीं होता है। दे हैव अ डिफरेंट एग्जीक्यूशन पाथ। कभी रिव्यूअर अप्रूव कर करेगा कभी रिजेक्ट करेगा। कभी ह्यूमन अप्रूवल चाहिए होगा, कभी डायरेक्ट एग्जीक्यूशन चाहिए होगा। तो जो डिसीजन होगा या एजेंट का जो एक्सक्यूशन पाथ होगा दैट्स अ डायनेमिक। इट्स अ डायनेमिक। एग्जीक्यूशन पाथ जो है एक्सक्यूशन पाथ इट्स अ डायनेमिक। और डायनेमिक डिसीजन लेने में दिक्कत होगी। फिक्स चीज होती तब तो कोई दिक्कत नहीं वाली। अगर हमें पता है कि इसी पाथ पे हमेशा जाना है तब तो हम ऐसा कोड कर देते जाते-जाते। बट हर बार डायनेमिक चीजें नहीं होंगी। कभी कुछ और चाहिए होगा कभी कुछ और चाहिए होगा। डिपेंडिंग अपॉन क्या कोड जनरेट कर रहा है प्रीवियस एजेंट नेक्स्ट एजेंट उस उसी हिसाब से काम करेगा। तो यहां पे डायनेमिक चीजें चाहिए होंगी। कभी ह्यूमन अप्रूवल भी चाहिए होगा। कभी डायरेक्ट कभी डायरेक्ट एक्सक्यूशन भी चाहिए होगा। सो ये अब मान लो ऐसे आपने कर दिया। लेट्स पुट द एग्जांपल हियर। तो यहां पे मैं एग्जांपल देता हूं। आप समझ इफ कोड रिवर इज़ अप्रूव्ड। अगर आपने कर दिया तो ऐसा कर दो। एल्स ऐसा कर दो। मतलब अगर कोड अह रिव्यूअर ने अप्रूव कर दिया तो टेस्टिंग एजेंट डॉट एग्जीक्यूट कर दो। एल्स टेस्टिंग एजेंट डॉट रीटाई कर दो। ऐसा कर सकते हो। ये सिंपल एग्जांपल मैनेजेबल है। जैसे मैंने मैंने बताया कि आप इसको मैनुअली मैनेज कर सकते हो। ये बहुत सिंपल है। आपने खुद से मैनुअल उसकी कोडिंग कर दी है। मतलब मैनुअल ऑर्कस्ट्रेशन कर दिया। बहुत सिंपल। लेकिन लगभग 10-15 एजेंट्स मल्टीपल कंडीशन नेस्टेड लूप्स होंगे। तो वर्क फ्लो को समझना और मेंटेन करना बहुत ज्यादा डिफिकल्ट हो जाएगा गाइस। मतलब अगर कॉम्प्लेक्स इसीलिए मैंने इस इस वीडियो में यूज़ किया बार-बार कॉम्प्लेक्स एजेंटिक मोड और कॉम्प्लेक्स एजेंटिक मोड जब आप बनाओगे तो फिर कहानी अलग होगी एजेंटिक मोड। आया समझ में? कॉम्प्लेक्स एजेंटिक मोड। क्योंकि एक दो सिंपल एग्जांपल है तब तो आपने कर लिया। बट जब हमारे पास 10-15 एजेंट्स होंगे, मल्टीपल कंडीशंस होंगी, नेस्टेड लूप्स होंगे, तो वर्क फ्लो बहुत मैनेजेबल नहीं होगा। आया समझ में? तो ये प्रॉब्लम आएगी। नेक्स्ट एक और प्रॉब्लम आती है दैट इज़ आवर थर्ड प्रॉब्लम जो कि स्टेट की ठीक है स्टेट प्रॉब्लम शेयरर्ड स्टेट मैनेजमेंट आप मल्टीपल एजेंट्स के बीच में डेटा कैसे शेयर करोगे जैसे आपके पास ये प्लानर था प्लानर के बाद जनरेटर है कोड फिर रिव्यूअर है फिर टेस्टर है तो आप डेटा कैसे शेयर करोगे भाई ठीक है सो हर एजेंट को प्रीवियस एजेंट का आउटपुट चाहिए इसका आउटपुट इसको चाहिए इसका आउटपुट इसको चाहिए इसका आउटपुट इसको चाहिए डेवलपर को प्लानर का चाहिए रिव्यूअर को कोड चाहिए और फिर रिवीज़न भी चाहिए ये एंड तमाम तरह की चीजें मतलब यहां से अगर इधर जा रहे हैं हम वर्क फ्लो तो फिर इसका आउटपुट इसको चाहिए। इस अगर इधर से इधर जा रहे हैं तो इसका आउटपुट इसको चाहिए। आया समझ में? तो हम मैनुअली डेटा पास कर सकते हैं। फिर वही बात आ जाएगी। यहां पे करने के लिए तो आप कर सकते हो। मैनुअली भी कर सकते हो आप। डेट जैसे मैंने यहां पास किया। देखो हमने प्लान उठा के इसमें पास किया। कोड उठा के इसमें पास किया। रिव्य्यू उठा के इसमें पास किया। ऐसा कर सकते हो। बट जैसे-जैसे जैसे-जैसे हमारा वर्क फ्लो बढ़ता है और जैसे-जैसे आपके पास मल्टीपल काम आते हैं, जैसे जैसे आपके पास मल्टीपल एजेंट्स आते हैं तो स्टेट मैनेजमेंट बहुत ज्यादा कॉम्प्लेक्स हो जाता है और आप नहीं कर पाओगे मैनेज भाई क्योंकि रियल प्रॉब्लम्स में रियल प्रोडक्शन लेवल चीजें आप बनाते हो तो वहां पे बहुत एग्जैक्टली प्रॉब्लम होती हैं जो आप मैनेज नहीं कर सकते। उसके लिए कुछ हमें लाइब्रेरी ही चाहिए होगी। आया समझ में? एंड द लास्ट प्रॉब्लम जो मैं डिस्कस करना चाहिए। सेकंड लास्ट डिस्कस कर लेते हैं। एक और प्रॉब्लम है दैट इज़ अ लूप एंड रीट्रा मैनेजमेंट। सपोज रिवर रिपीटेडेंटली कोड को जनरेट कर रहा है। रिव्यूअर जो हमारा ये वाला प्लानर है जनरेटर रिवर। अब सपोज ये जो है ये बार-बार कोड को रिजेक्ट कर रहा है। और जब बार-बार कोड गाइस रिजेक्ट होगा तो ऑब्वियस सी बात वापस जाएगा डेवलपर के पास। ठीक है? सो बार-बार कोड रिजेक्ट कर रहा है। अब हमें कंट्रोल करना करना होगा भाई। कितनी बार यह रीिट्राई करें? कितनी बार रीटाई करें? प्रीवियस फीडबैक कैसे प्रिजर्व करना है? सक्सेसफुल रिव्यु के बाद लूप कैसे टर्मिनेट होगा? मैक्सिमम अटेम्प्ट्स होने पर क्या होगा? ये सारे कंडीशंस हमें खुद से कंट्रोल करने पड़ेंगे। [नाक से की जाने वाली आवाज़] गलत इंप्लीमेंटेशन से इनफाइनाइट लूप भी जा सकता है। अननेसेसरी एलएलएम कॉल्स एंड एपीआई कॉस्टिंग भी बढ़ सकती है। तो यहां पे ये मैनेज मैनेजमेंट आपको बहुत प्रॉपर एंड परफेक्ट चाहिए। अदरवाइज़ मान लो बार-बार इनफाइनाइड लूप में चले गए तो बार-बार चलता रहेगा। बार-बार चलता रहेगा। बार-बार दिक्कत हो जाएगी कि नहीं? और अगर मान लो यहां पे जो डेवलपर है कोड को जनरेट करने के लिए एi एलएलएम का इस्तेमाल कर रहा है। अब जितनी बार कोड एलएलएम जनरेट करेगा उतनी बार जो कॉल्स होंगी अ उनका इनपुट और आउटपुट टोकंस कंज्यूम होगा तो उस पैसा भी बढ़ेगा तो कॉस्टिंग भी बढ़ सकती है। तो ये आपको बहुत परफेक्टली मैनेज करना पड़ेगा गाइस और परफेक्टली आप खुद से मैनेज नहीं कर सकते। आपके लिए कोई ना कोई लाइब्रेरी चाहिए जो वेल टेस्टेड हो। आया समझ में? अ फिफ्थ जो एक प्रॉब्लम आ सकती है दैट इज़ एक्चुअली द पर्सिस्टेंट एंड रिकवरी प्रॉब्लम। पर्सिस्टेंट एंड रिकवरी प्रॉब्लम। मान लीजिए एक एजेंटिक एक एजेंटिक वर्क फ्लो में 10 स्टेप्स हैं। आठ स्टेप्स कंप्लीट होने के बाद एप्लीकेशन क्रैश हो गई। 10 स्टेप मैं बना के दिखा देता हूं। 1 2 3 4 ऐसे करके कुछ स्टेप्स हैं। अब मान लो यहां तक का ये तीन स्टेप्स चली और तीन के बाद या चार स्टेप्स ग्रीन हुई और फिर यहीं पे आपका एप्लीकेशन अ क्रैश हो गया। अब जब यहां पे क्रैश हो गया। अब क्या होगा भाई? व्हाट विल हैपन? नाउ अगर हमें स्टेट पर्सिस्टेंट एलिमेंट नहीं किया है तो यह स्टेट आपकी मेंटेन ही नहीं रहेगी। एग्जीक्यूशन दोबारा से स्टार्ट होगा और यह जो चीजें चली थी वो वैनिश्ड गायब हो जाएंगी। अब प्रॉब्लम होगी कि आप अगर मान लो इसने और इसने बहुत सारा एलएलएम कॉल कर लिया था तो दोबारा करना पड़ेगा। फिर से आपको कॉस्टिंग देनी पड़ेगी। एलएलम की देनी पड़ेगी और जो जो काम आपने किया था वो पूरा रिपीट करना पड़ेगा। आया समझ में? तो छोटे स्टेप में लाइक एक दो स्टेप है, तीन स्टेप हैं तब तो चल जाएगा। दोबारा से करवा लो। लेकिन जब बहुत सारे स्टेप्स होंगे तब कैसे करोगे आप? आया समझ में? सो लंग ग्राफ हमें चेक पॉइंट्स और रिज्यूम रिज्यूम कैपेबिलिटीज़ भी प्रोवाइड करता है। तो लैंग ग्राफ इन सारी प्रॉब्लम्स का सशन हमें देता है। जिसकी हेल्प से हम लोग कर सकते हैं कर सकते हैं। एंड एक और प्रॉब्लम आती है दैट इज़ डीबगिंग एंड ऑब्ज़र्विटी की प्रॉब्लम आती है। तो उसको भी आप समझ लो जब इतना ही आप समझ ही ले रहे हो तो। ठीक है? एक नॉर्मल एलएम कॉल डीबग करना रिलेटिवली स्ट्रेट फॉरवर्ड है। कर सकते हो आप। लेकिन जब मल्टीपल एजेंट्स कोलबेट करते हैं एक साथ काम करते हैं, हमें पता नहीं हमें हमें पता होना चाहिए कि कौन सा एजेंट एग्जीक्यूट कर रहा है। कौन सा स्टेट मैनेज कर रहा है। किस-किस किसने स्टेट को चेंज किया? रिवर ने रिक्वेस्ट रिजेक्ट क्यों की है? वर्क फ्लो ने वर्क फ्लो ने कौन सा पाथ फॉलो किया? एग्जीक्यूशन कहां फेल हुई? ये सारी चीज़ हमें पता होनी चाहिए। कॉम्प्लेक्स वर्क फ्लो में ये इंफॉर्मेशनेशन स्पेशली बहुत ज्यादाेंट होती है। तो ये सारी प्रॉब्लम है। और इन्हीं सारी प्रॉब्लम को सॉल्व करने के लिए हमारे पास लैंड ग्राफ है। यस लैंग ग्राफ है। ठीक है? सो वर्क फ्लो मैनेजमेंट लेग ग्राफ नोट्स एंड एजेस की हेल्प से हो जाता है। देन हमारे पास एजेंट कम्युनिकेशन शेयरर्ड स्टेट की हेल्प से लेग्राफ में हो जाता है। डायनेमिक राउटिंग कंडीशनल एज की हेल्प से हो जाता है। फीडबैक लूप हम साइक्लिक ग्राफ की हेल्प से मेंटेन कर सकते हैं। स्टेट अपडेट हम चैनल एंड रिड्यूसर्स की हेल्प से कर सकते हैं। रिकवरी हम कॉन्फ़िगरेबल चेक पॉइंट की हेल्प से कर सकते हैं। एग्जीक्यूशन विज़िबिलिटी हम ग्राफ स्ट्रीमिंग एंड इंस्पेक्शन की हेल्प से कर सकते हैं। तो, ये सारी फीचर्स हमें लनग्राफ प्रोवाइड करता है। और मैं आपको छोटा-मोटा आपको दिखाता हूं। एक एप्लीकेशन बना के फिर आपको और मजा आएगा। ठीक है? हालांकि अगर आप डिटेल में चाहते हो कि मैं एक कोर्स बनाऊं, एक क्रैश कोर्स बनाऊं लग्राफ का तो आप कमेंट सेक्शन में लग्राफ लिख दीजिए। बहुत तगड़ी चीज है और मजा आएगा। ओके? तो अब आप lang्राफ 4J को कैसे डिफाइन कर सकते हो? lang्रा 4J एक जावा लाइब्रेरी है जिसका यूज़ हम स्टेटफुल एजेंटिक वर्क फ्लो और मल्टी एजेंट एप्लीकेशनेशंस डेवलप करने के लिए यूज़ कर सकते हैं। यह Python लang ग्राफ से इंस्पायर्ड है एंड जावा इकोसिस्टम के लिए डेवलप की गई है। यह इंपॉर्टेंट है। बहुत ही ज्यादा इंपॉर्टेंट है। यह Python लang ग्राफ से इंस्पायर्ड है। लेकिन है ये जावा के लिए। मतलब जावा में आप लैंग ग्राफ यूज़ कर सकते हो lang ग्राफ 4G की हेल्प से। आया समझ में? [हंसी] अपना वर्क फ्लो अपने वर्क फ्लो के मेथड्स और मैनुअली मैनेज्ड लूप की जगह एक ग्राफ के फॉर्मेट अ में रिप्रेजेंट करो। हर ऑपरेशंस एक नोड होगा। मतलब ग्राफ आपने देखा होगा तो ऑपरेशंस जो होगा वो नोड होगा। ठीक है? और नोड के बीच में कनेक्शंस को एजेस बोलेंगे। तो कहने का मतलब यही चीज़ है। जैसे फॉर एग्जांपल ये हमारा नोड होता जैसे आप ग्राफ बनाते थे। ठीक है? ग्राह होते थे। यह एक ग्राफ बनाते थे। तो यह हमारा यह हो गए नोट्स। ये जैसे मैंने एक न बना दिया है। ये देखो। तो ये जो ऑपरेशंस होंगे गाइज़ ये हमारे नोट्स होंगे। और नोट्स के बीच में जो कनेक्शन होगा अह कुछ ऐसा ये कनेक्शन ये होंगे एजेस और इनको हम एजेस बोलेंगे। तो ये एक ऑपरेशन होगा जिसको हम लोग OP1 बोल सकते हैं। ये हमारा दूसरा ऑपरेशन होगा जिसको हम लोग OP2 बोल सकते हैं। आया समझ में? तो ये जो हमारा वर्क फ्लो है, दिस इज़ एक्चुअली द वर्क फ्लो। दिस इज़ एक्चुअली द वर्क फ्लो। ये तो इसको थोड़ा सा मैं सही कर देता हूं। तो और अच्छा सॉरी ये वर्क फ्लो है। वर्क फ्लो को वर्क फ्लो को मेथड्स और मैनुअली मैनेज्ड लूप्स की जगह पे हम मैनुअली मैनेज्ड लूप नहीं लिखेंगे। हम ग्राफ के फॉर्म में अपने वर्क फ्लो को रिप्रेजेंट करेंगे। जिसमें हमारे जो नोट्स होंगे वो ऑपरेशंस होंगे और इनके बीच में जो कनेक्शंस होगा उनको हम लोग एज बोलेंगे। और एजेंट्स के बीच जो इंफॉर्मेशन शेयर होगी जैसे मान लो ये ऑपरेशन इसमें एक एजेंट है तो ये जो इंफॉर्मेशन शेयर होगी ना ये ये इनेशन जो शेयर हो रही है यहां से ये इस इंफॉर्मेशन को हम स्टेट बोलेंगे। ठीक है? एजेंट्स के बीच में जो इनेशन शेयर होगी, उस स्टेट के थ्रू उसे हम स्टेट के थ्रू मैनेज करेंगे। वह स्टेट बोलेंगे या स्टेट के थ्रू इसे हम मैनेज करेंगे। हाउ द इनेशन फ्लो फ्रॉम वन एजेंट टू अनदर। इसको हम लोग स्टेट के थ्रू कर पाएंगे। सबसे पावरफुल फीचर है कंडीशनल एज जिनकी हेल्प से हम डायनेमिकली डिसाइड कर सकते हैं कि अब कौन सा नोड एग्जीक्यूट करना है। तो कहने का मतलब हम यहां पे कंडीशनल एग्जीक्यूशन लगा सकते हैं। सबसे तगड़ी चीज़ है कि अगर ये हो तभी ये एग्जीक्यूट हो। अदरवाइज़ ये एग्जीक्यूट ना हो। लंग चेन लंग ग्राफ 4 जावा में स्प्रिंग किया है और लैग चैन 4j इंटीग्रेट सपोर्ट करता है। तो बेसिकली हम इसके अंदर लंग चेन ये मान लो पूरा लंग चेन लंग ग्राफ लंग ग्राफ 4G की हेल्प से बना है। तो इसके अंदर हम अपना स्प्रिंग एआई वगैरह भी इस्तेमाल कर सकते हैं। कोई दिक्कत वाली बात नहीं। स्प्रिंग या वाली सारी फीचर्स हम यूज़ कर सकते हैं। एंड इवन लंग चेन 4J को भी हम यूज़ कर सकते हैं। ओके? सो अब आपको यहां पे चीजें समझनी पड़ेंगी। आई थिंक ये चीज़ समझ गए। तो अब हम क्या करते हैं? एक छोटा सा एप्लीकेशन बनाते हैं। और फिर मैं आपको बताता हूं। फिर प्रैक्टिकल अगर आप कहोगे तो एक अच्छा एप्लीकेशन हम लोग नेक्स्ट लेक्चर के अंदर बनाएंगे तो और मजा आएगा। ठीक है? सो दिस इज़ लाइक अ कोर आईडिया ऑफ़ लाइन ग्राफ 4J एंड लैं ग्राफ। अगर आप पाइथन या अदर दूसरी टेक्नोलॉजीज़ के अंदर हो तो लंग ग्राफ इसको बोलते हैं। और जाओ में इसको लैं ग्राफ 4J बोलते हैं। ओके? सो, मुझे लग रहा है आपको नोट्स भी मैंने समझा दिए। एजेस भी मैंने समझा दिया, कंडीशनल चीज़ भी बता दी, स्टेट्स भी बता दिया। अब थोड़ा सा मैं इंप्लीमेंट करके दिखाता हूं तो और मजा आएगा। ओके? सो, मैंने यहां पे एक मेवन का प्रोजेक्ट डेवलप कर लिया। और आप समझो कितना बढ़िया है। मैं आपको पढ़ाता हूं और सिखाता हूं। देखो सो मैंने एक मेवन का प्रोजेक्ट डेवलप कर लिया और pmpexml में मैंने गाइज़ यहां पे अ lang ग्राफ 4G कोर लगाया है। rgb डॉट lang graf 4G ये ग्रुप आईडी है। बेसिकली मैंने यहीं से लगाया। अब देखो यहां से देखो मैंने यहां पे थोड़ा सा ज़ूम कर लेता हूं। यस यही वाला लगाया। और मैंने यहां पे बॉम्ब का इस्तेमाल नहीं किया। सिंपली मैंने जो वर्जन था वो डायरेक्टली मैंने यहां पे अपनी डिपेंडेंसी में डाल दिया है। 1 9.5 का इस्तेमाल मैं कर रहा हूं। ठीक है? ठीक है? तो मैंने डायरेक्टली यहीं पे डाल दिया। विल ऑफ मटेरियल्स का मैं इस्तेमाल नहीं कर रहा हूं। ये ठीक है? सिंपली यही वाला मैं यूज़ कर लिया हूं। इसी से हमारा काम हो जाएगा। ठीक है? बस आप रीलोड कर लीजिए और आप फिर यहां पे आ जाइए। तो मैं सबसे पहला जो स्टेप करूंगा आई विल एक्चुअली क्रिएट अ शेयरर्ड स्टेट। मैं एक शेयर्ड स्टेट बनाऊंगा जो स्टेट को शेयर कर सकूं। कैसे बनाऊंगा? लेट मी शो यू। तो [नाक से की जाने वाली आवाज़] मैं एक क्लास बनाऊंगा डेव स्टेट। ठीक है? डेव स्टेट। अ दिस क्लास इज़ एक्चुअली इंप्लीमेंटिंग। देखो स्टेट बनाने के लिए हमें एक क्लास होती है उसको एक्सटेंड करना होता है। तो हम एक्सटेंड कर लेंगे एजेंट स्टेट। ये देखो जो कि लन ग्राफ 4J से आ रहा है। दिस इज़ एक्चुअली द क्लास। एंड अगर आप देखो यहां पे तो डॉक्यूमेंटेशन में लिखा है रिप्रेजेंट द स्टेट ऑफ़ द एजेंट विद द मैप ऑफ़ डेटा। तो मैप ऑफ़ डेटा मतलब बेसिकली मैप का इस्तेमाल करेंगे। इसके अंदर एक मेथड है जिसको हम लोग ओवराइट करते हैं। कंस्ट्रक्टर आई थिंक कंस्ट्रक्टर मुझे बनाना पड़ेगा एक। हम हम ठीक है? तो बना लो कंस्ट्रक्टर। दिस इज़ द कंस्ट्रक्टर दैट वी आर गोइंग टू यूज़। ठीक है? डेव स्टेट मैप इनिशलाइज़ डेटा दे रहा होगा। इनिशलाइज़ डेटा को हम पास कर रहे होंगे। ठीक है? अह मैं क्या कर रहा हूं? आई एम जस्ट गोइंग टू क्रिएट वन स्टैटिक पब्लिक स्टैटिक फाइनल अ मैप एक बनाऊंगा। जो भी डेटा हमें रखना होगा की एंड चैनल के फॉर्मेट में चैनल ऑफ़ क्वेश्चन मार्क मैं दे दूंगा यहां पे। सो और इसका मैं दे दूंगा नाम स्कीमा। स्कीमा एंड मैप मैं बना दूंगा। मैप ऑफ बस सिंपली ये बना देंगे। क्या-क्या मुझे चाहिए? लेट मी शो यू। तो मैंने सिंपली यहां पे यस बना दिया। एंड चैनल्स को इंपोर्ट कर दो। यस। तो ये देखो। और मैप इज़ लाइक लैंग्वेज लेवल में सेट कर दूंगा मैक्सिमम। इवन यहां से जाकर के मैं लैंग्वेज लेबल बढ़ा देता हूं थोड़ा सा। तो लेट मी प्रोजेक्ट स्ट्रक्चर पे जाते हैं। एंड मॉड्यूल्स पे ये जो लेबल है इसको मैं 25 बेस करूंगा। बाय डिफ़ॉल्ट कम था ना तो जावा 25 का इस्तेमाल करो। तो मैंने बेसिकली क्या किया? एक मैप बना लिया स्कीमा नाम से। अ मैप ऑफ रिक्वायरमेंट। रिक्वायरमेंट डाटा बेसिकली हम रखेंगे जो स्टेट एक्चुअली ट्रेवल करेगा फ्रॉम वन एजेंट टू अदर। तो स्टेट रिक्वायरमेंट देखेंगे, प्लान देखेंगे, कोड देखेंगे, फीडबैक देखेंगे, स्टेटस क्या है, अटेम्प्ट्स कितने हुए हैं। और डेटा को लाइक उसकी वैल्यू हम बनाते हैं चैनल्स के फॉर्मेट में। चैनल्स डॉट बेस। अब इसको मैं बताऊंगा किसी लेक्चर के अंदर कि एक्चुअली चैनल्स होता क्या है? ठीक है? बट आप समझ लो ये वैल्यू है। तो चैनल्स के फॉर्मेट में हम वैल्यू्यूज को बताते हैं। अ बस और बाकी इनको फेच करने के लिए डेटा को फेच करने के लिए मैं एक-एक मेथड बना देता हूं। जैसे फॉर एग्जांपल इफ यू वांट टू फेच द रिक्वायरमेंट तो रिक्वायरमेंट को फैच करने के लिए यस मैंने क्या किया देखो रिक्वायरमेंट नाम से एक मेथड है। तो इस क्लास के ऑब्जेक्ट पे आप जैसे रिक्वायरमेंट कॉल करोगे ये आपको वैल्यू निकाल के दे देगा। तो दिस डॉट वैल्यू डॉट रिक्वायरमेंट और एल्स ब्लैंक दे देगा। अगर होगी तो दे देगा वरना ब्लैंक दे देगा। वैल्यू आप प्लान निकालोगे तो प्लान डॉट प्लान कॉल कर सकते हो डॉट कोड डॉट ऐसे करके आप जो भी निकालना चाहो निकाल सकते हो और ये तरीका दिया है लाइन ग्राफ में इसको आप डॉक्यूमेंटेशन से देख भी सकते हो ठीक है तो बेसिकली ये डेव स्टेट मैनेज होगा और चेंज भी हम करेंगे इसी क्लास के ऑब्जेक्ट के अंदर डायरेक्टली मैप में चेंज नहीं करेंगे आया समझ में सो दिस इज़ वेरीेंट अ चैनल अगर आपको थोड़ा सा मैं एक्सप्लेन करूं तो चैनल डिसाइड करता है कि जब कोई नोड स्टेट अपडेट करेगा तो पुरानी वैल्यू के साथ क्या होगा अभी अभी हमने चैनल डॉट बेस का इस्तेमाल यहां पे किया है ना। तो पुरानी वैल्यूज़ के साथ अ हमने ये यूज़ किया। चैनल डॉट बेस यूज़ कर रहे हैं। इसका मतलब है नॉर्मली लेटेस्ट इनकमिंग वैल्यू एकिस्टिंग वैल्यू को रिप्लेस कर देगी। तो चैनल डॉट बेस तब यूज़ करते हैं जब पुरानी वैल्यू गायब हो जाए। नई वैल्यू आ जाए। अपडेट करते समय जब कोई एजेंट। इसमें और भी तरीके हैं। जैसे हमारे पास अपेंडर भी है। अपेंड करने के लिए अगर हमें पुरानी वैल्यू चाहिए अ तो हम अपेंडर का भी इस्तेमाल कर सकते हैं। डिपेंड और जो टाइप्ड गेटर मेथड्स हैं उनकी हेल्प से हम स्टेट की प्रॉपर्टीज को एक्सेस कर सकते हैं। तो ये गेटर्स मेथड। तो ये बन गया हमारा स्टेट। अब इनिशियल स्टेट जैसे रिक्वायरमेंट हो गई हमारी क्रिएट इनिशियल स्टेट कुछ ऐसी होगी। लेट मी कमेंट इट एंड शो यू टू या फिर हम डायरेक्टली यहीं पे आपको दिखा सकते हैं। इनिशियल स्टेट मतलब स्टार्टिंग में ऐसी होगी। क्रिएट अ टास्क एपीए प्लानर अभी प्लान नहीं किया होगा। कोड भी कोड नहीं किया होगा। फीडबैक में कुछ नहीं मिला होगा। स्टेट भी कुछ नहीं मिला होगा। अटेम्प्ट्स भी ज़ीरो है। तो यह दिस इज़ कॉल्ड इनिशियल स्टेट। यह हमारी इनिशियल स्टेट है। दिस इज़ द इनिशियल वन। ठीक है? अ जब डेवलपर एग्जीक्यूशन डेवलपर एग्जीक्यूट कर लेगा अपना काम। और डेवलपर एग्जीक्यूशन के बाद हमारी स्टेट कुछ ऐसी बचेगी। बनेगी है ये देखो। तो अब डेवलपर ने काम कर लिया तो रिक्वायरमेंट हमारी वही रहेगी। लेकिन प्लानर ने प्लान कर लिया और डेवलपर भी कोड कर चुका है तो कोड में भी वैल्यू आ चुकी होगी। तो दो हमारे एजेंट्स चल चुके हैं। फीडबैक और स्टेटस और अटेम्प्ट्स अभी नहीं हुआ। एक अटेम्प्ट हो चुका है क्योंकि एक बार डेवलपर चल चुका है। तो इस हिसाब से हमारी जो स्टेट होगी वो ऐसे ही बढ़ती जाएगी। मतलब आगे बढ़ती जाएगी जैसे-जैसे हमारे एजेंट्स चलते जाएंगे। ठीक है? सो थोड़ा सा इसको मैं ज़ूम आउट कर दूं तो आप अच्छे से समझ सको। तो ये हमारा स्टेट बन चुका। अब हम क्या कर सकते हैं? अब नोट्स हम क्रिएट कर सकते हैं। नोट्स डायरेक्टली हम क्रिएट कर सकते हैं। बट हम एप्लीकेशनेशंस में चलते हैं। नोट बनाते हैं आपको। बड़े एप्लीकेशन में अलग तरह से कोडिंग हुई। बट अभी देखो आई एम जस्ट गोइंग टू क्रिएट अ प्राइवेट स्टैटिक फाइनल इंटीजर। एक मैं लूंगा मैक्स अटेम्प्ट्स कितना हुआ? अटेम्प्ट्स और मैं यहां पे मैं लूंगा तीन। मैक्सिमम अटेम्प्ट्स तीन मैं अभी अलव कर रहा हूं। तीन मैं अलव कर रहा हूं। सो अब हम क्या करेंगे? अब [गला साफ़ करने की आवाज़] सबसे पहले हां सबसे पहले इंपोर्ट्स और नोट्स को डिफाइन करेंगे। देखो सब इंपॉर्टेंट है। यहां पे हम क्या करने जा रहे हैं यहां पे? लेट मी शो यू। यहां हमने एक वेरिएबल ले लिया। तीन मैक्सिमम अटेम्प्ट होगा। नेक्स्ट हम यहां पे इंप्लीमेंट करेंगे ग्राफ की इंप्लीमेंटेशन। और मेन के अंदर सबसे पहले ग्राफ क्रिएट करेंगे। ग्राफ के लिए मैं एक वेरिएबल लूंगा वर्क फ्लोस और वर्क फ्लोस में न्यू स्टेट ग्राफ। अलग-अलग ग्राफ बना सकते हो। मेरे पास यहां पे स्टेट ग्राफ। इवन साइक्लिक ग्राफ भी बना सकते हो आप। साइक्लिक मैं बेसिकली मैं स्टेट ग्राफ ही यूज़ करूंगा। स्टेट ग्राफ। एंड यहां पे स्टेट अभी मैं पास करूंगा। इसके अंदर क्या-क्या पास करना है? वी हैव टू पास आ टू थिंग्स। आप यहां पर देख सकते हो। हम पास करेंगे अपना स्टेट। तो जो हमारा डेव स्टेट डेब स्टेट डॉट स्कीमा इसके लिए ये स्कीमा था जो स्टैटिक वेरिएबल था इसलिए डायरेक्टली मैंने पास कर दिया। और मैं न्यू कॉल करके कंस्ट्रक्टर पास कर रहा हूं। ठीक है? तो, यह जो ग्राफ बनेगा, दिस ग्राफ़ इज़ एक्चुअली अह हैविंग द स्टेट और द ऑब्जेक्ट ऑफ़ द डे डेस्ट। बेसिकली ये स्कीमा है और ये ऑब्जेक्ट है। न्यू मतलब कंस्ट्रक्टर कॉल होगा जब ये ऑटोमेटिकली कॉल होगा जब वर्क फ्लो चलेगा। एंड आई थिंक वेयर वेयर नहीं चल रहा क्या? ना ना हम ठीक तो है। वेयर वेयर वेयर वेयर वेयर आजा भाई। ये क्या कह रहा है? रिक्व यहां एक मैं मेथड एक प्रिंट देने जा रहा हूं। स्टार्टिंग वर्क फ्लोस और अभी मुझे लग रहा है कुछ हां ठीक है तो ये लैंग्वेज का लेवल ही कुछ गड़बड़ था तो मैंने वर्क फ्लो बना लिया यहां पे अब हमारे पास वर्क फ्लो रेडी है अब हम क्या करेंगे अब हम एक्चुअली सिमुलेट करने जा रहे हैं और सिमुलेट करने के लिए अब सबसे पहले प्लानर नोड बनाएंगे ठीक है प्लानर नोड ऐड करेंगे और इस वर्क फ्लो में मैं कहूंगा वर्क फ्लोस डॉट ऐड देखो आप इस ग्राफ में बहुत सारी ऐड कर सकते हो तो नोड ऑपरेशन मतलब एक ऑपरेशन ऐड करेंगे। ऐड नोड और उसकी आईडी देंगे। दिस इज़ अ प्लानर। और प्लानर जो होगा वह नोड डाल सकते हैं। असिंक टाइप का नड। यह देखो नोड असिंक ऐड कर सकते हैं। और ये असिंक जो आ रहा होगा ना गाइज़ ये एक्चुअली हमारा अिंक नोड एक्शन से आ रहा होगा। असिंक नोड एक्शनंस डायरेक्टली। परफेक्ट। ठीक है? तो असिंक नोड ऐड कर दिया। और अब हम क्या कर सकते हैं? अ इसके अंदर वी हैव टू पास द देखो आई थिंक लैम्ब्डा हम पास कर सकते हैं। यस देखो नोड एकशंस पास कर सकते हैं यहां पे। तो हम हमें स्टेट मिल जाएगा। स्टेट को हम यूज़ कर सकते हैं। कोई दिक्कत वाली बात नहीं है। और स्टेट को यूज़ करने के बाद यहां पे हम ऑपरेशंस लिख सकते हैं। जो भी ऑपरेशंस हमें लिखना है। एंड देन वी हैव टू लाइक आई थिंक हम अभी देखते हैं क्या हो रहा है। ठीक है? यहां पे जैसे फॉर एग्जांपल मैं ऐसा आउट करूंगा। मैं लिखूंगा यहां पे कि प्लानर चल रहा है। एक काम है बेसिकली और मैं लिखूंगा यहां पे क्रिएटिंग डेवलपमेंट प्लान। तो अभी मैं बस ऐसे बता रहा हूं आपको। एक्चुअली ये तो ये यूजर से इनपुट लेंगे। और मान लो प्लान हमने बनाया कुछ ऐसा। ठीक है? ये सब हम एआई के हेल्प से कर रहे होंगे एआई कॉल करके। एंड देन वी हैव टू रिटर्न। क्योंकि प्लानर रिटर्न करेगा ना आउटपुट। तो हम रिटर्न करेंगे अ स्टेट में सिर्फ प्लान वाला आउटपुट चेंज करेंगे। तो कैसे? हम कहेंगे मैप डॉट ऑफ और मैं यहां पे प्लान में मैं अपना प्लान पास कर दूंगा। अपना प्लान पास कर दूंगा। हियर वी गो। आया समझ में? कहने का मतलब जब ये नोड एग्जीक्यूट होगा तो वो अपना प्लानिंग करेगा। और यह प्लानिंग का कोड मैंने ऐसे सिमुलेट कर दिया। आप चाहो तो इसको आप एआई से करा सकते हो यूजर से इनपुट ले के। ठीक है? ये कुछ एक्स ओके एक्सेप्शन दे रहा है तो हम एक्सेप्शन सिग्नेचर पे डाल दें। तो ये एक प्लान का नोड मतलब ये बेसिकली प्लान कर देगा। तो ये प्लानर चलेगा और ये प्लान बना के रिटर्न कर देगा और स्टेट में चेंज हो जाएगा। ऑटोमेटिकली आपको कुछ करने की जरूरत नहीं है। देन हम डेवलपमेंट का नोड बना सकते हैं। लेट मी ऐड द डेवलपमेंट नोड। सो लेट्स कॉपी एंड यस देखो। तो जैसे फॉर एग्जांपल देखो हमने एक वर्क फ्लो और ऐड कर दिया है हम वर्क फ्लोस या वर्क फ्लो नाम दो ना इसका वर्क फ्लोस क्यों दे दिया मैं इट्स वर्क फ्लो सिंगल वर्क फ्लो तो इसको भी आप वर्क फ्लो कर लो ये पहला नोड था फिर हमने दूसरा नोड ऐड किया डेवलपर वाला नोड और फिर ये है इसको डायरेक्टली आप हां डायरेक्टली इंपोर्ट कर लो यहां भी लिखने की जरूरत नहीं ठीक है स्टैटिक इंपोर्ट डायरेक्टली हो जाएगा ठीक है सो डायरेक्टली नो अ सिंक स्टेट मिल जाएगा स्टेट स्टेट में सबसे पहले अटेम्प्ट्स को बढ़ाएंगे क्योंकि जब डेवलपर डेवलपर डेवलप कर रहा होगा प्लान प्लान के अकॉर्डिंग तो अटेम्प्ट बढ़ता जाएगा, बढ़ता जाएगा। ठीक है? फिर डेवलपमेंट एक मैसेज देगा डेवलपर। उसके बाद ये प्लान को प्रिंट करेगा कि प्लान एक्चुअली क्या मिला है मुझे पहले स्टेप से। उसके बाद फीडबैक देखेगा कि कुछ फीडबैक तो नहीं मिला है। अब ये देखेगा कोड कोड अभी एक वेरिएबल ले लिया। अब देखा इसने कि अगर मेरा पहली बार है तो मैं ऐसे काम करूंगा। एल्स अगर पहली बार नहीं है तो मेरा कुछ ऐसे प्लान होगा। यह मैंने सिमुलेट कर दिया। इसको भी आप AI से ही बनाओगे। बेसिकली यहां पे एआई कॉल हो रहा होगा। ठीक है? नाउ बस अभी यह चेंज क्या करेगा? यह दो चीज़ चेंज करेगा। एक मैप में एक कोड चेंज करेगा बेसिकली क्योंकि डेवलपर डेवलप करने के बाद कोड ही तो दे रहा है। तो कोड देगा और यह अटेम्प्ट्स कितने अटेम्प्ट्स हो चुके हैं। आया समझ में? सो पहली बार में ये दूसरी बार में ये अह दैट्स इट। अब एक प्लान ये हमारा हो चुका दूसरा वाला। नाउ नेक्स्ट अब रिव्यूअर की बात आई। रिव्यूअर नोड। रिव्य्यूअर नोड भी मैं यहां पे ऐड करूंगा। लेट मी ऐड द रिव्यूअर नोड आल्सो। तो यहां पे देखो वर्क फ्लो डॉट ऐड रिव्यूअर एक नोड मैंने और ऐड कर दिया। नोड असिंक में देखो एक स्टेट है देन रिव्यूअर अपना प्रिंट करेगा देन यह कोड देखेगा देखेगा कोड कहीं टू डू है कोड में अगर कहीं तो ये कोड रिजेक्ट हो जाएगा मतलब अगर कोड में कहीं टू डू आ गया तो कोड रिजेक्ट हो जाएगा ऑटोमेटिकली ये मैंने सिस सिमुलेशन किया है गाइस आप यहां पे एआई कॉल करोगे और चेक करोगे रिव्यूअर के अंदर कि मतलब परफेक्ट है कि नहीं है तो यहां पे रिव्य्यू वाला कोड लिखोगे एआई की हेल्प से लेकर के एआई की हेल्प ले के अब एi की हेल्प कैसे लोगे आप एल लचे 4G का इस्तेमाल कर सकते हो स्प्रिंग एआई का इस्तेमाल कर सकते हो कुछ भी कर सकते हो बेसिकली बस यह यहां पे आपको ब्रेन की आवश्यकता पड़ेगी और ब्रेन हमें एआई देगा फिर अगर ऐसा नहीं है इफ द कोड डज़ नॉट कंटेन दिस टू डू तो हम रिव्यूअर ने कोड अप्रूव कर दिया और इसने देखो स्टेटस में अप्रूव डाल दिया और फीडबैक में कोड लुक्स कंप्लीट डाल दिया और अगर रिजेक्ट हो जाता तो स्टेटस में रिजेक्टेड डाल देता और फीडबैक में कोड कंटेंस अन फिनिश टू डू आया समझ में तो अब हमारा प्लान क्या था स्टार्टिंग में प्लान था अ प्लान था हां क्रिएट अ टास्क एपीआई तो बेसिकली टास्क से रिलेटेड काम करने का प्लान था। ठीक है? सो दिस इज़ व्हाट? तो ये वाला भी हमारा स्टेटस कंप्लीट हो गया। अब फाइनली हम क्या करेंगे? अ कनेक्ट नोड यूजिंग एजेस। अब हम नोड को कनेक्ट करेंगे एजेस की हेल्प से। तो ये बेसिकली ऑपरेशंस बन गए। अब हम वही एक को दूसरे से कनेक्ट करेंगे। रिव्यूअर को या फिर हम प्लानर को डेवलपर से कनेक्ट करेंगे। तो हम यहां पे वर्क फ्लो डॉट ऐड एज एज को ऐड करेंगे। तो सबसे पहले स्टार्ट होगा। यहां से स्टार्ट देन स्टार्ट से कहां जाएगा? प्लानर पे जाएगा। देन वर्क फ्लो डॉट ऐड अब प्लानर से कहां जाएगा? प्लानर्स से ये डेवलपर पे जाएगा। इस वर्क फ्लो पे जाएगा। इस नड पे जाएगा। फिर डॉट ऐड एज और फिर डेवलपर्स से जाएगा रिव्यूअर पे। डेवलपर से जाएगा यह रिव्यूवर पे। तो ये भी हम कॉमा लगा के रिव्यू वर पे ठीक है बस तो ये हमने कनेक्शन बना दिया बेसिकली ये हमने अ ग्राफ के नोट्स को कनेक्ट कर दिया ग्राफ के नोट्स को और ऊपर हमने नोट्स बनाए हैं बेसिकली ऑपरेशंस किए हैं। ठीक है? अब हम क्या करेंगे नाउ कंडीशनल एज भी लगा सकते हैं फीडबैक लूप के लिए। तो चलो भाई कंडीशनल एज। सो अब अब रिवर नोड के बाद हम कंडीशनल राउटिंग करेंगे कि रिव्यू अगर कर लिया है यहां तक तो अब कंडीशनल राउटिंग की बारी आ गई। अब रिवर नोड के बाद कंडीशनल राउटिंग डिफाइन करेंगे। कैसे? देखो कंडीशनल राउटिंग डिफाइन करने के लिए हम वर्क फ्लो डॉट ऐड कंडीशनल एज लगाएंगे। ऐसा नहीं कि डायरेक्टली हम रिवर से एंड कर दें। एंड करना चाहें तो डायरेक्टली एंड भी कर सकते थे। बट ना हमें कंडीशनल राउटिंग लूप पे घुमाना है। तो हम यहां पे ऐड कंडीशनल एज और ऐड कंडीशनल एज पे हम कहेंगे रिव्यूअर से डायरेक्टली एंड पे मत जाना। रिव्यूअर्स से आप यहां पे एज असिंक पे जाना है। देखो एज असिंक ये देखो एक और अ कह सकते हो जाएंगे एज असंक पे और यहां हमें मिलेगा स्टेट एंड अगेन हम यहां पे लिखेंगे कुछ कोड। परफेक्ट। अब यहां पे हम वही कोड लिखेंगे कि अगर अप्रूव्ड है तो यह कर दो। अदरवाइज़ यह कर दो। लेट्स डू। ठीक है? सो तो बेसिकली कंडीशनल रेंडरिंग होगी। कुछ ऐसा लिख देंगे। देखो तो हम एजिंग फिर से कॉल करेंगे। इंपोर्ट कर लो इसको स्टैटिक। एंड यह हमें दे देगा हम स्टेट। और थोड़ा सा कुछ गड़बड़ हो गया। गड़बड़ ब्रैकेट का गड़बड़ हो गया। तो मुझे लग रहा है यह हम [हंसी] दो बार हमने लिख दिया। मुझे लग रहा है। यह चीज हमने दो बार लिख दी। तो हम क्या करते हैं? हां, परफेक्ट है। अब एक ब्रैकेट और करो। उसको देख लेते हैं। पहला रिव्यूअर से एज अ सिंक हो जाएगा। ठीक है? और इफ दिस अप्रूव्ड अगर यह अप्रूव्ड है तो रिटर्न कर देंगे। अप्रूव्ड। मैक्सिमम ऑबेंट हो गया तो रिटर्न कर देंगे। फेल्ड एल्स हम रीट्राई रिटर्न करेंगे। ठीक है? एंड [गला साफ़ करने की आवाज़] ठीक है। परफेक्ट। अदरवाइज मैप एंड हो जाएगा एंड एंड फेल्ड रीिट्राई अ डेवलपर। ठीक है? सो यहां पे मैंने लास्ट में ये बता दिया है। देखो अप्रूव्ड अगर है तो एंड फेल्ड है तो एंड रीटाई तो डेवलपर। रीटाई डेवलप मतलब यहां से अगर रिटर्न हुआ इसने अगर रिटर्न किया अप्रूव्ड तो अप्रूव्ड में एंड हो जाएगा। और फेल्ड इसने रिटर्न किया तब भी एंड हो जाएगा। और रीटाई किया तो डेवलपर के पास फिर से हम चले जाएंगे। ठीक है? तो ये हमने एक कंडीशनल एजिंग की हेल्प से एक और एज रिटर्न एक और कनेक्शन कर दिया। सो मुझे लग रहा है इतना आपको थोड़ा बहुत समझ में आएगा। अब डिटेल में थोड़ा सा अगर मैं वीडियो बनाऊंगा तो और अच्छे से आप समझ पाओगे। बट आपको ये समझ में आएगा। पहले हमने एक ग्राफ बना लिया। यहां पे ग्राफ बेस्ड काम हो रहा है। तो पहले मैंने यहां पे ग्राफ बना लिया। देन ग्राफ में मैंने नोड्स ऐड कर दिए। देन मैंने एच की हेल्प से नोड्स को कनेक्ट कर दिया। यहां पे देखो ये। और एक मैंने कंडीशनल रेंडरिंग कंडीशनल एज कनेक्ट किया जिससे हम लूप में घूम करके जा सके वापस अपने डेवलपर के पास अगर रिव्यूअर फेल कर रहा है या अप्रूव्ड कर रहा है या रिजेक्ट कर रहा है बेसिकली तो अप्रूव करेगा तब तो हम एंड कर जाएंगे। ठीक है? सो फाइनली हमारा काम हो चुका कंपाइल एंड एग्जीक्यूट। अब हम कर सकते हैं। सो लेट्स डू लेट्स राइट क्लिक करेंगे अपने मेन पे एंड हम रन पे क्लिक करेंगे। एंड हियर वी गो। सो ठीक है? नीचे हमें कंपाइल भी करना पड़ेगा। अपने वर्क फ्लो को। तो, यह हमारा वर्क कंडीशनल रेंडरिंग यहां से यहां तक खत्म हुई है। हम यस, हियर वी गो। तो, हम क्या करेंगे? अपनी वर्क फ्लो डॉट कंपाइल कॉल करेंगे। और कंपाइल करने के बाद हमें ग्राफ मिल जाएगा। कंपाइल करने के बाद वी नीड वी विल गेट द ग्राफ। आई थिंक एक हमें ऑब्जेक्ट मिल जाएगा। देखो कंपाइल्ड ग्राफ जिसको हम बोल देंगे ग्राफ है यह हमारा। ठीक है? हम और देन हम क्या कर सकते हैं? अपना ग्राफ में एग्जीक्यूशन स्टार्ट कर सकते हैं। ग्राफ डॉट इनवोक और इनवोक में हम यहां पे अपना रिक्वायरमेंट वगैरह पास कर सकते हैं। बेसिकली इनिशियल स्टेट तो मैं कहूंगा मैप डॉट ऑफ और ऑफ में मैं यहां पे पास करूंगा रिक्वायरमेंट रिक्वायरमेंट और रिक्वायरमेंट में मैं यहां पास करूंगा क्रिएट अ टास्क रेस्ट एपीआई। ठीक है? तो ये इनवोक कर देगा एंड हम रिप्लेस मेथड कॉल विद द हम ठीक तो था ये और ये हमें बेसिकली रिजल्ट रिटन कर देगा रिजल्ट ठीक है कुछ दिक्कत कर रहा है ये डेपिकेटेड मार्क एज रिमूवल ओके तो और कुछ है क्या इनवोक इनवोक फाइनल है हमारे पास डेप्लिकेटेड हो चुका है। मुझे लग रहा है यह वी हैव वी आर यूज़िंग दिस रनबल कॉन्फ़िगरेशन एंड ग्राफ इनपुट दे सकते हैं। तो इसका वी कैन यूज़ लाइक दिस। लेट मी सो कंपाइल ग्राफ इनवोक कंबाइन ग्राफ डॉट है ना आई थिंक ये कह रहा है ना कि हम लोग क्या कर सकते हैं ये जो इनवोक है डुप्लीकेट हो चुका है हम सजेशंस देखो रिप्लेस विद अ कंपाइल ग्राफ डॉट इनवोक ठीक तो है इसको देखेंगे बट हमारे पास रिजल्ट आ चुका तो हम यहां पे क्या कर सकते रिजल्ट को प्रिंट कर सकते हैं। लेट मी डू कुछ ऐसा रिजल्ट इफ प्रेजेंट स्टेट फाइनल रिजल्ट में स्टेटस अटेम्प्ट्स एंड फीडबैक जनरेटेड कोड को प्रिंट कर सकते हैं। ठीक है? अब मैं रन करूंगा और आई थिंक एज डेवलपर रेफर्स टू अनडिफाइंड नोट। सो गाइज़ यहां पे एरर मिल गया है। एक्चुअली कोई दिक्कत नहीं थी। बस यहां पे डेवलपर के बाद कॉमा लग गया था। तो इसको फिक्स मैंने किया। एंड देन मैं रन करूंगा। एंड यहां पे आप देख सकते हो यहां पे। यह देखो। तो पहली बार हमारा देखो प्लानर ने क्रिएटिंग अ प्लान किया एंड डेवलपर ने फिर डेवलपिंग कोड अटेमप्ट वन में इसने यह कोड जनरेट किया है ये बेसिकली इंप्लीमेंट यह प्लान था बेसिकली डेवलपर का एंड देन देखो फीडबैक में रिव्यूअर रिव्यू कोड कोड रिजेक्टेड पहली बार ने रिव्यू कोड रिव्यूअर ने कोड को रिजेक्ट कर दिया डेवलपर ने फिर से जनरेटिंग कोड अटेम्प्ट टू दूसरी बार ने डेवलपर ने कोड को जनरेट किया और जनरेट अ टास्क सर्विस इंप्लीमेंट दिस दिस यह प्लान था बेसिकली एंड फीडबैक में कंटेंस अनफिनिश्ड टू डू ठीक है रिव्यूअर ने कोड को रिव्य्यू किया कोड को अप्रूव किया और हमारा वर्क फ्लो कंप्लीट हो गया और स्टेटस अप्रूव्ड है अटेम्प्ट दो है फीडबैक लूप में कोड लुक्स कंप्लीट कोड जनरेट कोड ये कोड जनरेट हुआ तो अगर कुछ गड़बड़ हो जाता तो बार-बार ऐसे ही यह चलता रहेगा डिपेंडिंग अपॉन द वर्क फ्लो जैसे हमने आइडेंटिफाई किया। सो इस तरह से बना दिया। अब यहां पे देखो मैंने इनवोक का फंक्शनैलिटी का इस्तेमाल किया है टू कॉल द ग्राफ या टू स्टार्ट द ग्राफ। बट आप डॉक्यूमेंटेशन पे जा कर के यहां पे देख सकते हो आप स्ट्रीम का इस्तेमाल कर सकते हो क्योंकि ये जो मेथड है वो डेप्लीकेट हो चुका है। इनवोका मार्क फॉर रिमूवल फॉर रिमूवल ट्रू है। तो इसमें कोई बहुत हार्ड फास्ट रूल नहीं है। कोई रॉकेट साइंस नहीं है। आप डायरेक्टली यूज़ कर सकते हो। यह स्ट्रीम स्ट्रीम में फिर आपको एस सिंक्रोनस काम होगा। तो फॉर ईच एंड देन अप्लाई देन एक्सेप्ट की हेल्प से आप इसको कंज्यूम कर सकते हो। और भी डॉक्यूमेंटेशन में जा करके इसको थोड़ा सा एक्सप्लोर करोगे तो आपको बहुत तगड़ी-तगड़ी चीजें मिलेंगी। तो मुझे कहीं ऑफिशियली डॉक्यूमेंटेशन अ यस ये रही ऑफिशियल इनकी डॉक्यूमेंटेशन। तो यहां से आप जाके चीजें पढ़ सकते हो समझ सकते हो। अगर आप कहोगे तो इसके ऊपर मैं डिटेल वीडियो बनाऊंगा और एक-एक चीज एक-एक काम कैसे होता है और प्रैक्टिकल कॉम्प्लेक्स एजेंट बना के भी मैं आपको दिखाऊंगा जो एआई से भी कनेक्टेड होगा क्योंकि यहां पे सिर्फ एक हमने सिमुलेशन रख दिया है। एi से कनेक्ट नहीं किया। तो आप बस कमेंट करिए lang्राफ वीडियो जल्दी से आपके लिए मिल जाएगी। ओके। सो आई थिंक आपको इस वीडियो का पूरा सिनेरियो समझ में आएगा कि आप कैसे कॉम्प्लेक्स कोडिंग एजेंट बनाओगे या कॉम्प्लेक्स प्लान एजेंट बनाओगे। कोई भी कॉम्प्लेक्स एजेंट कैसे बना सकते हो जावा में। सो दैट्स इट फॉर दिस वीडियो। मिलते हैं नेक्स्ट वीडियो के अंदर। तब तक के लिए जय हिंद जय भारत। बाय-ब [संगीत] [संगीत]

Assistir ao vídeo original no YouTube

Assuntos: Agentes de IA. Publicado no YouTube em 2026-10-19.

Seleção automática por assunto e idioma. O vídeo pertence ao canal de origem.

LangGraph4j प्रोजेक्ट के बारे में

LangGraph4j एक ओपन-सोर्स Java लाइब्रेरी है, जो GitHub पर langgraph4j/langgraph4j रिपॉज़िटरी में MIT लाइसेंस के तहत प्रकाशित है। इसके README के अनुसार इसे चलाने के लिए Java 17 या उसके बाद का संस्करण चाहिए, और प्रोजेक्ट में langgraph4j-core मॉड्यूल जोड़कर शुरुआत की जाती है। README में लिखा है कि पारंपरिक DAG के विपरीत यह साइक्लिक ग्राफ़ (चक्र वाले ग्राफ़) को सपोर्ट करती है, ताकि एजेंट किसी काम को दोबारा आज़मा सके या स्पष्टीकरण माँगने के लिए पीछे लौट सके।

README में डिबगिंग और निगरानी से जुड़ी सुविधाएँ भी बताई गई हैं: चेकपॉइंट, जिनसे ग्राफ़ की स्थिति किसी भी बिंदु पर सेव करके बाद में दोबारा चलाई या जाँची जा सकती है; PlantUML या Mermaid में ग्राफ़ का विज़ुअल चित्र बनाना; नॉन-ब्लॉकिंग (एसिंक्रोनस) ऑपरेशन और LLM के नतीजों की स्ट्रीमिंग; और Playground & Studio नाम का वेब इंटरफ़ेस, जिसमें ग्राफ़ को देखकर चलाया और डिबग किया जा सकता है।

तकनीकी जानकारी

  • नाम: LangGraph4j
  • प्रकार: एजेंटिक वर्कफ़्लो के लिए Java लाइब्रेरी
  • लाइसेंस: MIT
  • ज़रूरत: Java 17 या बाद का संस्करण
  • रिपॉज़िटरी: langgraph4j/langgraph4j (GitHub)
  • दस्तावेज़: langgraph4j.github.io/langgraph4j
  • ग्राफ़ चित्र: PlantUML या Mermaid

यह भी पढ़ें


स्रोत और संदर्भ: GitHub – langgraph4j/langgraph4j (README) · LangGraph4j – दस्तावेज़ · YouTube पर Learn Code With Durgesh चैनल का वीडियो।

Comentários

Postagens mais visitadas deste blog

How to build a JARVIS AI Voice Agent for FREE | Full Livekit Tutorial (2026)

How Does AI Actually Work? 🤖 | AI, Machine Learning & Generative AI Explained