किचन नाईटमेअर्स: LangChain एजंट्स एडिशन

मी रेसिपीजचे विश्लेषण करण्यासाठी आणि मील प्लॅन्स तयार करण्यासाठी एक हेल्थ ॲप बनवले.

मी वेब ॲपसाठी FastAPI आणि React वापरले. एजंट्ससाठी मी LangChain वापरले. माझे एजंट्स काय करत आहेत हे पाहण्यासाठी मी LangSmith वापरले.

उद्दिष्ट साधे होते. वापरकर्ता एक URL देतो. ॲप ती रेसिपी मिळवते आणि त्याचे मुख्य पदार्थ (mains), साईड डिशेस (sides) आणि सॉसेस (sauces) यांसारख्या घटकांमध्ये विभाजन करते. वापरकर्ते त्यानंतर जेवण तयार करण्यासाठी किंवा कॅलरीज ट्रॅक करण्यासाठी हे घटक एकत्र करू शकतात.

मला एजंटच्या विश्वासार्हतेबाबत (reliability) एका मोठ्या समस्येचा सामना करावा लागला.

सुरुवातीला, मी रेसिपी ग्रुप करण्यासाठी आणि आउटपुट फॉरमॅट करण्यासाठी एकच एजंट वापरला. तो वारंवार अपयशी ठरत होता. तो डुप्लिकेट आयटम्स तयार करत होता. तो सूचना (instructions) वगळत होता. तो सर्व काही एका मोठ्या ब्लॉकमध्ये एकत्र करत होता.

हे सुधारण्यासाठी मी 'ड्युअल एजंट सेटअप' (dual agent setup) वापरून पाहिले:

  • एजंट १ (Grouping): रेसिपीचे विविध घटक शोधतो आणि साहित्य (ingredients) व सूचनांचे आयोजन करतो.
  • एजंट २ (Structuring): तो आयोजित केलेला मजकूर घेतो आणि त्याचे स्वच्छ JSON फॉरमॅटमध्ये रूपांतर करतो.

हे एक दिवस काम करत होते. दुसऱ्या दिवशी, पुन्हा त्रुटी (errors) येऊ लागल्या. स्ट्रक्चरिंग एजंटने असे JSON पाठवण्यास सुरुवात केली ज्यामध्ये सर्व साहित्य आणि सूचना गहाळ होत्या.

मी 'print statements' वापरणे थांबवले आणि LangSmith वापरण्यास सुरुवात केली.

LangSmith मला लेटन्सी (latency), टोकन वापर आणि खर्च दाखवते. सर्वात महत्त्वाचे म्हणजे, चेन नेमकी कुठे तुटते हे ते मला अचूकपणे दाखवते.

माझ्या बाबतीत, ग्रुपिंग एजंट उत्तम प्रकारे काम करत होता. त्याने सर्व तपशिलांसह उत्कृष्ट markdown तयार केले होते. अपयश दुसऱ्या एजंटमध्ये घडले. ट्रान्सफॉर्मेशन दरम्यान तो डेटा गमावत होता.

आता मी तीन सुधारणांवर काम करत आहे:

  • एजंटची विश्वासार्हता सुधारणे: मी पाहिले की स्ट्रक्चरिंग एजंट मूळ प्रॉम्प्टमध्ये नसलेले 'cuisine' फील्ड ओळखण्याचा प्रयत्न करतो. या गोंधळामुळे त्रुटी निर्माण होतात.
  • व्हॅलिडेशन (validation) जोडणे: आउटपुट तपासण्यासाठी मी Python फंक्शन्स वापरेन. markdown योग्य आहे आणि त्यात कोणतीही डुप्लिकेट माहिती नाही याची खात्री मला करायची आहे.
  • उत्तम ऑब्झर्व्हेबिलिटी (observability): सोप्या ट्रेसिंगसाठी मला प्रत्येक एजंट एक्झिक्युशनला विशिष्ट युजर रिक्वेस्टशी लिंक करायचे आहे.

एजंट्ससह काम करणे ही एकदाच करण्याची गोष्ट नाही. हे टेस्टिंग आणि फिक्सिंगचे एक सतत चालणारे चक्र आहे.

स्रोत: https://dev.to/kristianroopnarine/kitchen-nightmares-langchain-agents-edition-45co

ऐच्छिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi