ai-agents-for-beginners

کثیر ایجنٹ ڈیزائن

(اس سبق ویڈیو کو دیکھنے کے لیے اوپر تصویر پر کلک کریں)

AI ایجنٹس میں میٹا کگنیشن

تعارف

AI ایجنٹس میں میٹا کگنیشن کے سبق میں خوش آمدید! یہ باب ان مبتدیوں کے لیے تیار کیا گیا ہے جو یہ جاننا چاہتے ہیں کہ AI ایجنٹس کس طرح اپنے سوچنے کے عمل کے بارے میں سوچ سکتے ہیں۔ اس سبق کے آخر میں، آپ اہم تصورات کو سمجھیں گے اور میٹا کگنیشن کو AI ایجنٹ ڈیزائن میں استعمال کرنے کے لیے عملی مثالوں سے لیس ہوں گے۔

تعلیمی مقاصد

اس سبق کو مکمل کرنے کے بعد، آپ قابل ہو جائیں گے:

  1. ایجنٹ کی تعریفوں میں استدلال کے دوروں کے اثرات کو سمجھنا۔
  2. خود اصلاح کرنے والے ایجنٹس کی مدد کے لیے منصوبہ بندی اور تشخیص کی تکنیکوں کا استعمال کرنا۔
  3. ایسے ایجنٹس بنانا جو کام انجام دینے کے لیے کوڈ کو تبدیل کر سکیں۔

میٹا کگنیشن کا تعارف

میٹا کگنیشن سے مراد وہ اعلیٰ ترتیبی علمی عمل ہے جس میں اپنی سوچ کے بارے میں سوچنا شامل ہوتا ہے۔ AI ایجنٹس کے لیے، اس کا مطلب ہے اپنے اعمال کا خود آگاہی اور گذشتہ تجربات کی بنیاد پر جائزہ لینا اور انہیں ایڈجسٹ کرنا۔ میٹا کگنیشن، یا “سوچ کے بارے میں سوچنا”، ایجنٹک AI سسٹمز کی ترقی میں ایک اہم تصور ہے۔ اس میں AI سسٹمز کا اپنے داخلی عمل سے آگاہ ہونا اور اپنے رویے کی نگرانی، ضابطہ بندی اور موافقت کرنے کی صلاحیت شامل ہے۔ جیسے ہم کمرہ پڑھتے ہیں یا مسئلے کو دیکھتے ہیں۔ یہ خود آگاہی AI سسٹمز کو بہتر فیصلے کرنے، غلطیاں شناخت کرنے، اور وقت کے ساتھ اپنی کارکردگی بہتر بنانے میں مدد دیتی ہے — جو کہ ٹورنگ ٹیسٹ اور یہ بحث بھی جوڑتی ہے کہ کیا AI قابض ہو جائے گا۔

ایجنٹک AI سسٹمز کے سیاق و سباق میں، میٹا کگنیشن کئی چیلنجز کو حل کرنے میں مدد کر سکتی ہے، جیسے کہ:

میٹا کگنیشن کیا ہے؟

میٹا کگنیشن، یا “سوچ کے بارے میں سوچنا”، ایک اعلیٰ تر cognitive عمل ہے جو خود آگاہی اور اپنی علمی عمل کی خود ضابطہ بندی پر مشتمل ہوتا ہے۔ AI کی دنیا میں، میٹا کگنیشن ایجنٹس کو اپنی حکمت عملیوں اور اعمال کا جائزہ لینے اور انہیں ایڈجسٹ کرنے کی طاقت دیتی ہے، جو بہتر مسئلہ حل کرنے اور فیصلہ سازی کی صلاحیتوں کی طرف لے جاتی ہے۔ میٹا کگنیشن کو سمجھ کر، آپ ایسے AI ایجنٹس ڈیزائن کر سکتے ہیں جو نہ صرف زیادہ ذہین بلکہ زیادہ موافق اور مؤثر ہوں۔ حقیقی میٹا کگنیشن میں، آپ AI کو اپنے استدلال کے بارے میں واضح طور پر استدلال کرتے ہوئے دیکھیں گے۔

مثال: “میں نے سستی پروازوں کو ترجیح دی کیونکہ… ممکن ہے میں مستقیم پروازوں سے محروم ہوں، اس لیے میں دوبارہ چیک کرتا ہوں۔” یہ ٹریک رکھنا کہ اس نے کس طرح یا کیوں ایک مخصوص راستہ منتخب کیا۔

AI ایجنٹس میں میٹا کگنیشن کی اہمیت

میٹا کگنیشن AI ایجنٹ ڈیزائن میں کئی وجوہات کی بنا پر اہم کردار ادا کرتا ہے:

میٹا کگنیشن کی اہمیت

AI ایجنٹ کے اجزاء

