ai-agents-for-beginners

मल्टी-एजंट डिझाईन

(हा धडा पाहण्यासाठी वरील प्रतिमेवर क्लिक करा)

AI एजंटमधील मेटाकॉग्निशन

परिचय

AI एजंट्समधील मेटाकॉग्निशन या धड्यावर आपले स्वागत आहे! हा अध्याय आरंभिकांकरिता तयार केला आहे जे जाणून घेण्यास उत्सुक आहेत की AI एजंट स्वतःच्या विचार प्रक्रियेबद्दल कसे विचार करू शकतात. या धड्याच्या शेवटी, आपण महत्त्वाच्या संकल्पनांना समजून घेणार आहात आणि मेटाकॉग्निशन AI एजंट डिझाईनमध्ये लागू करण्यासाठी व्यवहार्य उदाहरणांसह सुसज्ज होणार आहात.

शिक्षण उद्दिष्टे

हा धडा पूर्ण केल्यानंतर, आपण हे करू शकाल:

  1. एजंट परिभाषांमध्ये तर्कशास्त्राच्या लूप्सचे परिणाम समजून घेणे.
  2. स्वयं-सुधारण करणाऱ्या एजंट्ससाठी नियोजन आणि मूल्यमापन तंत्रे वापरणे.
  3. कार्य पूर्ण करण्यासाठी कोडमध्ये हस्तक्षेप करण्यास सक्षम स्वतःचे एजंट तयार करणे.

मेटाकॉग्निशनचा परिचय

मेटाकॉग्निशन म्हणजे स्वतःच्या विचारांबद्दल विचार करण्याच्या उच्च-स्तरीय संज्ञानात्मक प्रक्रियांचा समावेश. AI एजंटसाठी, याचा अर्थ म्हणजे स्वतःच्या क्रियाकलापांचे स्वतःची जाण आणि भूतकाळातील अनुभवांच्या आधारे मूल्यांकन व समायोजन करणे. मेटाकॉग्निशन, किंवा “विचारावर विचार,” हा एजंटिक AI प्रणाली विकसित करण्यामध्ये महत्त्वपूर्ण संकल्पना आहे. यात AI प्रणालींना त्यांच्या अंतर्गत प्रक्रियांबद्दल जाणीव असते आणि त्यांनी त्यांच्या वर्तनाचे निरीक्षण, नियमबद्धता आणि अनुकूलन करू शकतात. जसे आपण खोली वाचतो किंवा समस्येचे विश्लेषण करतो तशीच. ही आत्म-जाणीव AI प्रणालींना चांगले निर्णय घेण्यात, चुका ओळखण्यात आणि वेळोवेळी त्यांची कामगिरी सुधारण्यात मदत करू शकते - जे पुन्हा ट्युरिंग चाचणी आणि AI जग जिंकेल की नाही ह्या वादाशी जोडलेले आहे.

एजंटिक AI प्रणालीच्या संदर्भात, मेटाकॉग्निशन काही आव्हाने सोडवण्यास मदत करू शकते, जसे की:

मेटाकॉग्निशन म्हणजे काय?

मेटाकॉग्निशन, किंवा “विचारावर विचार,” हा एक उच्च-स्तरीय संज्ञानात्मक प्रक्रिया आहे ज्यामध्ये स्वतःच्या संज्ञानात्मक प्रक्रियेची आत्म-जाणीव आणि स्वयं-नियमन यांचा समावेश होतो. AI च्या क्षेत्रात, मेटाकॉग्निशन एजंट्सना त्यांच्या धोरणे आणि क्रियांच्या मूल्यांकन व अनुकूलन करण्यास सक्षम बनवते, ज्यामुळे समस्या सोडवण्याची आणि निर्णय घेण्याची क्षमता सुधारते. मेटाकॉग्निशन समजून घेऊन, आपण असे AI एजंट डिझाइन करू शकता जे केवळ बुद्धिमानच नव्हे तर अधिक अनुकूल आणि कार्यक्षम देखील असतील. खऱ्या मेटाकॉग्निशनमध्ये, AI स्पष्टपणे स्वतःच्या तर्कशास्त्राबद्दल तर्क करीत असते.

उदाहरण: “मी स्वस्त तिकिटांवर प्राधान्य दिले कारण… मला थेट फ्लाइट्स मिस होत असू शकतात, तर मला पुन्हा तपासावे लागेल.”. कसे व का त्याने विशिष्ट मार्ग निवडला ते ट्रॅक करणे.

AI एजंटमध्ये मेटाकॉग्निशनचे महत्त्व

मेटाकॉग्निशन AI एजंट डिझाईनमध्ये अनेक कारणांसाठी महत्त्वपूर्ण भूमिका बजावते:

मेटाकॉग्निशनचे महत्त्व

AI एजंटचे घटक

मेटाकॉग्निशन प्रक्रियेत खोलवर जाण्याआधी, AI एजंटचे मूलभूत घटक समजून घेणे आवश्यक आहे. AI एजंट सामान्यतः खालील भागांपासून तयार असतो:

हे घटक एकत्र येऊन “तज्ज्ञता युनिट” तयार करतात जे विशिष्ट कार्ये पार पाडू शकते.

उदाहरण: एका ट्रॅव्हल एजंटचा विचार करा, जो फक्त तुमचा सुट्टी नियोजन करत नाही तर रिअल-टाइम डेटा आणि मागील ग्राहकांच्या प्रवासाच्या अनुभवांवर आधारित त्याचा मार्ग समायोजित करतो.

उदाहरण: ट्रॅव्हल एजंट सेवेमध्ये मेटाकॉग्निशन

गृहित धरा की तुम्ही AI-powered ट्रॅव्हल एजंट सेवा डिझाइन करत आहात. हा एजंट, “ट्रॅव्हल एजंट”, वापरकर्त्यांना त्यांच्या सुटीचे नियोजन करण्यात मदत करतो. मेटाकॉग्निशन समाविष्ट करण्यासाठी, ट्रॅव्हल एजंटने स्वतःची जाणीव आणि भूतकाळातील अनुभवांवर आधारित आपले क्रियाकलाप मूल्यांकन व समायोजित करणे आवश्यक आहे. मेटाकॉग्निशन कशी भूमिका बजावू शकते ते पाहूया:

सध्याचा कार्य

वापरकर्त्याला पॅरिसला प्रवासाचे नियोजन करण्यात मदत करणे.

कार्य पूर्ण करण्यासाठी पावले

  1. वापरकर्त्याच्या प्राधान्यांची माहिती गोळा करा: वापरकर्त्याला त्यांच्या प्रवासाच्या तारखा, बजेट, आवडी (जसे की संग्रहालये, खाद्यपदार्थ, खरेदी) आणि विशिष्ट गरजा विचारा.
  2. माहिती मिळवा: वापरकर्त्याच्या प्राधान्यांनुसार फ्लाइट्स, निवासस्थान, आकर्षणे आणि रेस्टॉरंट शोधा.
  3. शिफारसी तयार करा: वैयक्तिकृत प्रवास आराखडा द्या ज्यात फ्लाइट तपशील, हॉटेल राखीव तिकिटे व सुचवलेले उपक्रम असतील.
  4. प्रतिसादावर आधारित समायोजन करा: वापरकर्त्याचे शिफारसींबाबत अभिप्राय घ्या आणि आवश्यक समायोजन करा.

आवश्यक संसाधने

अनुभव आणि स्वयं-प्रतिबिंब

ट्रॅव्हल एजंट मेटाकॉग्निशन वापरून आपल्या कामगिरीचे मूल्यांकन करतो व भूतकाळातील अनुभवातून शिकतो. उदाहरणार्थ:

  1. वापरकर्त्याच्या अभिप्रायाचे विश्लेषण: ट्रॅव्हल एजंट वापरकर्त्याचा अभिप्राय तपासतो की कुठल्या शिफारसी चांगल्या होत्या आणि कुठल्या नव्हत्या. त्यानुसार भविष्यातील शिफारसी समायोजित करतो.
  2. अनुकूलता: जर वापरकर्त्याने आधी गर्दी असलेल्या ठिकाणी नको असे म्हटले असल्यास, ट्रॅव्हल एजंट भविष्यात पूर्वीच्या वेळात लोकप्रिय पर्यटन स्थळे टाळेल.
  3. चुका सुधारणा: जर ट्रॅव्हल एजंटने मागील बुकिंगमध्ये एखादी चुका केली असेल, जसे की पूर्ण बुक असलेला हॉटेल सुचवणे, तर पुढील शिफारसी करण्यापूर्वी उपलब्धता अधिक काटेकोरपणे तपासेल.

व्यवहार्य विकासक उदाहरण

मेटाकॉग्निशन समाविष्ट करताना ट्रॅव्हल एजंटचा सोपा कोड कसा दिसू शकतो:

class Travel_Agent:
    def __init__(self):
        self.user_preferences = {}
        self.experience_data = []

    def gather_preferences(self, preferences):
        self.user_preferences = preferences

    def retrieve_information(self):
        # पसंतीनुसार फ्लाइट्स, हॉटेल्स आणि आकर्षणे शोधा
        flights = search_flights(self.user_preferences)
        hotels = search_hotels(self.user_preferences)
        attractions = search_attractions(self.user_preferences)
        return flights, hotels, attractions

    def generate_recommendations(self):
        flights, hotels, attractions = self.retrieve_information()
        itinerary = create_itinerary(flights, hotels, attractions)
        return itinerary

    def adjust_based_on_feedback(self, feedback):
        self.experience_data.append(feedback)
        # अभिप्रायाचे विश्लेषण करा आणि भविष्यातील शिफारसी समायोजित करा
        self.user_preferences = adjust_preferences(self.user_preferences, feedback)