میٹا کگنیشن کے عمل میں غوطہ لگانے سے قبل، AI ایجنٹ کے بنیادی اجزاء کو سمجھنا ضروری ہے۔ ایک AI ایجنٹ عام طور پر پر مشتمل ہوتا ہے:

یہ اجزاء مل کر ایک “مہارت یونٹ” بناتے ہیں جو مخصوص کام انجام دے سکتا ہے۔

مثال: سفر کے ایجنٹ کے بارے میں غور کریں، جو نہ صرف آپ کی تعطیلات کی منصوبہ بندی کرتا ہے بلکہ حقیقی وقت کے ڈیٹا اور گزرے ہوئے صارف کے سفر کے تجربات کی بنیاد پر اپنا راستہ ایڈجسٹ بھی کرتا ہے۔

مثال: ایک سفر ایجنٹ سروس میں میٹا کگنیشن

تصور کریں کہ آپ ایک AI سے چلنے والی سفر ایجنٹ سروس ڈیزائن کر رہے ہیں۔ یہ ایجنٹ، “سفر ایجنٹ”، صارفین کی تعطیلات کی منصوبہ بندی میں مدد دیتا ہے۔ میٹا کگنیشن کو شامل کرنے کے لیے، سفر ایجنٹ کو اپنی کارروائیوں کا خود آگاہی اور گذشتہ تجربات کی بنیاد پر جائزہ لینے اور انہیں ایڈجسٹ کرنے کی ضرورت ہے۔ میٹا کگنیشن کی یہ اہمیت کچھ یوں ہو سکتی ہے:

موجودہ کام

موجودہ کام صارف کی پیرس کی یاترا کی منصوبہ بندی میں مدد کرنا ہے۔

کام مکمل کرنے کے اقدامات

  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 بمقابلہ کانٹیکسٹ لوڈنگ

ریٹریول آگمینٹڈ جنریشن (RAG)

RAG ایک ریٹریول سسٹم کو جنریٹیو ماڈل کے ساتھ جوڑتا ہے۔ جب کوئی سوال کیا جاتا ہے، تو ریٹریول سسٹم متعلقہ دستاویزات یا ڈیٹا کو بیرونی ماخذ سے حاصل کرتا ہے، اور یہ حاصل شدہ معلومات جنریٹیو ماڈل کے لیے ان پٹ کو بڑھانے کے لیے استعمال ہوتی ہے۔ اس سے ماڈل کو زیادہ درست اور سیاق و سباق کے مطابق جوابات پیدا کرنے میں مدد ملتی ہے۔

ایک RAG نظام میں، ایجنٹ متعلقہ معلومات کو کسی نالج بیس سے حاصل کرتا ہے اور مناسب ردعمل یا اقدامات پیدا کرنے کے لیے اسے استعمال کرتا ہے۔

اصلاحی RAG طریقہ کار

اصلاحی RAG طریقہ کار غلطیوں کو درست کرنے اور AI ایجنٹس کی درستگی کو بہتر بنانے کے لیے RAG تکنیکوں کے استعمال پر مرکوز ہوتا ہے۔ اس میں شامل ہے:

  1. پرومپٹنگ تکنیک: ایجنٹ کو متعلقہ معلومات حاصل کرنے میں رہنمائی کے لیے مخصوص پرومپٹس کا استعمال۔
  2. آلات: وہ الگورتھمز اور میکانزم جو ایجنٹ کو حاصل شدہ معلومات کی مطابقت کا جائزہ لینے اور درست ردعمل پیدا کرنے کے قابل بناتے ہیں۔
  3. تشخیص: ایجنٹ کی کارکردگی کا مسلسل جائزہ لینا اور اس کی درستگی اور کارکردگی کو بہتر بنانے کے لیے ایڈجسٹمنٹ کرنا۔

مثال: ایک سرچ ایجنٹ میں اصلاحی RAG

کسی سرچ ایجنٹ پر غور کریں جو ویب سے معلومات حاصل کرتا ہے تاکہ صارف کے سوالات کے جواب دے سکے۔ اصلاحی RAG طریقہ کار میں شامل ہو سکتا ہے:

  1. پرومپٹنگ تکنیک: صارف کے ان پٹ کی بنیاد پر سرچ سوالات کی تشکیل۔
  2. آلات: نیچرل لینگویج پروسیسنگ اور مشین لرننگ الگورتھمز کا استعمال نتائج کی درجہ بندی اور فلٹر کرنے کے لیے۔
  3. تشخیص: صارف کی رائے کا تجزیہ کرکے حاصل شدہ معلومات میں غلطیوں کی شناخت اور اصلاح۔

سفر ایجنٹ میں اصلاحی RAG

اصلاحی RAG (ریٹریول آگمینٹڈ جنریشن) 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 طریقہ کار شامل کرتی ہے:

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 کلاس ممکنہ مقامات کی فہرست کے ساتھ initialize ہوتی ہے، جن میں ہر ایک کے نام، قیمت، اور سرگرمی کی قسم جیسی خصوصیات شامل ہیں۔

  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 کلاس ممکنہ سفری مقامات کی فہرست کے ساتھ initialize ہوتی ہے، جن میں ہر ایک کے نام اور تفصیل جیسی خصوصیات شامل ہیں۔

  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 سروس کا استعمال کر کے سفر کے مقامات کی دوبارہ درجہ بندی اور سکور شدہ تجاویز حاصل کرتا ہے۔

یقینی بنائیں کہ your_azure_openai_api_key کو آپ کی اصل Azure OpenAI API کی کلید سے اور https://your-endpoint.com/... کو آپ کی Azure OpenAI تعیناتی کے اصل اینڈپوائنٹ URL سے تبدیل کریں۔

LLM کو دوبارہ درجہ بندی اور سکورنگ کے لیے استعمال کر کے، ٹریول ایجنٹ کلائنٹس کو مزید ذاتی اور متعلقہ سفر کی تجاویز دے سکتا ہے، جس سے ان کا مجموعی تجربہ بہتر ہوتا ہے۔

RAG: پرامپٹنگ تکنیک بمقابلہ آلہ

ریٹریول-آگمینٹڈ جنریشن (RAG) AI ایجنٹس کی ترقی میں ایک پرامپٹنگ تکنیک اور ایک آلہ دونوں ہو سکتی ہے۔ دونوں میں فرق کو سمجھنا آپ کو اپنے پروجیکٹس میں RAG کو مؤثر طریقے سے استعمال کرنے میں مدد دے سکتا ہے۔

RAG بطور پرامپٹنگ تکنیک

یہ کیا ہے؟

یہ کیسے کام کرتا ہے:

  1. پرامپٹس تیار کریں: دیے گئے کام یا صارف کی ان پٹ کی بنیاد پر اچھی طرح سے ترتیب دیے گئے پرامپٹس یا سوالات بنائیں۔
  2. معلومات حاصل کریں: پرامپٹس کا استعمال کر کے پہلے سے موجود علم کے ذخیرے یا ڈیٹا سیٹ سے متعلقہ ڈیٹا تلاش کریں۔
  3. جواب تیار کریں: حاصل کردہ معلومات کو جنریٹو AI ماڈلز کے ساتھ ملا کر مکمل اور مربوط جواب فراہم کریں۔

ٹریول ایجنٹ میں مثال:

RAG بطور آلہ

یہ کیا ہے؟

یہ کیسے کام کرتا ہے:

  1. انضمام: RAG کو AI ایجنٹ کی ساخت میں شامل کریں تاکہ یہ بازیافت اور جنریشن کے کام خود بخود سنبھال سکے۔
  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]  # بہترین 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. صارف کے مقصد کو سمجھنا:
    • صارف کے مقصد کو تین بنیادی اقسام میں تقسیم کیا جا سکتا ہے: معلوماتی، نیویگیٹ کرنے والا، اور لین دین کرنے والا۔
      • معلوماتی مقصد: صارف کسی موضوع کے بارے میں معلومات چاہتا ہے (مثلاً “پیرس کے بہترین میوزیم کون سے ہیں؟”)۔
      • نیویگیٹ کرنے والا مقصد: صارف کسی مخصوص ویب سائٹ یا صفحہ پر جانا چاہتا ہے (مثلاً “لوور میوزیم کی آفیشل ویب سائٹ”)۔
      • لین دین کرنے والا مقصد: صارف کوئی لین دین کرنا چاہتا ہے، جیسے فلائٹ بک کرنا یا خریداری کرنا (مثلاً “پیرس کے لیے فلائٹ بک کریں”)۔
  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. SQL کو RAG کے طور پر استعمال کرنا: ڈیٹا بیس سے ڈیٹا نکالنے اور اس میں ترمیم کرنے کے لیے SQL کوئریز کا استعمال کریں۔
  3. مسئلہ حل کرنا: مخصوص مسائل حل کرنے کے لیے کوڈ بنائیں اور چلائیں، جیسے الگوردمز کی بہتری یا ڈیٹا کا تجزیہ۔

مثال: ڈیٹا تجزیہ کے لیے کوڈ بنانے والا ایجنٹ