# उदाहरण वापर
travel_agent = Travel_Agent()
preferences = {
    "destination": "Paris",
    "dates": "2025-04-01 to 2025-04-10",
    "budget": "moderate",
    "interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
travel_agent.adjust_based_on_feedback(feedback)

मेटाकॉग्निशनचे महत्त्व का आहे

मेटाकॉग्निशन समाविष्ट केल्याने, ट्रॅव्हल एजंट अधिक वैयक्तिकृत व अचूक प्रवास शिफारसी देऊ शकतो, ज्यामुळे वापरकर्ता अनुभव सुधारतो.


2. एजंटमधील नियोजन

नियोजन हा AI एजंटच्या वर्तनाचा महत्त्वाचा घटक आहे. यामध्ये उद्दिष्ट साध्य करण्यासाठी आवश्यक पायऱ्यांचा आराखडा तयार करणे, सध्याच्या स्थिती, संसाधने आणि संभाव्य अडचणी लक्षात घेणे यांचा समावेश होतो.

नियोजनाची घटकं

उदाहरण: ट्रॅव्हल एजंटला वापरकर्त्याच्या प्रवासाचे नियोजन प्रभावीपणे करण्यात मदत करण्यासाठी आवश्यक पावले.

ट्रॅव्हल एजंटसाठी पावले

  1. वापरकर्त्याच्या प्राधान्यांची माहिती गोळा करा
    • प्रवासाच्या तारखा, बजेट, आवडी आणि विशिष्ट गरजा विचारा.
    • उदाहरणे: “तुम्ही केव्हा प्रवास करण्याचा विचार करत आहात?” “तुमचे बजेट किती आहे?” “तुम्हाला सुट्टीत काय करायला आवडेल?”
  2. माहिती मिळवा
    • वापरकर्त्याच्या प्राधान्यांनुसार संबंधित प्रवास पर्याय शोधा.
    • फ्लाइट्स: वापरकर्त्याच्या बजेट व इच्छित तारखांमध्ये उपलब्ध फ्लाइट शोधा.
    • निवासस्थान: स्थान, किंमत व सुविधांनुसार हॉटेल किंवा भाड्याच्या मालमत्ता शोधा.
    • आकर्षणे व रेस्टॉरंट्स: वापरकर्त्याच्या आवडीशी सुसंगत लोकप्रिय आकर्षणे, उपक्रम व भोजनाचे पर्याय ओळखा.
  3. शिफारसी तयार करा
    • मिळालेली माहिती वैयक्तिकृत प्रवास आराखड्यात रूपांतरित करा.
    • फ्लाइट पर्याय, हॉटेल राखीव तिकिटे, सुचवलेले उपक्रम यांचा तपशील द्या, वापरकर्त्याच्या प्राधान्यांनुसार शिफारसी सानुकूल करा.
  4. प्रवास आराखडा वापरकर्त्याला सादर करा
    • प्रस्तावित आराखडा वापरकर्त्याला पाहण्यासाठी द्या.
    • उदाहरण: “तुमच्या पॅरिस प्रवासासाठी हा आराखडा आहे. यात फ्लाइट तपशील, हॉटेल बुकिंग आणि शिफारसी दिलेल्या उपक्रम व रेस्टॉरंट्स यांचा समावेश आहे. तुमचे मत सांगा!”
  5. अभिप्राय गोळा करा
    • प्रस्तावित आराखड्याबाबत वापरकर्त्याचा अभिप्राय विचारा.
    • उदाहरणे: “तुम्हाला फ्लाइट पर्याय आवडले का?” “हॉटेल तुमच्या गरजांसाठी योग्य आहे का?” “कोणतेही उपक्रम जोडायचे किंवा काढायचे आहेत का?”
  6. अभिप्रायानुसार समायोजन करा
    • वापरकर्त्याच्या अभिप्रायानुसार आराखड्यात बदल करा.
    • फ्लाइट, निवासस्थान, उपक्रमांमध्ये आवश्यक बदल करा जेणेकरून ते वापरकर्त्याच्या प्राधान्यांशी जुळतील.
  7. अंतिम पुष्टीकरण
    • अद्ययावत आराखडा वापरकर्त्याला अंतिम पुष्टीसाठी सादर करा.
    • उदाहरण: “तुमच्या अभिप्रायानुसार बदल केले आहेत. हा अद्ययावत आराखडा आहे. सर्व काही तुम्हाला योग्य वाटत आहे का?”
  8. बुकिंग व पुष्टीकरण करा
    • वापरकर्त्याने आराखडा मंजूर केल्यानंतर फ्लाइट, निवासस्थान आणि नियोजित उपक्रमांचे बुकिंग करा.
    • पुष्टीकरण तपशील वापरकर्त्याला पाठवा.
  9. सतत समर्थन पुरवा
    • प्रवासादरम्यान किंवा अगोदर कोणत्याही बदलांमध्ये किंवा अतिरिक्त विनंत्यांमध्ये वापरकर्त्याला मदत करण्यास उपलब्ध राहा.
    • उदाहरण: “तुमच्या प्रवासादरम्यान अधिक मदतीची गरज असल्यास, मला कुठल्याही वेळी संपर्क करा!”

उदाहरण संवाद

class Travel_Agent:
    def __init__(self):
        self.user_preferences = {}
        self.experience_data = []

    def gather_preferences(self, preferences):
        self.user_preferences = preferences

    def retrieve_information(self):
        flights = search_flights(self.user_preferences)
        hotels = search_hotels(self.user_preferences)
        attractions = search_attractions(self.user_preferences)
        return flights, hotels, attractions

    def generate_recommendations(self):
        flights, hotels, attractions = self.retrieve_information()
        itinerary = create_itinerary(flights, hotels, attractions)
        return itinerary

    def adjust_based_on_feedback(self, feedback):
        self.experience_data.append(feedback)
        self.user_preferences = adjust_preferences(self.user_preferences, feedback)

# बुकिंग विनंतीमध्ये उदाहरण वापर सुरू करण्यासाठी
travel_agent = Travel_Agent()
preferences = {
    "destination": "Paris",
    "dates": "2025-04-01 to 2025-04-10",
    "budget": "moderate",
    "interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
travel_agent.adjust_based_on_feedback(feedback)

3. सुधारात्मक RAG प्रणाली

प्रथम, RAG साधन आणि प्री-एम्प्टिव्ह संदर्भ लोड यातील फरक समजून घेऊया.

RAG vs संदर्भ लोडिंग

Retrieval-Augmented Generation (RAG)

RAG हे रिट्रीवल प्रणाली आणि जनरेटिव्ह मॉडेलचे संयोजन आहे. जेव्हा एखादा क्वेरी केला जातो, तेव्हा रिट्रीवल प्रणाली बाह्य स्त्रोताकडून संबंधित दस्तऐवज किंवा डेटा आणते, आणि ही माहिती जनरेटिव्ह मॉडेलमध्ये इनपुट म्हणून वापरली जाते. यामुळे मॉडेल अधिक अचूक आणि संदर्भानुसार संबंधित उत्तरे तयार करू शकते.

RAG प्रणालीमध्ये, एजंट ज्ञान आधारातून संबंधित माहिती प्राप्त करत त्याचा वापर योग्य प्रतिक्रिया किंवा क्रिया निर्माण करण्यासाठी करतो.

सुधारात्मक RAG दृष्टिकोन

सुधारात्मक RAG दृष्टिकोन RAG तंत्रांचा वापर करून चुका सुधारण्यावर आणि AI एजंटची अचूकता सुधारण्यावर लक्ष केंद्रित करतो. यात असतात:

  1. प्रॉम्प्टिंग तंत्र: एजंटला संबंधित माहिती मिळवण्यासाठी विशिष्ट प्रॉम्प्ट वापरणे.
  2. साधन: एजंटला मिळालेल्या माहितीच्या प्रासंगिकता चे मूल्यांकन करण्यासाठी आणि अचूक उत्तरे निर्माण करण्यासाठी अल्गोरिदम व यंत्रणा वापरणे.
  3. मूल्यमापन: एजंटच्या कामगिरीचे सातत्याने मूल्यमापन करणे आणि त्याची अचूकता व कार्यक्षमतेत सुधारणा करणे.

उदाहरण: शोध एजंटमधील सुधारात्मक RAG

एखादा शोध एजंट जी वेबवरून माहिती आणतो वापरकर्त्यांच्या प्रश्नांची उत्तरे देण्यासाठी. सुधारात्मक RAG दृष्टिकोनामध्ये असू शकते:

  1. प्रॉम्प्टिंग तंत्र: वापरकर्त्याच्या इनपुटनुसार शोध क्वेरी तयार करणे.
  2. साधन: नैसर्गिक भाषा प्रक्रिया आणि मशीन लर्निंग अल्गोरिदम वापरून शोध परिणामांचे मोल घेणे आणि फिल्टर करणे.
  3. मूल्यमापन: वापरकर्त्याच्या अभिप्रायावरून मिळालेल्या माहितीतील अचूकतेची ओळख पटवणे आणि चुका सुधारणा करणे.

ट्रॅव्हल एजंटमधील सुधारात्मक RAG

सुधारात्मक RAG (Retrieval-Augmented Generation) AI ला माहिती प्राप्त करण्याची आणि तयार करण्याची क्षमता वाढवते तसेच कोणत्याही अचूकतेतील चुका दुरुस्त करते. ट्रॅव्हल एजंट कसा सुधारात्मक RAG दृष्टिकोन वापरुन अधिक अचूक आणि संबंधित प्रवास शिफारसी देऊ शकतो ते पाहूया.

यात समाविष्ट आहे:

ट्रॅव्हल एजंटमध्ये सुधारात्मक RAG लागू करण्याची पावले

  1. प्रारंभिक वापरकर्ता संवाद
    • ट्रॅव्हल एजंट वापरकर्त्याकडून सुरुवातीची प्राधान्ये गोळा करतो, जसे की गंतव्य, प्रवासाच्या तारखा, बजेट आणि आवडी.
    • उदाहरण:

      preferences = {
          "destination": "Paris",
          "dates": "2025-04-01 to 2025-04-10",
          "budget": "moderate",
          "interests": ["museums", "cuisine"]
      }
      
  2. माहिती शोधणे
    • ट्रॅव्हल एजंट वापरकर्त्याच्या प्राधान्यांनुसार फ्लाइट्स, निवासस्थान, आकर्षणे, आणि रेस्टॉरंट्सची माहिती मिळवतो.
    • उदाहरण:

      flights = search_flights(preferences)
      hotels = search_hotels(preferences)
      attractions = search_attractions(preferences)
      
  3. प्रारंभिक शिफारसी तयार करणे
    • ट्रॅव्हल एजंट मिळालेली माहिती वापरून वैयक्तिकृत प्रवास आराखडा तयार करतो.
    • उदाहरण:

      itinerary = create_itinerary(flights, hotels, attractions)
      print("Suggested Itinerary:", itinerary)
      
  4. वापरकर्ता अभिप्राय गोळा करणे
    • ट्रॅव्हल एजंट प्रारंभिक शिफारसींबाबत वापरकर्त्याचा अभिप्राय घेतो.
    • उदाहरण:

      feedback = {
          "liked": ["Louvre Museum"],
          "disliked": ["Eiffel Tower (too crowded)"]
      }
      
  5. सुधारात्मक RAG प्रक्रिया
    • प्रॉम्प्टिंग तंत्र: वापरकर्त्याच्या अभिप्रायावर आधारित नवीन शोध क्वेरी तयार करणे.
      • उदाहरण:

        if "disliked" in feedback:
            preferences["avoid"] = feedback["disliked"]
        
    • साधन: नवीन शोध परिणामांचे मूल्यांकन व फिल्टरिंग करण्यासाठी अल्गोरिदम वापरणे, जे वापरकर्त्याच्या अभिप्रायानुसार प्रासंगिकतेवर भर देतात.
      • उदाहरण:

        new_attractions = search_attractions(preferences)
        new_itinerary = create_itinerary(flights, hotels, new_attractions)
        print("Updated Itinerary:", new_itinerary)
        
    • मूल्यमापन: वापरकर्त्याच्या अभिप्रायाचा विश्लेषण करून शिफारसींच्या प्रासंगिकता व अचूकतेचे सातत्याने मूल्यांकन करणे व आवश्यक ते बदल करणे.
      • उदाहरण:

        def adjust_preferences(preferences, feedback):
            if "liked" in feedback:
                preferences["favorites"] = feedback["liked"]
            if "disliked" in feedback:
                preferences["avoid"] = feedback["disliked"]
            return preferences
        
        preferences = adjust_preferences(preferences, feedback)
        

व्यावहारिक उदाहरण

सुधारात्मक RAG दृष्टिकोन ट्रॅव्हल एजंटमध्ये समाविष्ट करणारा सोपा Python कोड उदाहरण येथे आहे:

class Travel_Agent:
    def __init__(self):
        self.user_preferences = {}
        self.experience_data = []

    def gather_preferences(self, preferences):
        self.user_preferences = preferences

    def retrieve_information(self):
        flights = search_flights(self.user_preferences)
        hotels = search_hotels(self.user_preferences)
        attractions = search_attractions(self.user_preferences)
        return flights, hotels, attractions

    def generate_recommendations(self):
        flights, hotels, attractions = self.retrieve_information()
        itinerary = create_itinerary(flights, hotels, attractions)
        return itinerary

    def adjust_based_on_feedback(self, feedback):
        self.experience_data.append(feedback)
        self.user_preferences = adjust_preferences(self.user_preferences, feedback)
        new_itinerary = self.generate_recommendations()
        return new_itinerary

# उदाहरण वापर
travel_agent = Travel_Agent()
preferences = {
    "destination": "Paris",
    "dates": "2025-04-01 to 2025-04-10",
    "budget": "moderate",
    "interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
new_itinerary = travel_agent.adjust_based_on_feedback(feedback)
print("Updated Itinerary:", new_itinerary)

प्री-एम्प्टिव्ह संदर्भ लोड

प्री-एम्प्टिव कॉन्टेक्स्ट लोड म्हणजे क्वेरी प्रक्रिया करण्यापूर्वी मॉडेलमध्ये संबंधित संदर्भ किंवा पार्श्वभूमी माहिती लोड करणे. याचा अर्थ मॉडेलला सुरुवातीपासूनच या माहितीस प्रवेश असतो, ज्यामुळे प्रक्रियेदरम्यान अतिरिक्त डेटा पुनःप्राप्त करण्याची गरज न पडता अधिक माहितीपूर्ण प्रतिसाद तयार करण्यात ते मदत करू शकते.

येथे Python मध्ये ट्रॅव्हल एजंट अनुप्रयोगासाठी प्री-एम्प्टिव कॉन्टेक्स्ट लोड कसा दिसू शकतो याचे साधे उदाहरण आहे:

class TravelAgent:
    def __init__(self):
        # लोकप्रिय गंतव्ये आणि त्यांची माहिती पूर्व-लोड करा
        self.context = {
            "Paris": {"country": "France", "currency": "Euro", "language": "French", "attractions": ["Eiffel Tower", "Louvre Museum"]},
            "Tokyo": {"country": "Japan", "currency": "Yen", "language": "Japanese", "attractions": ["Tokyo Tower", "Shibuya Crossing"]},
            "New York": {"country": "USA", "currency": "Dollar", "language": "English", "attractions": ["Statue of Liberty", "Times Square"]},
            "Sydney": {"country": "Australia", "currency": "Dollar", "language": "English", "attractions": ["Sydney Opera House", "Bondi Beach"]}
        }

    def get_destination_info(self, destination):
        # पूर्व-लोड केलेल्या संदर्भातून गंतव्याची माहिती मिळवा
        info = self.context.get(destination)
        if info:
            return f"{destination}:\nCountry: {info['country']}\nCurrency: {info['currency']}\nLanguage: {info['language']}\nAttractions: {', '.join(info['attractions'])}"
        else:
            return f"Sorry, we don't have information on {destination}."

# उदाहरण वापर
travel_agent = TravelAgent()
print(travel_agent.get_destination_info("Paris"))
print(travel_agent.get_destination_info("Tokyo"))

स्पष्टीकरण

  1. इनिशियलायझेशन (__init__ पद्धत): TravelAgent वर्ग प्री-लोडेड डिक्शनरी लोड करतो ज्यात पॅरिस, टोकियो, न्यू यॉर्क, सिडनी यांसारख्या लोकप्रिय ठिकाणांची माहिती असते. या डिक्शनरीमध्ये प्रत्येक ठिकाणासाठी देश, चलन, भाषा आणि मुख्य आकर्षणे यासारखे तपशील असतात.

  2. माहिती मिळवणे (get_destination_info पद्धत): जेव्हा वापरकर्ता विशिष्ट ठिकाणाबद्दल विचारतो, तेव्हा get_destination_info पद्धत प्री-लोड केलेल्या संदर्भ डिक्शनरीमधून संबंधित माहिती प्राप्त करते.

संदर्भ प्री-लोड केल्याने, ट्रॅव्हल एजंट अनुप्रयोग वास्तविक वेळेत बाह्य स्रोताकडून ही माहिती पुनःप्राप्त न करता वापरकर्त्यांच्या क्वेरींना त्वरीत प्रतिसाद देऊ शकतो. त्यामुळे अनुप्रयोग अधिक कार्यक्षम आणि प्रतिसादक्षम बनतो.

टरवायला सुरूवात करण्यापूर्वी उद्दिष्टासह योजना तयार करणे

उद्दिष्टासह योजना तयार करणे म्हणजे स्पष्ट उद्दिष्ट किंवा अपेक्षित परिणाम लक्षात ठेवून सुरुवात करणे. या उद्दिष्टाची सुरुवातीपासून सदृढ व्याख्या केल्याने मॉडेल पुनरावृत्ती प्रक्रियेदरम्यान त्या मार्गदर्शन म्हणून वापरू शकते. त्यामुळे प्रत्येक पुनरावृत्ती अपेक्षित परिणामाकडे जवळ जाऊन प्रक्रिया अधिक कार्यक्षम आणि केंद्रित होते.

येथे Python मध्ये ट्रॅव्हल एजंटसाठी उद्दिष्टासह योजना तयार करून पुनरावृत्ती करण्याचे उदाहरण दिले आहे:

परिस्थिती

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

पावले

  1. ग्राहकाच्या पसंती आणि बजेटची व्याख्या करा.
  2. या पसंतीच्या आधारावर प्राथमिक योजना तयार करा.
  3. ग्राहकाच्या समाधानासाठी योजना परिष्कृत करण्यासाठी पुनरावृत्ती करा.

Python कोड

class TravelAgent:
    def __init__(self, destinations):
        self.destinations = destinations

    def bootstrap_plan(self, preferences, budget):
        plan = []
        total_cost = 0

        for destination in self.destinations:
            if total_cost + destination['cost'] <= budget and self.match_preferences(destination, preferences):
                plan.append(destination)
                total_cost += destination['cost']

        return plan

    def match_preferences(self, destination, preferences):
        for key, value in preferences.items():
            if destination.get(key) != value:
                return False
        return True

    def iterate_plan(self, plan, preferences, budget):
        for i in range(len(plan)):
            for destination in self.destinations:
                if destination not in plan and self.match_preferences(destination, preferences) and self.calculate_cost(plan, destination) <= budget:
                    plan[i] = destination
                    break
        return plan

    def calculate_cost(self, plan, new_destination):
        return sum(destination['cost'] for destination in plan) + new_destination['cost']

# उदाहरण वापर
destinations = [
    {"name": "Paris", "cost": 1000, "activity": "sightseeing"},
    {"name": "Tokyo", "cost": 1200, "activity": "shopping"},
    {"name": "New York", "cost": 900, "activity": "sightseeing"},
    {"name": "Sydney", "cost": 1100, "activity": "beach"},
]

preferences = {"activity": "sightseeing"}
budget = 2000

travel_agent = TravelAgent(destinations)
initial_plan = travel_agent.bootstrap_plan(preferences, budget)
print("Initial Plan:", initial_plan)

refined_plan = travel_agent.iterate_plan(initial_plan, preferences, budget)
print("Refined Plan:", refined_plan)

कोड स्पष्टीकरण

  1. इनिशियलायझेशन (__init__ पद्धत): TravelAgent वर्ग संभाव्य ठिकाणांची यादी घेऊन सुरूवात करतो, ज्यामध्ये प्रत्येक ठिकाणाच्या नाव, खर्च, आणि क्रियाकलाप प्रकार यांसारख्या गुणधर्मांचा समावेश असतो.

  2. योजना तयार करणे (bootstrap_plan पद्धत): ही पद्धत ग्राहकाच्या पसंती आणि बजेटच्या आधारावर प्राथमिक प्रवास योजना तयार करते. ती ठिकाणांची यादी एका-एक करून तपासते आणि ती योजना मध्ये जोडते जर ती ग्राहकाच्या पसंतीशी सुसंगत असेल आणि बजेटमध्ये बसेल.

  3. पसंत्या जुळवणे (match_preferences पद्धत): ही पद्धत तपासते की एखादे ठिकाण ग्राहकाच्या पसंतीशी जुळते का.

  4. योजना पुनरावृत्ती (iterate_plan पद्धत): ही पद्धत प्राथमिक योजनेत सुधारणा करते, प्रत्येक ठिकाणाऐवजी ग्राहकाच्या अपेक्षा आणि बजेट मर्यादांनुसार अधिक चांगला पर्याय शोधण्याचा प्रयत्न करते.

  5. खर्च मोजणे (calculate_cost पद्धत): ही पद्धत सध्याच्या योजनेचा एकूण खर्च मोजते, ज्यामध्ये संभाव्य नवीन ठिकाणाचा खर्चही समाविष्ट असतो.

उदाहरणात्मक वापर

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

पुनःमुल्यांकन व स्कोअरिंगसाठी LLM चा फायदा घेणे

लार्ज लँग्वेज मॉडल्स (LLMs) पुनःमुल्यांकन व स्कोअरिंगसाठी वापरले जाऊ शकतात, ज्यामुळे पुनर्प्राप्त दस्तऐवज किंवा तयार केलेल्या प्रतिसादांची सुसंगतता आणि गुणवत्ता तपासली जाते. हे कसे कार्य करते ते येथे दिले आहे:

पुनर्प्राप्ती: पहिल्या टप्प्यात क्वेरीच्या आधारावर उमेदवार दस्तऐवज किंवा प्रतिसादांची यादी मिळवली जाते.

पुनःमुल्यांकन: LLM उमेदवारांची गुणवत्ता आणि सुसंगततेनुसार पुनःमुल्यांकन करते आणि त्यानुसार त्यांना पुन्हा क्रमबद्ध करते. यामुळे सर्वात सुसंगत आणि उच्च-गुणवत्तेची माहिती पहिल्यांदा दिली जाते.

स्कोअरिंग: LLM प्रत्येक उमेदवाराला गुणांकन देते, ज्यामुळे वापरकर्त्यासाठी सर्वोत्तम प्रतिसाद किंवा दस्तऐवज निवडण्यात मदत होते.

LLM चा पुनःमुल्यांकन आणि स्कोअरिंगसाठी वापर केल्याने प्रणाली अधिक अचूक आणि संदर्भानुसार संबंधित माहिती प्रदान करू शकते, ज्यामुळे एकूण वापरकर्ता अनुभव सुधारतो.

येथे Python मध्ये वापरकर्त्यांच्या पसंतीनुसार प्रवासाच्या ठिकाणांसाठी रेकमेंडेशन्स पुनःमुल्यांकन आणि स्कोअरिंगसाठी ट्रॅव्हल एजंट मोठ्या भाषा मॉडेलचा (LLM) कसा वापर करू शकतो याचे उदाहरण आहे:

परिस्थिती - पसंतीनुसार प्रवास

एका ट्रॅव्हल एजंटला ग्राहकाच्या पसंतीनुसार सर्वोत्तम प्रवासस्थळे सुचवायची आहेत. LLM मदत करते ठिकाणे पुनःमुल्यांकन व स्कोअर करण्यासाठी, ज्यामुळे सुसंगत पर्याय समोर येतात.

पावले:

  1. वापरकर्त्यांच्या पसंती गोळा करा.
  2. संभाव्य प्रवासस्थळांची यादी पुनर्प्राप्त करा.
  3. वापरकर्त्यांच्या पसंतीनुसार LLM वापरून ठिकाणे पुनःमुल्यांकन करा व स्कोअर करा.

मागील उदाहरणात Azure OpenAI सेवा वापरण्यासाठी आपल्याला काय बदल करता येईल ते येथे दाखवले आहे:

गरजा

  1. आपल्याकडे Azure सबस्क्रिप्शन असणे आवश्यक आहे.
  2. Azure OpenAI संसाधन तयार करा आणि आपला API की मिळवा.

उदाहरण Python कोड

import requests
import json

class TravelAgent:
    def __init__(self, destinations):
        self.destinations = destinations

    def get_recommendations(self, preferences, api_key, endpoint):
        # Azure OpenAI साठी एक प्रॉम्प्ट तयार करा
        prompt = self.generate_prompt(preferences)
        
        # विनंतीसाठी हेडर्स आणि पेलोड परिभाषित करा
        headers = {
            'Content-Type': 'application/json',
            'Authorization': f'Bearer {api_key}'
        }
        payload = {
            "prompt": prompt,
            "max_tokens": 150,
            "temperature": 0.7
        }
        
        # पुनः क्रमवारी लावलेली आणि गुणांनी भरलेली स्थाने प्राप्त करण्यासाठी Azure OpenAI API कॉल करा
        response = requests.post(endpoint, headers=headers, json=payload)
        response_data = response.json()
        
        # शिफारसी काढा आणि परत करा
        recommendations = response_data['choices'][0]['text'].strip().split('\n')
        return recommendations

    def generate_prompt(self, preferences):
        prompt = "Here are the travel destinations ranked and scored based on the following user preferences:\n"
        for key, value in preferences.items():
            prompt += f"{key}: {value}\n"
        prompt += "\nDestinations:\n"
        for destination in self.destinations:
            prompt += f"- {destination['name']}: {destination['description']}\n"
        return prompt

# उदाहरण वापर
destinations = [
    {"name": "Paris", "description": "City of lights, known for its art, fashion, and culture."},
    {"name": "Tokyo", "description": "Vibrant city, famous for its modernity and traditional temples."},
    {"name": "New York", "description": "The city that never sleeps, with iconic landmarks and diverse culture."},
    {"name": "Sydney", "description": "Beautiful harbour city, known for its opera house and stunning beaches."},
]

preferences = {"activity": "sightseeing", "culture": "diverse"}
api_key = 'your_azure_openai_api_key'
endpoint = 'https://your-endpoint.com/openai/deployments/your-deployment-name/completions?api-version=2022-12-01'

travel_agent = TravelAgent(destinations)
recommendations = travel_agent.get_recommendations(preferences, api_key, endpoint)
print("Recommended Destinations:")
for rec in recommendations:
    print(rec)

कोड स्पष्टीकरण - प्रेफरन्स बुकर

  1. इनिशियलायझेशन: TravelAgent वर्ग संभाव्य प्रवासस्थळांच्या यादीने इनिशियलाइझ होतो, ज्यात प्रत्येक ठिकाणाचे नाव आणि वर्णन समाविष्ट आहे.

  2. शिफारसी मिळवणे (get_recommendations पद्धत): ही पद्धत वापरकर्त्याच्या पसंतीवर आधारित Azure OpenAI सेवा साठी प्रॉम्प्ट तयार करते आणि Azure OpenAI API ला HTTP POST विनंती पाठवून ठिकाणांचे पुनःमुल्यांकन व स्कोअरिंग मिळवते.

  3. प्रॉम्प्ट तयार करणे (generate_prompt पद्धत): ही पद्धत वापरकर्त्याच्या पसंती आणि प्रवासस्थळांच्या यादीसह Azure OpenAI साठी प्रॉम्प्ट तयार करते. हा प्रॉम्प्ट मॉडेलला दिलेल्या पसंतीनुसार ठिकाणांचे पुनःमुल्यांकन व स्कोअरिंग करण्यासाठी मार्गदर्शन करतो.

  4. API कॉल: requests लायब्ररी वापरून Azure OpenAI API एन्डपॉईंटवर HTTP POST विनंती केली जाते. प्रतिसादात पुनःमुल्यांकित व स्कोअर केलेले ठिकाणे मिळतात.

  5. उदाहरण वापर: ट्रॅव्हल एजंट वापरकर्त्यांच्या पसंती (उदा. प्रवासातील दृष्टी, विविध संस्कृती) गोळा करून Azure OpenAI सेवा वापरतो जेणेकरून ठिकाणांच्या सूचनांची पुनःमुल्यांकन व स्कोअरिंग मिळेल.

आपल्या खऱ्या Azure OpenAI API कीसाठी your_azure_openai_api_key आणि आपल्या Azure OpenAI डिप्लॉयमेंटच्या खऱ्या एन्डपॉईंट URL साठी https://your-endpoint.com/... बदला याची खात्री करा.

LLM चा पुनःमुल्यांकन व स्कोअरिंगसाठी वापर करून, ट्रॅव्हल एजंट ग्राहकांना अधिक वैयक्तिकृत आणि सुसंगत प्रवास सूचना देऊ शकतो, ज्यामुळे त्यांचा एकूण अनुभव सुधारतो.

RAG: प्रॉम्प्टिंग तंत्रज्ञान विरुद्ध टूल

Retrieval-Augmented Generation (RAG) हे AI एजंट्सच्या विकासात प्रॉम्प्टिंग तंत्रज्ञान आणि टूल दोन्ही स्वरूपात असू शकते. दोन्हीमध्ये फरक समजून घेणे आपल्याला प्रकल्पांत RAG अधिक प्रभावीपणे वापरण्यास मदत करू शकते.

प्रॉम्प्टिंग तंत्रज्ञान म्हणून RAG

हे काय आहे?

हे कसे काम करते:

  1. प्रॉम्प्ट तयार करणे: दिलेल्या काम किंवा वापरकर्त्याच्या इनपुटनुसार चांगल्या रचनेचे प्रॉम्प्ट किंवा क्वेरी तयार करा.
  2. माहिती पुनर्प्राप्त करणे: प्रॉम्प्ट वापरून आधीच अस्तित्वात असलेल्या ज्ञानसंग्रह किंवा डेटासेटमधून संबंधित डेटा शोधा.
  3. प्रतिसाद तयार करणे: पुनर्प्राप्त माहिती जनरेटिव AI मॉडेल्सबरोबर जोडून संपूर्ण व सुसंगत प्रतिसाद तयार करा.

ट्रॅव्हल एजंटमधील उदाहरण:

टूल म्हणून RAG

हे काय आहे?

हे कसे काम करते:

  1. समाकलन: AI एजंटच्या आर्किटेक्चरमध्ये RAG अंगभूत करा, ज्यामुळे तो स्वयंचलितपणे पुनर्प्राप्ती आणि जनरेशन हाताळेल.
  2. स्वयंचलन: टूल पूर्ण प्रक्रियेचे प्रवेश घेते, वापरकर्त्याच्या इनपुटपासून अंतिम प्रतिसाद तयार होईपर्यंत, प्रत्येक टप्प्याकरिता स्पष्ट प्रॉम्प्टची गरज न पडता.
  3. कार्यक्षमता: पुनर्प्राप्ती व निर्मिती प्रक्रियेत सुलभता आणून एजंटची गती व अचूकता वाढवते.

ट्रॅव्हल एजंटमधील उदाहरण:

तुलना

बाजू प्रॉम्प्टिंग तंत्रज्ञान टूल
मॅन्युअल विरुद्ध स्वयंचलित प्रत्येक क्वेरीसाठी मॅन्युअल प्रॉम्प्ट तयार करणे. पुनर्प्राप्ती आणि निर्माणाची स्वयंचलित प्रक्रिया.
नियंत्रण पुनर्प्राप्ती प्रक्रियेवर अधिक नियंत्रण पुरवते. पुनर्प्राप्ती व निर्मिती सहज करते व स्वयंचलित करते.
लवचिकता विशिष्ट गरजेनुसार सानुकूल प्रॉम्प्ट तयार करू शकते. मोठ्या प्रमाणावर वापरासाठी अधिक कार्यक्षम.
कठीणपणा प्रॉम्प्ट तयार करण्यासाठी अधिक मेहनत व अचूकता आवश्यक. AI एजंटच्या आर्किटेक्चरमध्ये सहज समाकलित करणे सोपे.

व्यावहारिक उदाहरणे

प्रॉम्प्टिंग तंत्रज्ञान उदाहरण:

def search_museums_in_paris():
    prompt = "Find top museums in Paris"
    search_results = search_web(prompt)
    return search_results

museums = search_museums_in_paris()
print("Top Museums in Paris:", museums)

टूल उदाहरण:

class Travel_Agent:
    def __init__(self):
        self.rag_tool = RAGTool()

    def get_museums_in_paris(self):
        user_input = "I want to visit museums in Paris."
        response = self.rag_tool.retrieve_and_generate(user_input)
        return response

travel_agent = Travel_Agent()
museums = travel_agent.get_museums_in_paris()
print("Top Museums in Paris:", museums)

सुसंगतता मूल्यांकन

सुसंगतता मूल्यांकन हा AI एजंटची कार्यक्षमता सुनिश्चित करणारा महत्त्वाचा भाग आहे. हे सुनिश्चित करते की एजंटने पुनर्प्राप्त व तयार केलेली माहिती वापरकर्त्यासाठी योग्य, अचूक व उपयुक्त आहे. चला पाहूया AI एजंटमध्ये सुसंगतता कशी मूल्यांकन करतात, व्यावहारिक उदाहरणे आणि तंत्रे यासह.

सुसंगतता मूल्यांकनातील मुख्य संकल्पना

  1. संदर्भ जागरूकता:
    • एजंटने वापरकर्त्याच्या क्वेरीचा संदर्भ समजून संबंधित माहिती पुनर्प्राप्त व तयार करावी.
    • उदाहरण: जर वापरकर्ता विचारतो “पॅरिसमधील सर्वोत्तम रेस्टॉरंट्स,” तर एजंटने वापरकर्त्याच्या रुची जसे अन्न प्रकार आणि बजेट लक्षात घ्यावे.
  2. अचूकता:
    • एजंटने दिलेली माहिती तथ्यांनुसार अचूक आणि अद्ययावत असावी.
    • उदाहरण: सध्याच्या उघडलेल्या आणि चांगल्या पुनरावलोकनांसह रेस्टॉरंट्सची शिफारस करणे, जुने किंवा बंद पर्याय नाही.
  3. वापरकर्त्याचा हेतू:
    • एजंटने क्वेरीमागील वापरकर्त्याचा हेतू समजून सर्वात सुसंगत माहिती द्यावी.
    • उदाहरण: “बजेट-फ्रेंडली हॉटेल्स” विचारल्यास, एजंटने स्वस्त पर्याय आधी द्यावेत.
  4. फीडबॅक लूप:
    • सतत वापरकर्ता अभिप्राय गोळा करून एजंटने सुसंगतता मूल्यांकन सुधारले पाहिजे.
    • उदाहरण: पूर्वीच्या शिफारसींवर वापरकर्त्यांच्या रेटिंग्ज व अभिप्राय समाविष्ट करून पुढील प्रतिसाद सुधारणा.

सुसंगतता मूल्यांकनासाठी व्यावहारिक तंत्रे

  1. सुसंगतता स्कोअरिंग:
    • वापरकर्त्याच्या क्वेरी व पसंतीशी जशी मेळ असेल तसे प्रत्येक आयटमला स्कोअर द्या.
    • उदाहरण:

      def relevance_score(item, query):
          score = 0
          if item['category'] in query['interests']:
              score += 1
          if item['price'] <= query['budget']:
              score += 1
          if item['location'] == query['destination']:
              score += 1
          return score
      
  2. फिल्टरिंग आणि रँकिंग:
    • अनावश्यक आयटम काढून टाका आणि उरलेले सुसंगततेनुसार क्रमबद्ध करा.
    • उदाहरण:

      def filter_and_rank(items, query):
          ranked_items = sorted(items, key=lambda item: relevance_score(item, query), reverse=True)
          return ranked_items[:10]  # शीर्ष 10 संबंधित वस्तू परत करा
      
  3. नॅचरल लँग्वेज प्रोसेसिंग (NLP):
    • NLP तंत्र वापरून वापरकर्त्यांच्या क्वेरीचा अर्थ समजून संबंधित माहिती पुन्हा मिळवा.
    • उदाहरण:

      def process_query(query):
          # वापरकर्त्याच्या चौकशीतून मुख्य माहिती काढण्यासाठी NLP वापरा
          processed_query = nlp(query)
          return processed_query
      
  4. वापरकर्ता अभिप्राय समाकलन:
    • दिलेल्या शिफारसींबाबत वापरकर्त्यांचा अभिप्राय गोळा करा आणि भविष्यातील सुसंगतता मूल्यांकनासाठी वापरा.
    • उदाहरण:

      def adjust_based_on_feedback(feedback, items):
          for item in items:
              if item['name'] in feedback['liked']:
                  item['relevance'] += 1
              if item['name'] in feedback['disliked']:
                  item['relevance'] -= 1
          return items
      

उदाहरण: ट्रॅव्हल एजंटमध्ये सुसंगतता मूल्यांकन

येथे ट्रॅव्हल एजंटमध्ये प्रवास शिफारसींची सुसंगतता कशी मूल्यांकन केली जाऊ शकते याचा व्यावहारिक उदाहरण आहे:

class Travel_Agent:
    def __init__(self):
        self.user_preferences = {}
        self.experience_data = []

    def gather_preferences(self, preferences):
        self.user_preferences = preferences

    def retrieve_information(self):
        flights = search_flights(self.user_preferences)
        hotels = search_hotels(self.user_preferences)
        attractions = search_attractions(self.user_preferences)
        return flights, hotels, attractions

    def generate_recommendations(self):
        flights, hotels, attractions = self.retrieve_information()
        ranked_hotels = self.filter_and_rank(hotels, self.user_preferences)
        itinerary = create_itinerary(flights, ranked_hotels, attractions)
        return itinerary

    def filter_and_rank(self, items, query):
        ranked_items = sorted(items, key=lambda item: self.relevance_score(item, query), reverse=True)
        return ranked_items[:10]  # शीर्ष १० संबंधित घटक परत करा

    def relevance_score(self, item, query):
        score = 0
        if item['category'] in query['interests']:
            score += 1
        if item['price'] <= query['budget']:
            score += 1
        if item['location'] == query['destination']:
            score += 1
        return score

    def adjust_based_on_feedback(self, feedback, items):
        for item in items:
            if item['name'] in feedback['liked']:
                item['relevance'] += 1
            if item['name'] in feedback['disliked']:
                item['relevance'] -= 1
        return items

# उदाहरण वापर
travel_agent = Travel_Agent()
preferences = {
    "destination": "Paris",
    "dates": "2025-04-01 to 2025-04-10",
    "budget": "moderate",
    "interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_items = travel_agent.adjust_based_on_feedback(feedback, itinerary['hotels'])
print("Updated Itinerary with Feedback:", updated_items)

हेतूसह शोध

हेतूसह शोध म्हणजे वापरकर्त्याच्या क्वेरीमागील मूळ उद्देश किंवा ध्येय समजून घेऊन सर्वात सुसंगत आणि उपयुक्त माहिती शोधणे आणि तयार करणे. ही पद्धत फक्त कीवर्ड पूर्ण होण्यापेक्षा वापरकर्त्याच्या खरी गरज व संदर्भ पकडण्यावर भर देते.

हेतूसह शोधातील मुख्य संकल्पना

  1. वापरकर्त्याचा हेतू समजून घेणे:
    • वापरकर्त्याचा हेतू मुख्य तीन प्रकारात वर्गीकृत करता येतो: माहितीची इच्छा, नेव्हिगेशनल, आणि व्यवहारिक.
      • माहितीची इच्छा (Informational Intent): वापरकर्ता एखाद्या विषयाची माहिती शोधत आहे (उदा. “पॅरिसमधील सर्वोत्तम संग्रहालये काय आहेत?”).
      • नेव्हिगेशनल हेतू (Navigational Intent): वापरकर्ता विशिष्ट वेबसाइट किंवा पृष्ठावर जाण्याचा हेतू ठेवतो (उदा. “लूव्ह्रे संग्रहालय अधिकृत वेबसाइट”).
      • व्‍यवहारिक हेतू (Transactional Intent): वापरकर्ता एखादे व्यवहार करायचा उद्देश असतो, जसे फ्लाइट बुक करणे किंवा खरेदी करणे (उदा. “पॅरिसला फ्लाइट बुक करा”).
  2. संदर्भ जागरूकता:
    • वापरकर्त्याच्या पूर्वीच्या संवाद, पसंती आणि चालू क्वेरीच्या विशिष्ट तपशीलांचा विचार करून हेतू अचूक ओळखणे.
  3. नॅचरल लँग्वेज प्रोसेसिंग (NLP):
    • वापरकर्त्यांनी दिलेल्या नैसर्गिक भाषेतील क्वेरी समजून घेण्यासाठी NLP तंत्र वापरणे. यात एंटिटी ओळख, भावना विश्लेषण, आणि क्वेरी पार्सिंग यांचा समावेश होतो.
  4. वैयक्तिकीकरण:
    • वापरकर्त्याच्या इतिहास, पसंती, आणि अभिप्रायानुसार शोध परिणाम वैयक्तिकृत करणे ज्यामुळे माहिती अधिक सुसंगत होते.

व्यवहारिक उदाहरण: ट्रॅव्हल एजंटमध्ये हेतूसह शोध

ट्रॅव्हल एजंट घेऊन पाहूया की हेतूसह शोध कसा अमलात आणता येतो.

  1. वापरकर्त्याच्या पसंत्या गोळा करणे

    class Travel_Agent:
        def __init__(self):
            self.user_preferences = {}
    
        def gather_preferences(self, preferences):
            self.user_preferences = preferences
    
  2. वापरकर्त्याचा हेतू समजून घेणे

    def identify_intent(query):
        if "book" in query or "purchase" in query:
            return "transactional"
        elif "website" in query or "official" in query:
            return "navigational"
        else:
            return "informational"
    
  3. संदर्भ जागरूकता

    def analyze_context(query, user_history):
        # वापरकर्त्याच्या इतिहासासह चालू चौकशी एकत्र करून संदर्भ समजून घ्या
        context = {
            "current_query": query,
            "user_history": user_history
        }
        return context
    
  4. शोधा आणि परिणामांनुसार वैयक्तिकृत करा

    def search_with_intent(query, preferences, user_history):
        intent = identify_intent(query)
        context = analyze_context(query, user_history)
        if intent == "informational":
            search_results = search_information(query, preferences)
        elif intent == "navigational":
            search_results = search_navigation(query)
        elif intent == "transactional":
            search_results = search_transaction(query, preferences)
        personalized_results = personalize_results(search_results, user_history)
        return personalized_results
    
    def search_information(query, preferences):
        # माहितीपर हेतूसाठी उदाहरण शोध लॉजिक
        results = search_web(f"best {preferences['interests']} in {preferences['destination']}")
        return results
    
    def search_navigation(query):
        # नेव्हिगेशनल हेतूसाठी उदाहरण शोध लॉजिक
        results = search_web(query)
        return results
    
    def search_transaction(query, preferences):
        # व्यवहारिक हेतूसाठी उदाहरण शोध लॉजिक
        results = search_web(f"book {query} to {preferences['destination']}")
        return results
    
    def personalize_results(results, user_history):
        # उदाहरण वैयक्तिकरण लॉजिक
        personalized = [result for result in results if result not in user_history]
        return personalized[:10]  # शीर्ष 10 वैयक्तिकृत परिणाम परत करा
    
  5. उदाहरण वापर

    travel_agent = Travel_Agent()
    preferences = {
        "destination": "Paris",
        "interests": ["museums", "cuisine"]
    }
    travel_agent.gather_preferences(preferences)
    user_history = ["Louvre Museum website", "Book flight to Paris"]
    query = "best museums in Paris"
    results = search_with_intent(query, preferences, user_history)
    print("Search Results:", results)
    

4. साधन म्हणून कोड निर्माण करणे

कोड तयार करणारे एजंट AI मॉडेल वापरून कोड लिहितात आणि चालवितात, जटिल समस्या सोडवितात आणि कार्ये स्वयंचलित करतात.

कोड तयार करणारे एजंट

कोड तयार करणारे एजंट जनरेटिव्ह AI मॉडेल वापरून कोड लिहितात आणि चालवितात. हे एजंट वेगवेगळ्या प्रोग्रामिंग भाषा वापरून कोड तयार आणि चालवून जटिल समस्या सोडवू शकतात, कार्य स्वयंचलित करू शकतात आणि मौल्यवान अंतर्दृष्टी प्रदान करू शकतात.

व्यावहारिक उपयोग

  1. स्वयंचलित कोड निर्मिती: डेटा विश्लेषण, वेब स्क्रॅपिंग किंवा मशीन लर्निंगसारख्या विशिष्ट कार्यांसाठी कोड स्निपेट्स तयार करा.
  2. RAG म्हणून SQL: डेटाबेसमधून डेटा मिळविण्यासाठी आणि व्यवस्थापित करण्यासाठी SQL क्वेरीज वापरा.
  3. समस्या सोडविणे: विशिष्ट समस्या सोडविण्यासाठी कोड तयार करा आणि चालवा, जसे की अल्गोरिदम ऑप्टिमायझेशन किंवा डेटा विश्लेषण.

उदाहरण: डेटा विश्लेषणासाठी कोड तयार करणारा एजंट

कल्पना करा की तुम्ही एक कोड तयार करणारा एजंट डिझाईन करत आहात. तो कसा कार्य करेल हे खाली दिले आहे:

  1. कार्य: ट्रेंड आणि नमुने ओळखण्यासाठी dataset चे विश्लेषण करा.
  2. टप्पे:
    • डेटा विश्लेषण साधनात dataset लोड करा.
    • डेटा फिल्टर आणि एकत्रित करण्यासाठी SQL क्वेरीज तयार करा.
    • क्वेरीज चालवा आणि निकाल मिळवा.
    • निकालांचा वापर करून व्हिज्युअलायझेशन आणि अंतर्दृष्टी तयार करा.
  3. आवश्यक संसाधने: dataset प्रवेश, डेटा विश्लेषण साधने आणि SQL क्षमता.
  4. अनुभव: भविष्याच्या विश्लेषणांची अचूकता आणि सुसंगतता सुधारण्यासाठी भूतकाळातील विश्लेषण निकालांचा वापर करा.

उदाहरण: प्रवास एजंटसाठी कोड तयार करणारा एजंट

या उदाहरणात, आपण एक कोड तयार करणारा एजंट, ट्रॅव्हल एजंट, तयार करू जो प्रवास नियोजन करताना वापरकर्त्यांना मदत करेल कोड तयार करून आणि चालवून. हा एजंट प्रवास पर्याय मिळविणे, परिणाम फिल्टर करणे आणि जनरेटिव्ह AI वापरून प्रवासीय कार्यक्रम तयार करण्यास मदत करेल.

कोड तयार करणाऱ्या एजंटचे अवलोकन

  1. वापरकर्ता पसंती गोळा करणे: गंतव्य, प्रवासाच्या तारखा, बजेट आणि आवडी यासारखी वापरकर्ता माहिती संकलित करतो.
  2. डेटा घेण्यासाठी कोड तयार करणे: फ्लाइट, हॉटेल आणि आकर्षणे यांचे डेटा मिळविण्यासाठी कोड स्निपेट्स तयार करतो.
  3. तयार कोड चालवणे: तयार केलेला कोड रिअल-टाइम माहिती मिळविण्यासाठी चालवितो.
  4. प्रवासीय कार्यक्रम तयार करणे: मिळालेला डेटा वैयक्तिकृत प्रवास योजना तयार करण्यासाठी संकलित करतो.
  5. अभिप्रायानुसार समायोजन: वापरकर्त्याचा अभिप्राय घेऊन आवश्यक असल्यास निकाल सुधारण्यासाठी कोड पुन्हा तयार करतो.

टप्प्याटप्प्याने अंमलबजावणी

  1. वापरकर्ता पसंती गोळा करणे

    class Travel_Agent:
        def __init__(self):
            self.user_preferences = {}
    
        def gather_preferences(self, preferences):
            self.user_preferences = preferences
    
  2. डेटा मिळविण्यासाठी कोड तयार करणे

    def generate_code_to_fetch_data(preferences):
        # उदाहरण: वापरकर्त्याच्या पसंतीनुसार फ्लाइट शोधण्यासाठी कोड तयार करा
        code = f"""
        def search_flights():
            import requests
            response = requests.get('https://api.example.com/flights', params={preferences})
            return response.json()
        """
        return code
    
    def generate_code_to_fetch_hotels(preferences):
        # उदाहरण: हॉटेल शोधण्यासाठी कोड तयार करा
        code = f"""
        def search_hotels():
            import requests
            response = requests.get('https://api.example.com/hotels', params={preferences})
            return response.json()
        """
        return code
    
  3. तयार कोड चालवणे

    def execute_code(code):
        # exec वापरून तयार झालेला कोड चालवा
        exec(code)
        result = locals()
        return result
    
    travel_agent = Travel_Agent()
    preferences = {
        "destination": "Paris",
        "dates": "2025-04-01 to 2025-04-10",
        "budget": "moderate",
        "interests": ["museums", "cuisine"]
    }
    travel_agent.gather_preferences(preferences)
       
    flight_code = generate_code_to_fetch_data(preferences)
    hotel_code = generate_code_to_fetch_hotels(preferences)
       
    flights = execute_code(flight_code)
    hotels = execute_code(hotel_code)
    
    print("Flight Options:", flights)
    print("Hotel Options:", hotels)
    
  4. प्रवासीय कार्यक्रम तयार करणे

    def generate_itinerary(flights, hotels, attractions):
        itinerary = {
            "flights": flights,
            "hotels": hotels,
            "attractions": attractions
        }
        return itinerary
    
    attractions = search_attractions(preferences)
    itinerary = generate_itinerary(flights, hotels, attractions)
    print("Suggested Itinerary:", itinerary)
    
  5. अभिप्रायानुसार समायोजन

    def adjust_based_on_feedback(feedback, preferences):
        # वापरकर्ता अभिप्रायावर आधारित प्राधान्ये समायोजित करा
        if "liked" in feedback:
            preferences["favorites"] = feedback["liked"]
        if "disliked" in feedback:
            preferences["avoid"] = feedback["disliked"]
        return preferences
    
    feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
    updated_preferences = adjust_based_on_feedback(feedback, preferences)
       
    # अद्ययावत प्राधान्यांसह कोड पुन्हा तयार करा आणि चालवा
    updated_flight_code = generate_code_to_fetch_data(updated_preferences)
    updated_hotel_code = generate_code_to_fetch_hotels(updated_preferences)
       
    updated_flights = execute_code(updated_flight_code)
    updated_hotels = execute_code(updated_hotel_code)
       
    updated_itinerary = generate_itinerary(updated_flights, updated_hotels, attractions)
    print("Updated Itinerary:", updated_itinerary)
    

पर्यावरणीय जागरूकता आणि तर्कशक्तीचा लाभ घेणे

टेबलच्या स्कीमावर आधारित विचार केल्यास क्वेरी तयार करण्याच्या प्रक्रियेत पर्यावरणीय जागरूकता आणि तर्कशक्तीचा वापर करता येतो.

हे कसे करता येईल याचे एक उदाहरण येथे आहे:

  1. स्कीमा समजून घेणे: प्रणाली टेबलची स्कीमा समजून घेते आणि क्वेरी निर्मितीसाठी ह्या माहितीचा आधार घेतो.
  2. अभिप्रायानुसार समायोजन: प्रणाली वापरकर्त्याच्या पसंतींमध्ये अभिप्रायानुसार बदल करते आणि स्कीमामधील कोणते फील्ड अपडेट करावे ते ठरवते.
  3. क्वेरी निर्माण आणि चालवणे: नवीन पसंतींवर आधारित फ्लाइट आणि हॉटेल डेटासाठी क्वेरी तयार करते आणि चालवते.

खालील अद्ययावत Python कोड या संकल्पनांचा समावेश करतो:

def adjust_based_on_feedback(feedback, preferences, schema):
    # वापरकर्त्याच्या अभिप्रायावर आधारित प्राधान्ये समायोजित करा
    if "liked" in feedback:
        preferences["favorites"] = feedback["liked"]
    if "disliked" in feedback:
        preferences["avoid"] = feedback["disliked"]
    # इतर संबंधित प्राधान्ये समायोजित करण्यासाठी स्कीमा आधारित तर्कसंगतता
    for field in schema:
        if field in preferences:
            preferences[field] = adjust_based_on_environment(feedback, field, schema)
    return preferences

def adjust_based_on_environment(feedback, field, schema):
    # स्कीमा आणि अभिप्रायावर आधारित प्राधान्ये समायोजित करण्यासाठी सानुकूल लॉजिक
    if field in feedback["liked"]:
        return schema[field]["positive_adjustment"]
    elif field in feedback["disliked"]:
        return schema[field]["negative_adjustment"]
    return schema[field]["default"]

def generate_code_to_fetch_data(preferences):
    # अद्यतनित प्राधान्यांवर आधारित उड्डाणाचा डेटा मिळवण्याचा कोड तयार करा
    return f"fetch_flights(preferences={preferences})"

def generate_code_to_fetch_hotels(preferences):
    # अद्यतनित प्राधान्यांवर आधारित हॉटेल डेटा मिळवण्याचा कोड तयार करा
    return f"fetch_hotels(preferences={preferences})"

def execute_code(code):
    # कोडची अनुकरणे करा आणि मॉक डेटा परत करा
    return {"data": f"Executed: {code}"}

def generate_itinerary(flights, hotels, attractions):
    # उड्डाने, हॉटेल आणि आकर्षणे यावर आधारित प्रवासतोक तयार करा
    return {"flights": flights, "hotels": hotels, "attractions": attractions}

# उदाहरण स्कीमा
schema = {
    "favorites": {"positive_adjustment": "increase", "negative_adjustment": "decrease", "default": "neutral"},
    "avoid": {"positive_adjustment": "decrease", "negative_adjustment": "increase", "default": "neutral"}
}

# उदाहरण वापर
preferences = {"favorites": "sightseeing", "avoid": "crowded places"}
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_preferences = adjust_based_on_feedback(feedback, preferences, schema)

# अद्यतनित प्राधान्यांनुसार कोड पुन्हा तयार करा आणि चालवा
updated_flight_code = generate_code_to_fetch_data(updated_preferences)
updated_hotel_code = generate_code_to_fetch_hotels(updated_preferences)

updated_flights = execute_code(updated_flight_code)
updated_hotels = execute_code(updated_hotel_code)

updated_itinerary = generate_itinerary(updated_flights, updated_hotels, feedback["liked"])
print("Updated Itinerary:", updated_itinerary)

स्पष्टीकरण - अभिप्रायानुसार बुकिंग

  1. स्कीमा जागरूकता: schema शब्दसंग्रह अभिप्रायानुसार पसंती कशा बदलायच्या याची व्याख्या करतो. यात favorites आणि avoid सारखे फील्ड्स आणि त्यांचे समायोजन असते.
  2. अभिप्रायानुसार समायोजन (adjust_based_on_feedback पद्धत): ही पद्धत वापरकर्त्याच्या अभिप्रायानुसार पसंती बदलते व स्कीमा वापरते.
  3. पर्यावरणानुसार समायोजन (adjust_based_on_environment पद्धत): ही पद्धत स्कीमा आणि अभिप्रायानुसार समायोजन सानुकूलित करते.
  4. क्वेरी तयार करणे आणि चालवणे: प्रणाली समायोजित पसंतीवर आधारित फ्लाइट आणि हॉटेल डेटासाठी कोड तयार करते आणि त्या क्वेरींसाठी सिम्युलेशन चालवते.
  5. प्रवासीय कार्यक्रम तयार करणे: नवीन फ्लाइट, हॉटेल व आकर्षणे यावर आधारित अद्ययावत प्रवासीय कार्यक्रम तयार करते.

सिस्टम पर्यावरण-आधारित आणि स्कीमा-आधारित तर्कशक्ती वापरल्यामुळे अधिक अचूक आणि सुसंगत क्वेरी तयार करु शकतो आणि त्यामुळे चांगल्या प्रवास शिफारसी व वैयक्तिकृत वापरकर्ता अनुभव देऊ शकतो.

SQL ची Retrieval-Augmented Generation (RAG) तंत्र म्हणून वापर

SQL (Structured Query Language) डेटाबेसशी संवाद साधण्यासाठी एक शक्तिशाली साधन आहे. Retrieval-Augmented Generation (RAG) दृष्टिकोनाचा भाग म्हणून वापरल्यास, SQL डेटाबेसमधून संबंधित डेटा मिळविण्यासाठी वापरली जाते जेणेकरून AI एजंटमध्ये प्रतिसाद किंवा क्रिया तयार करता येतील. ट्रॅव्हल एजंटच्या संदर्भात SQL कसा RAG तंत्र म्हणून वापरला जाऊ शकतो ते पाहूया.

मुख्य संकल्पना

  1. डेटाबेस संवाद:
    • SQL डेटाबेस क्वेरी करण्यासाठी, संबंधित माहिती मिळवण्यास आणि डेटाचे व्यवस्थापन करण्यासाठी वापरली जाते.
    • उदाहरण: फ्लाइट तपशील, हॉटेल माहिती आणि आकर्षणे ट्रॅव्हल डेटाबेसमधून मिळवणे.
  2. RAG सह एकत्रीकरण:
    • वापरकर्ता इनपुट आणि पसंतीनुसार SQL क्वेरीज तयार केल्या जातात.
    • प्राप्त डेटा वैयक्तिकृत शिफारसी किंवा क्रियांसाठी वापरला जातो.
  3. डायनॅमिक क्वेरी निर्मिती:
    • AI एजंट संदर्भ आणि वापरकर्त्याच्या गरजेनुसार डायनॅमिक SQL क्वेरीज तयार करतो.
    • उदाहरण: बजेट, तारीख आणि आवडीनुसार SQL क्वेरीज सानुकूलित करणे.

अनुप्रयोग

उदाहरण: डेटा विश्लेषण एजंट:

  1. कार्य: ट्रेंड शोधण्यासाठी dataset चे विश्लेषण करा.
  2. टप्पे:
    • dataset लोड करा.
    • डेटा फिल्टर करण्यासाठी SQL क्वेरीज तयार करा.
    • क्वेरी चालवा आणि निकाल मिळवा.
    • व्हिज्युअलायझेशन आणि अंतर्दृष्टी निर्माण करा.
  3. संसाधने: dataset प्रवेश, SQL क्षमता.
  4. अनुभव: भविष्यातील विश्लेषण सुधारण्यासाठी भूतकाळातील निकालांचा वापर करा.

व्यावहारिक उदाहरण: ट्रॅव्हल एजंटमध्ये SQL वापरणे

  1. वापरकर्ता पसंती गोळा करणे

    class Travel_Agent:
        def __init__(self):
            self.user_preferences = {}
    
        def gather_preferences(self, preferences):
            self.user_preferences = preferences
    
  2. SQL क्वेरीज तयार करणे

    def generate_sql_query(table, preferences):
        query = f"SELECT * FROM {table} WHERE "
        conditions = []
        for key, value in preferences.items():
            conditions.append(f"{key}='{value}'")
        query += " AND ".join(conditions)
        return query
    
  3. SQL क्वेरीज चालवणे

    import sqlite3
    
    def execute_sql_query(query, database="travel.db"):
        connection = sqlite3.connect(database)
        cursor = connection.cursor()
        cursor.execute(query)
        results = cursor.fetchall()
        connection.close()
        return results
    
  4. शिफारसी तयार करणे

    def generate_recommendations(preferences):
        flight_query = generate_sql_query("flights", preferences)
        hotel_query = generate_sql_query("hotels", preferences)
        attraction_query = generate_sql_query("attractions", preferences)
           
        flights = execute_sql_query(flight_query)
        hotels = execute_sql_query(hotel_query)
        attractions = execute_sql_query(attraction_query)
           
        itinerary = {
            "flights": flights,
            "hotels": hotels,
            "attractions": attractions
        }
        return itinerary
    
    travel_agent = Travel_Agent()
    preferences = {
        "destination": "Paris",
        "dates": "2025-04-01 to 2025-04-10",
        "budget": "moderate",
        "interests": ["museums", "cuisine"]
    }
    travel_agent.gather_preferences(preferences)
    itinerary = generate_recommendations(preferences)
    print("Suggested Itinerary:", itinerary)
    

SQL क्वेरीजचे उदाहरण

  1. फ्लाइट क्वेरी

    SELECT * FROM flights WHERE destination='Paris' AND dates='2025-04-01 to 2025-04-10' AND budget='moderate';
    
  2. हॉटेल क्वेरी

    SELECT * FROM hotels WHERE destination='Paris' AND budget='moderate';
    
  3. आकर्षणे क्वेरी

    SELECT * FROM attractions WHERE destination='Paris' AND interests='museums, cuisine';
    

Retrieval-Augmented Generation (RAG) तंत्राचा भाग म्हणून SQL चा लाभ घेत AI एजंट्स, जसे की ट्रॅव्हल एजंट, डायनॅमिकपणे संबंधित डेटा मिळवू शकतात आणि त्याचा वापर अचूक आणि वैयक्तिकृत शिफारसी देण्यासाठी करू शकतात.

Metacognition चे उदाहरण

त्यामुळे metacognition चे अंमलबजावणी दाखवण्यासाठी, आपण एक सोपा एजंट तयार करू जो त्याच्या निर्णय प्रक्रियेवर विचार करतो समस्या सोडवताना. या उदाहरणासाठी, आपण असा सिस्टम तयार करू जिथे एजंट हॉटेल निवडण्याचा प्रयत्न करतो, पण नंतर त्याच्या स्वतःच्या तर्कशक्तीचे मूल्यमापन करतो आणि चुका किंवा अपूर्ण निर्णयावर त्याची रणनीती समायोजित करतो.

आपण हे साधे उदाहरण वापरून अनुकरण करू जेथे एजंट किंमत आणि गुणवत्तेच्या मिश्रणावर हॉटेल निवडतो, पण तो त्याच्या निर्णयांवर “परावर्तित” होतो आणि त्यानुसार समायोजन करतो.

हे कसे metacognition चे उदाहरण आहे:

  1. प्रारंभिक निर्णय: एजंट सर्वात स्वस्त हॉटेल निवडेल, गुणवत्ता परिणाम समजत न ठेवता.
  2. चिंतन आणि मूल्यमापन: प्रारंभिक निवडीनंतर, एजंट वापरकर्त्याच्या अभिप्रायाच्या आधारे तपासेल की हॉटेल “वाईट” निवड आहे का. जर हॉटेलची गुणवत्ता खूप कमी असेल तर तो त्याच्या तर्कशक्तीवर विचार करतो.
  3. रणनीती समायोजित करणे: एजंट त्याच्या चिंतनानुसार अपेक्षा बदलतो आणि रणनीती “स्वस्त” वरून “सर्वोच्च गुणवत्ता” कडे वळवतो, ज्यामुळे त्याच्या निर्णय प्रक्रियेत सुधारणा होते.

येथे एक उदाहरण आहे:

class HotelRecommendationAgent:
    def __init__(self):
        self.previous_choices = []  # पूर्वी निवडलेल्या हॉटेल्स साठवते
        self.corrected_choices = []  # दुरुस्त केलेल्या निवडी साठवते
        self.recommendation_strategies = ['cheapest', 'highest_quality']  # उपलब्ध धोरणे

    def recommend_hotel(self, hotels, strategy):
        """
        Recommend a hotel based on the chosen strategy.
        The strategy can either be 'cheapest' or 'highest_quality'.
        """
        if strategy == 'cheapest':
            recommended = min(hotels, key=lambda x: x['price'])
        elif strategy == 'highest_quality':
            recommended = max(hotels, key=lambda x: x['quality'])
        else:
            recommended = None
        self.previous_choices.append((strategy, recommended))
        return recommended

    def reflect_on_choice(self):
        """
        Reflect on the last choice made and decide if the agent should adjust its strategy.
        The agent considers if the previous choice led to a poor outcome.
        """
        if not self.previous_choices:
            return "No choices made yet."

        last_choice_strategy, last_choice = self.previous_choices[-1]
        # समजा काही वापरकर्ता अभिप्राय आहे जो सांगतो की शेवटची निवड चांगली होती की नाही
        user_feedback = self.get_user_feedback(last_choice)

        if user_feedback == "bad":
            # मागील निवड असमाधानकारक असल्यास धोरण समायोजित करा
            new_strategy = 'highest_quality' if last_choice_strategy == 'cheapest' else 'cheapest'
            self.corrected_choices.append((new_strategy, last_choice))
            return f"Reflecting on choice. Adjusting strategy to {new_strategy}."
        else:
            return "The choice was good. No need to adjust."

    def get_user_feedback(self, hotel):
        """
        Simulate user feedback based on hotel attributes.
        For simplicity, assume if the hotel is too cheap, the feedback is "bad".
        If the hotel has quality less than 7, feedback is "bad".
        """
        if hotel['price'] < 100 or hotel['quality'] < 7:
            return "bad"
        return "good"

# हॉटेल्सची यादी अनुकरण करा (किंमत आणि गुणवत्ता)
hotels = [
    {'name': 'Budget Inn', 'price': 80, 'quality': 6},
    {'name': 'Comfort Suites', 'price': 120, 'quality': 8},
    {'name': 'Luxury Stay', 'price': 200, 'quality': 9}
]

# एक एजंट तयार करा
agent = HotelRecommendationAgent()

# पायरी 1: एजंट "सर्वात स्वस्त" धोरण वापरून हॉटेलची शिफारस करतो
recommended_hotel = agent.recommend_hotel(hotels, 'cheapest')
print(f"Recommended hotel (cheapest): {recommended_hotel['name']}")

# पायरी 2: एजंट निवडीचा विचार करतो आणि आवश्यक असल्यास धोरण समायोजित करतो
reflection_result = agent.reflect_on_choice()
print(reflection_result)

# पायरी 3: एजंट पुन्हा शिफारस करतो, या वेळी समायोजित धोरण वापरून
adjusted_recommendation = agent.recommend_hotel(hotels, 'highest_quality')
print(f"Adjusted hotel recommendation (highest_quality): {adjusted_recommendation['name']}")

एजंटच्या metacognition क्षमता

मुख्य मुद्दा म्हणजे एजंटची क्षमता:

ही metacognition चे एक सोपे रूप आहे जिथे सिस्टम अंतर्गत अभिप्रायाच्या आधारावर त्याच्या तर्कशक्तीची प्रक्रिया समायोजित करू शकतो.

निष्कर्ष

Metacognition ही एक शक्तिशाली साधन आहे जी AI एजंट्सच्या क्षमतांना महत्वाने वाढवू शकते. metacognitive प्रक्रियेचा समावेश करून तुम्ही अधिक बुद्धिमान, अनुकूलनीय आणि कार्यक्षम एजंट डिझाईन करू शकता. AI एजंट्समधील metacognition च्या आकर्षक जगात अधिक अभ्यास करण्यासाठी अतिरिक्त संसाधने वापरा.

Metacognition Design Pattern संदर्भात अधिक प्रश्न आहेत का?

Microsoft Foundry Discord मध्ये सामील व्हा जेथे तुम्ही इतर शिकणाऱ्यांशी भेटू शकता, ऑफिस तासांना हजर राहू शकता आणि तुमचे AI एजंट्स संबंधी प्रश्न विचारू शकता.

मागील धडा

बहु-एजंट डिझाइन पॅटर्न

पुढील धडा

AI एजंट उत्पादनात


अस्वीकरण: हा दस्तऐवज AI भाषांतर सेवा Co-op Translator चा वापर करून अनुवादित केला आहे. जरी आम्ही अचूकतेसाठी प्रयत्न करतो, तरी कृपया लक्षात घ्या की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेची कमतरता असू शकते. मूळ दस्तऐवज त्याच्या मूळ भाषेत अधिकृत स्रोत मानला पाहिजे. महत्त्वाची माहिती असल्यास, व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराच्या वापरामुळे उद्भवणाऱ्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थलावणीसाठी आम्ही जबाबदार नाही.