فرض کریں کہ آپ کوڈ بنانے والا ایک ایجنٹ ڈیزائن کر رہے ہیں۔ یہ اس طرح کام کر سکتا ہے:

  1. کام: ایک ڈیٹاسیٹ کا تجزیہ کریں تاکہ رجحانات اور پیٹرنز شناخت کریں۔
  2. قدم:
    • ڈیٹاسیٹ کو ڈیٹا تجزیہ کے آلے میں لوڈ کریں۔
    • ڈیٹا کو فلٹر اور جمع کرنے کے لیے SQL کوئریز بنائیں۔
    • کوئریز کو چلائیں اور نتائج حاصل کریں۔
    • نتائج استعمال کرتے ہوئے بصری نمائش اور بصیرت تیار کریں۔
  3. ضروری وسائل: ڈیٹاسیٹ، ڈیٹا تجزیہ کے آلات، اور 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. کوئریز بنانا اور چلانا: نظام نئے ترجیحات کی بنیاد پر فلائٹ اور ہوٹل کے اپ ڈیٹ شدہ ڈیٹا کو حاصل کرنے کے لیے کوئریز بنائے گا اور چلائے گا۔

یہاں ایک اپ ڈیٹ شدہ پائتھون کوڈ کی مثال ہے جو ان تصورات کو شامل کرتا ہے:

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. کام: رجحانات تلاش کرنے کے لیے ڈیٹاسیٹ کا تجزیہ کرنا۔
  2. قدم:
    • ڈیٹاسیٹ لوڈ کریں۔
    • ڈیٹا فلٹر کرنے کے لیے SQL کوئریز بنائیں۔
    • کوئریز کو چلائیں اور نتائج حاصل کریں۔
    • بصری نمائش اور بصیرتیں تیار کریں۔
  3. وسائل: ڈیٹاسیٹ تک رسائی، 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';
    

SQL کو Retrieval-Augmented Generation (RAG) تکنیک کے حصے کے طور پر استعمال کرتے ہوئے، AI ایجنٹس جیسے سفر کا ایجنٹ متعلقہ ڈیٹا کو متحرک طور پر حاصل کر کے درست اور ذاتی نوعیت کی سفارشات فراہم کر سکتے ہیں۔

میٹاكونگنيشن کی مثال

تو میٹاكونگنيشن کے نفاذ کی نمائش کے لیے، آئیے ایک سادہ ایجنٹ بنائیں جو مسئلہ حل کرتے ہوئے اپنے فیصلہ سازی کے عمل پر غور کرتا ہے۔ اس مثال کے لیے، ہم ایک ایسا نظام بنائیں گے جہاں ایجنٹ ہوٹل کے انتخاب کو بہتر بنانے کی کوشش کرتا ہے، لیکن پھر اپنی استدلال کا جائزہ لیتا ہے اور غلطیوں یا غیر مثالی انتخاب کی صورت میں اپنی حکمت عملی کو ایڈجسٹ کرتا ہے۔

ہم اسے ایک بنیادی مثال کے طور پر ماڈل کریں گے جہاں ایجنٹ قیمت اور معیار کے امتزاج کی بنیاد پر ہوٹل منتخب کرتا ہے، لیکن اپنے فیصلوں پر “غور” کرتا ہے اور اسی کے مطابق ایڈجسٹ کرتا ہے۔

یہ میٹاكونگنيشن کی وضاحت کیسے کرتا ہے:

  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']}")

ایجنٹس کی میٹاكونگنيشن صلاحیتیں

یہاں کلیدی بات ایجنٹ کی صلاحیت ہے:

یہ میٹاكونگنيشن کی ایک سادہ شکل ہے جہاں نظام داخلی ردعمل کی بنیاد پر اپنی استدلال کے عمل کو ایڈجسٹ کرنے کے قابل ہوتا ہے۔

نتیجہ

میٹاكونگنيشن ایک طاقتور آلہ ہے جو AI ایجنٹس کی صلاحیتوں کو نمایاں طور پر بڑھا سکتا ہے۔ میٹاكونگنيٹو عمل کو شامل کر کے آپ ایسے ایجنٹس ڈیزائن کر سکتے ہیں جو زیادہ ذہین، لچکدار، اور موثر ہوں۔ اضافی وسائل کا استعمال کریں تاکہ AI ایجنٹس میں میٹاكونگنيشن کی دلچسپ دنیا کو مزید دریافت کیا جا سکے۔

میٹاكونگنيشن ڈیزائن پیٹرن کے بارے میں مزید سوالات ہیں؟

ملاقات کے لیے Microsoft Foundry Discord میں شامل ہوں، دیگر سیکھنے والوں سے ملیں، آفس آورز میں شرکت کریں اور اپنے AI ایجنٹس کے سوالات کے جواب حاصل کریں۔

پچھلا سبق

کئی ایجنٹس کا ڈیزائن پیٹرن

اگلا سبق

پیداوار میں AI ایجنٹس


ڈس کلیمر: یہ دستاویز AI ترجمہ سروس Co-op Translator کے ذریعے ترجمہ کی گئی ہے۔ جبکہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم اس بات سے آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز اپنے مادری زبان میں مستند ماخذ سمجھی جائے گی۔ حساس معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم قبول نہیں کرتے۔