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

میٹاگنیشن کے عمل میں داخل ہونے سے پہلے، AI ایجنٹ کے بنیادی اجزاء کو سمجھنا ضروری ہے۔ ایک AI ایجنٹ عام طور پر مشتمل ہوتا ہے:
یہ اجزاء مل کر ایک “expertise unit” بناتے ہیں جو مخصوص کام انجام دے سکتی ہے۔
Example:
ایک ٹریول ایجنٹ کا تصور کریں، ایسی ایجنٹ خدمات جو نہ صرف آپ کی چھٹی منصوبہ بندی کرتی ہیں بلکہ حقیقی وقت کے ڈیٹا اور ماضی کے کسٹمر سفر کے تجربات کی بنیاد پر اپنا راستہ بھی ایڈجسٹ کرتی ہیں۔
تصور کریں کہ آپ ایک AI سے چلنے والی ٹریول ایجنٹ سروس ڈیزائن کر رہے ہیں۔ یہ ایجنٹ، “Travel Agent”، صارفین کو ان کی تعطیلات کی منصوبہ بندی میں مدد کرتا ہے۔ میٹاگنیشن شامل کرنے کے لیے، Travel Agent کو اپنی خود آگاہی اور ماضی کے تجربات کی بنیاد پر اپنے اعمال کا جائزہ لے کر انہیں ایڈجسٹ کرنے کی ضرورت ہے۔ یہاں میٹاگنیشن کس طرح کردار ادا کر سکتی ہے:
موجودہ کام صارف کی پیرس کی سفر کی منصوبہ بندی میں مدد کرنا ہے۔
Travel Agent اپنی کارکردگی کا جائزہ لینے اور ماضی کے تجربات سے سیکھنے کے لیے میٹاگنیشن استعمال کرتا ہے۔ مثال کے طور پر:
یہاں ایک سادہ مثال ہے کہ جب Travel Agent میں میٹاگنیشن شامل کی جاتی ہے تو اس کا کوڈ کیسا دکھ سکتا ہے:
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)
میٹاگنیشن کو شامل کر کے، Travel Agent زیادہ ذاتی نوعیت اور درست سفر کی سفارشات فراہم کر سکتا ہے، جس سے مجموعی صارف تجربہ بہتر ہوتا ہے۔
منصوبہ بندی AI ایجنٹ کے طرز عمل کا ایک اہم جزو ہے۔ اس میں کسی ہدف کے حصول کے لیے درکار اقدامات کا خاکہ شامل ہوتا ہے، موجودہ حالت، وسائل، اور ممکنہ رکاوٹوں کو مدنظر رکھتے ہوئے۔
Example:
یہاں وہ مراحل ہیں جو Travel Agent کو صارف کی مدد کے لیے موثر طور پر پورے سفر کی منصوبہ بندی میں اٹھانے چاہئیں:
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)
سب سے پہلے آئیے RAG Tool اور Pre-emptive Context Load کے درمیان فرق کو سمجھنے سے آغاز کریں

RAG ایک retrieval سسٹم کو generative ماڈل کے ساتھ ملا دیتا ہے۔ جب کوئی سوال کیا جاتا ہے، تو retrieval سسٹم بیرونی ماخذ سے متعلقہ دستاویزات یا ڈیٹا لاتا ہے، اور یہ بازیافت شدہ معلومات جنریٹو ماڈل کے ان پٹ کو تقویت دینے کے لیے استعمال ہوتی ہیں۔ اس سے ماڈل کو زیادہ درست اور سیاق و سباق کے مطابق جوابات پیدا کرنے میں مدد ملتی ہے۔
ایک RAG نظام میں، ایجنٹ متعلقہ معلومات کو ایک علم کے ذخیرے سے بازیافت کرتا ہے اور مناسب جوابات یا اعمال پیدا کرنے کے لیے اس کا استعمال کرتا ہے۔
اصلاحی RAG طریقہ کار RAG تکنیکس کو غلطیوں کی اصلاح اور AI ایجنٹس کی درستگی بہتر بنانے کے لیے استعمال کرنے پر مرکوز ہے۔ اس میں شامل ہے:
ایک سرچ ایجنٹ پر غور کریں جو صارف کے سوالات کا جواب دینے کے لیے ویب سے معلومات بازیافت کرتا ہے۔ اصلاحی RAG طریقہ کار میں شامل ہو سکتا ہے:
اصلاحی RAG (Retrieval-Augmented Generation) AI کی بازیافت اور تولیدی صلاحیتوں کو بہتر بناتا ہے جبکہ کسی بھی غلطی کو درست بھی کرتا ہے۔ آئیے دیکھتے ہیں کہ Travel Agent اصلاحی RAG طریقہ کار کو کیسے استعمال کر سکتا ہے تاکہ زیادہ درست اور متعلقہ سفری سفارشات فراہم کی جا سکیں۔
اس میں شامل ہے:
مثال:
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
مثال:
flights = search_flights(preferences)
hotels = search_hotels(preferences)
attractions = search_attractions(preferences)
مثال:
itinerary = create_itinerary(flights, hotels, attractions)
print("Suggested Itinerary:", itinerary)
مثال:
feedback = {
"liked": ["Louvre Museum"],
"disliked": ["Eiffel Tower (too crowded)"]
}
مثال:
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)
یہاں Travel Agent میں اصلاحی 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)
Pre-emptive Context Load کا مطلب ہے کہ ماڈل کو کسی سوال کو پروسیس کرنے سے پہلے متعلقہ سیاق و سباق یا پس منظر کی معلومات لوڈ کر دی جائیں۔ اس کا مطلب یہ ہے کہ ماڈل شروع سے ہی ان معلومات تک رسائی رکھتا ہے، جو اسے عمل کے دوران اضافی ڈیٹا بازیافت کیے بغیر زیادہ باخبر جوابات تیار کرنے میں مدد دیتی ہے۔
ذیل میں ایک سادہ مثال ہے کہ ایک ٹریول ایجنٹ ایپلیکیشن کے لیے پری-امپٹیو کانٹیکسٹ لوڈ 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"))
Initialization (__init__ method): کلاس TravelAgent پہلے سے ایک ڈکشنری لوڈ کرتی ہے جس میں مقبول منزلوں جیسے Paris، Tokyo، New York، اور Sydney کے بارے میں معلومات شامل ہیں۔ اس ڈکشنری میں ہر منزل کے لیے ملک، کرنسی، زبان، اور اہم سیاحتی مقامات جیسی تفصیلات شامل ہیں۔
Retrieving Information (get_destination_info method): جب کوئی صارف کسی مخصوص منزل کے بارے میں پوچھتا ہے، تو get_destination_info طریقہ پہلے سے لوڈ شدہ کانٹیکسٹ ڈکشنری سے متعلقہ معلومات حاصل کرتا ہے۔
کانٹیکسٹ کو پہلے سے لوڈ کر کے، ٹریول ایجنٹ ایپلیکیشن صارف کے سوالات کے جوابات تیزی سے دے سکتی ہے بغیر یہ کہ عمل کے دوران بیرونی ذرائع سے معلومات بازیافت کرنے کی ضرورت ہو۔ اس سے ایپلیکیشن زیادہ موثر اور فوری ہو جاتی ہے۔
مقصد کے ساتھ ایک منصوبہ شروعات کرنا اس میں شامل ہے کہ ایک واضح ہدف یا متوقع نتیجہ ذہن میں رکھ کر آغاز کیا جائے۔ اس مقصد کو پہلے سے متعین کر کے، ماڈل اسے دہرائی کے پورے عمل میں رہنما اصول کے طور پر استعمال کر سکتا ہے۔ اس سے ہر تکرار اس مقررہ نتیجے کے حصول کے قریب جاتی ہے، جس سے عمل زیادہ مؤثر اور مرکوز بنتا ہے۔
ذیل میں ایک مثال ہے کہ آپ کس طرح ایک ٹریول پلان کو مقصد کے ساتھ شروعات کر کے دہرائی کر سکتے ہیں (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)
Initialization (__init__ method): کلاس TravelAgent ممکنہ منزلوں کی ایک فہرست کے ساتھ شروع ہوتی ہے، ہر ایک میں نام، قیمت، اور سرگرمی کی قسم جیسی خصوصیات شامل ہوتی ہیں۔
Bootstrapping the Plan (bootstrap_plan method): یہ طریقہ کلائنٹ کی ترجیحات اور بجٹ کی بنیاد پر ایک ابتدائی سفر کا منصوبہ بناتا ہے۔ یہ منزلوں کی فہرست پر تَکرار کرتا ہے اور انہیں منصوبے میں شامل کرتا ہے اگر وہ کلائنٹ کی ترجیحات سے میل کھاتے ہوں اور بجٹ کے اندر fit ہوں۔
Matching Preferences (match_preferences method): یہ طریقہ چیک کرتا ہے کہ آیا کوئی منزل کلائنٹ کی ترجیحات سے میل کھاتی ہے۔
Iterating the Plan (iterate_plan method): یہ طریقہ ابتدائی منصوبے کو بہتر بناتا ہے، ہر منزل کو بہتر متبادل کے ساتھ تبدیل کرنے کی کوشش کرتا ہے، کلائنٹ کی ترجیحات اور بجٹ کی حدود کو مدِنظر رکھتے ہوئے۔
Calculating Cost (calculate_cost method): یہ طریقہ موجودہ منصوبے کی کل لاگت کا حساب لگاتا ہے، ایک ممکنہ نئی منزل کو شامل کرنے کے ساتھ۔
مقصد (مثلاً کلائنٹ کی اطمینان کو زیادہ سے زیادہ کرنا) کے ساتھ منصوبہ bootstrap کرنے اور پھر منصوبے کو بہتر بنانے کے لیے تکرار کرنے سے، ٹریول ایجنٹ کلائنٹ کے لیے ایک حسبِ ضرورت اور بہتر شدہ سفر نامہ بنا سکتا ہے۔ اس طریقہ کار سے یقینی بنتا ہے کہ سفر کا منصوبہ شروع سے ہی کلائنٹ کی ترجیحات اور بجٹ کے مطابق ہو اور ہر تکرار کے ساتھ بہتر ہو۔
Large Language Models (LLMs) ری-رینکنگ اور سکورنگ کے لیے استعمال کیے جا سکتے ہیں تاکہ بازیافت شدہ دستاویزات یا تخلیق شدہ جوابات کی مطابقت اور معیار کا اندازہ لگایا جا سکے۔ طریقہ کار کچھ یوں ہے:
Retrieval: ابتدائی بازیافت کا مرحلہ سوال کی بنیاد پر ممکنہ امیدوار دستاویزات یا جوابات کا مجموعہ حاصل کرتا ہے۔
Re-ranking: LLM ان امیدواروں کا جائزہ لیتا ہے اور انہیں ان کی مطابقت اور معیار کی بنیاد پر دوبارہ درجہ بندی کرتا ہے۔ اس مرحلے سے یہ یقینی بنتا ہے کہ سب سے زیادہ متعلقہ اور اعلیٰ معیار کی معلومات پہلے پیش کی جائیں۔
Scoring: LLM ہر امیدوار کو اسکور تفویض کرتا ہے جو ان کی مطابقت اور معیار کی عکاسی کرتا ہے۔ اس سے بہترین جواب یا دستاویز منتخب کرنے میں مدد ملتی ہے۔
LLMs کو ری-رینکنگ اور سکورنگ کے لیے استعمال کر کے، سسٹم زیادہ درست اور سیاق و سباق کے مطابق معلومات فراہم کر سکتا ہے، جس سے مجموعی صارف تجربہ بہتر ہوتا ہے۔
ذیل میں ایک مثال ہے کہ کس طرح ایک ٹریول ایجنٹ صارف کی ترجیحات کی بنیاد پر سفر کی منزلوں کو دوبارہ درجہ بندی اور سکور دے سکتا ہے (Python میں):
ایک ٹریول ایجنٹ صارف کی ترجیحات کی بنیاد پر بہترین سفر مقامات کی تجویز دینا چاہتا ہے۔ LLM منزلوں کو دوبارہ درجہ بندی اور سکور دے کر یہ یقینی بنائے گا کہ سب سے زیادہ متعلقہ آپشنز پیش کیے جائیں۔
Here’s how you can update the previous example to use Azure OpenAI Services:
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)
Initialization: کلاس TravelAgent ممکنہ سفر مقامات کی ایک فہرست کے ساتھ شروع ہوتی ہے، ہر ایک میں نام اور تفصیل جیسی خصوصیات شامل ہیں۔
Getting Recommendations (get_recommendations method): یہ طریقہ صارف کی ترجیحات کی بنیاد پر Azure OpenAI سروس کے لیے ایک پرامپٹ تیار کرتا ہے اور ری-رینکڈ اور سکور کیے گئے منزلوں کے لیے Azure OpenAI API کو HTTP POST درخواست بھیجتا ہے۔
Generating Prompt (generate_prompt method): یہ طریقہ Azure OpenAI کے لیے ایک پرامپٹ تیار کرتا ہے، جس میں صارف کی ترجیحات اور منزلوں کی فہرست شامل ہوتی ہے۔ یہ پرامپٹ ماڈل کو رہنمائی کرتا ہے کہ فراہم کردہ ترجیحات کی بنیاد پر منزلوں کو دوبارہ درجہ بندی اور سکور کرے۔
API Call: requests لائبریری Azure OpenAI API endpoint کو HTTP POST درخواست کرنے کے لیے استعمال کی جاتی ہے۔ جواب میں ری-رینکڈ اور سکور کیے گئے منزلیں ملتی ہیں۔
Example Usage: ٹریول ایجنٹ صارف کی ترجیحات (مثلاً سیر و سیاحت اور متنوع ثقافت میں دلچسپی) جمع کرتا ہے اور ری-رینکڈ اور سکور شدہ سفر کی سفارشات حاصل کرنے کے لیے Azure OpenAI سروس استعمال کرتا ہے۔
یقینی بنائیں کہ your_azure_openai_api_key کو اپنے حقیقی Azure OpenAI API کلید سے تبدیل کریں اور https://your-endpoint.com/... کو اپنے Azure OpenAI ڈپلائمنٹ کے حقیقی endpoint URL سے بدل دیں۔
LLM کو ری-رینکنگ اور سکورنگ کے لیے استعمال کر کے، ٹریول ایجنٹ اپنے صارفین کو زیادہ شخصی اور متعلقہ سفر کی سفارشات دے سکتا ہے، جس سے ان کا مجموعی تجربہ بہتر ہوتا ہے۔
Retrieval-Augmented Generation (RAG) دونوں صورتوں میں استعمال ہو سکتا ہے: ایک پرامپٹنگ تکنیک اور ایک ٹول، AI ایجنٹس کی ترقی میں۔ دونوں کے درمیان فرق کو سمجھنا آپ کو اپنے پروجیکٹس میں RAG کا زیادہ مؤثر استعمال کرنے میں مدد دے گا۔
یہ کیا ہے؟
یہ کیسے کام کرتا ہے:
ٹریول ایجنٹ میں مثال:
یہ کیا ہے؟
یہ کیسے کام کرتا ہے:
ٹریول ایجنٹ میں مثال:
| Aspect | Prompting Technique | Tool |
|---|---|---|
| Manual vs Automatic | ہر سوال کے لیے پرامپٹس کی دستی تیاری۔ | بازیافت اور جنریشن کے لیے خودکار عمل۔ |
| Control | بازیافت کے عمل پر زیادہ کنٹرول فراہم کرتا ہے۔ | بازیافت اور جنریشن کو ہموار اور خودکار بناتا ہے۔ |
| Flexibility | مخصوص ضروریات کی بنیاد پر حسبِ ضرورت پرامپٹس کی اجازت دیتا ہے۔ | بڑے پیمانے پر نفاذ کے لیے زیادہ موثر۔ |
| Complexity | پرامپٹس کی تشکیل اور ایڈجسٹمنٹ کی ضرورت ہوتی ہے۔ | AI ایجنٹ کی آرکیٹیکچر میں ضم کرنا آسان تر۔ |
Prompting Technique Example:
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)
Tool Example:
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 ایجنٹس میں مناسبیت کا اندازہ کیسے کیا جاتا ہے، بشمول عملی مثالیں اور تکنیکیں۔
مثال:
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
مثال:
def filter_and_rank(items, query):
ranked_items = sorted(items, key=lambda item: relevance_score(item, query), reverse=True)
return ranked_items[:10] # اوپر کے ۱۰ متعلقہ اشیاء واپس کریں
مثال:
def process_query(query):
# NLP استعمال کریں تاکہ صارف کے استفسار سے کلیدی معلومات نکالی جائیں
processed_query = nlp(query)
return processed_query
مثال:
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
یہاں ایک عملی مثال ہے کہ کس طرح Travel Agent سفر کی سفارشات کی مناسبیت کا اندازہ کر سکتا ہے:
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)
ارادے کے ساتھ تلاش میں صارف کے سوال کے پیچھے چھپے ہوئے مقصد یا ہدف کو سمجھنا اور تشریح کرنا شامل ہے تاکہ سب سے زیادہ متعلقہ اور مفید معلومات بازیافت اور تیار کی جا سکیں۔ یہ طریقہ صرف کلیدی الفاظ کے ملاپ سے آگے بڑھ کر صارف کی حقیقی ضروریات اور سیاق و سباق کو سمجھنے پر زور دیتا ہے۔
آئیے Travel Agent کی مثال لے کر دیکھتے ہیں کہ ارادے کے ساتھ تلاش کس طرح نافذ کی جا سکتی ہے۔
صارف کی ترجیحات جمع کرنا
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
صارف کے ارادے کو سمجھنا
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"
def analyze_context(query, user_history):
# سیاق و سباق کو سمجھنے کے لیے موجودہ استفسار کو صارف کی تاریخ کے ساتھ جوڑیں
context = {
"current_query": query,
"user_history": user_history
}
return context
تلاش اور نتائج کو حسبِ ذوق بنائیں
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 ذاتی نتائج واپس کریں
مثالی استعمال
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)
کوڈ جنریٹ کرنے والے ایجنٹس AI ماڈلز کا استعمال کرتے ہیں کوڈ لکھنے اور چلانے کے لیے، پیچیدہ مسائل حل کرنے اور کاموں کو خودکار بنانے کے لیے۔
کوڈ جنریٹ کرنے والے ایجنٹس جنریٹو AI ماڈلز کا استعمال کرتے ہیں کوڈ لکھنے اور چلانے کے لیے۔ یہ ایجنٹس پیچیدہ مسائل حل کر سکتے ہیں، کاموں کو خودکار بنا سکتے ہیں، اور مختلف پروگرامنگ زبانوں میں کوڈ بنا کر چلانے کے ذریعے قیمتی بصیرت فراہم کر سکتے ہیں۔
فرض کریں آپ ایک کوڈ جنریٹ کرنے والا ایجنٹ ڈیزائن کر رہے ہیں۔ یہ اس طرح کام کر سکتا ہے:
اس مثال میں، ہم ایک کوڈ جنریٹ کرنے والا ایجنٹ، Travel Agent، ڈیزائن کریں گے تاکہ صارفین کی سفر کی منصوبہ بندی میں مدد کی جا سکے، اور یہ کوڈ بنا کر چلا سکے۔ یہ ایجنٹ پروازوں کے آپشنز حاصل کرنے، نتائج کو فلٹر کرنے، اور جنریٹو AI کا استعمال کرتے ہوئے سفری پروگرام مرتب کرنے جیسے کام سنبھال سکتا ہے۔
صارف کی ترجیحات جمع کرنا
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
ڈیٹا حاصل کرنے کے لیے کوڈ جنریٹ کرنا
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
جنریٹ کردہ کوڈ چلانا
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)
سفر نامہ بنانا
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)
فیڈبیک کی بنیاد پر ایڈجسٹ کرنا
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)
ٹیبل کے اسکیمہ کی بنیاد پر واقعی کوئری جنریشن کے عمل کو ماحولیاتی آگاہی اور استدلال کے ذریعے بہتر کیا جا سکتا ہے۔
یہاں ایک مثال ہے کہ یہ کیسے کیا جا سکتا ہے:
یہاں ایک اپڈیٹ شدہ 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)
schema ڈکشنری بتاتی ہے کہ فیڈبیک کی بنیاد پر ترجیحات کو کیسے ایڈجسٹ کیا جانا چاہیے۔ اس میں favorites اور avoid جیسے فیلڈز شامل ہیں، جن کے مطابق ایڈجسٹمنٹس کیے جاتے ہیں۔adjust_based_on_feedback میتھڈ): یہ میتھڈ صارف کے فیڈبیک اور اسکیمہ کی بنیاد پر ترجیحات کو ایڈجسٹ کرتا ہے۔adjust_based_on_environment میتھڈ): یہ میتھڈ اسکیمہ اور فیڈبیک کی بنیاد پر ایڈجسٹمنٹس کو حسبِ ماحول کسٹمائز کرتا ہے۔نظام کو ماحولیاتی آگاہ اور اسکیمہ کی بنیاد پر استدلال کرنے کے قابل بنا کر، یہ زیادہ درست اور متعلقہ کوئریز جنریٹ کر سکتا ہے، جس سے بہتر سفر کی سفارشات اور زیادہ شخصی صارف تجربہ حاصل ہوتا ہے۔
SQL (Structured Query Language) ڈیٹا بیس کے ساتھ تعامل کے لیے ایک طاقتور ٹول ہے۔ جب اسے Retrieval-Augmented Generation (RAG) اپروچ کے حصے کے طور پر استعمال کیا جائے، تو SQL ڈیٹا بیس سے متعلقہ ڈیٹا نکال سکتا ہے تاکہ AI ایجنٹس میں جوابات یا ایکشنز کی ہدایت یا جنریشن کے لیے معلومات فراہم کی جا سکیں۔ آئیے دیکھتے ہیں کہ Travel Agent کے سیاق و سباق میں SQL کو RAG تکنیک کے طور پر کیسے استعمال کیا جا سکتا ہے۔
مثال: ایک ڈیٹا اینالسِس ایجنٹ:
صارف کی ترجیحات جمع کرنا
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
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
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
سفارشات تیار کرنا
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)
فلائٹ کوئری
SELECT * FROM flights WHERE destination='Paris' AND dates='2025-04-01 to 2025-04-10' AND budget='moderate';
ہوٹل کوئری
SELECT * FROM hotels WHERE destination='Paris' AND budget='moderate';
پرکشش مقامات کی کوئری
SELECT * FROM attractions WHERE destination='Paris' AND interests='museums, cuisine';
SQL کو Retrieval-Augmented Generation (RAG) تکنیک کے حصے کے طور پر استعمال کر کے، AI ایجنٹس جیسے Travel Agent متحرک طور پر متعلقہ ڈیٹا نکال سکتے ہیں اور درست اور شخصی سفارشات فراہم کرنے کے لیے اس کا استعمال کر سکتے ہیں۔
تو میٹا کگنیشن کے نفاذ کی ایک مثال دکھانے کے لیے، آئیے ایک سادہ ایجنٹ بنائیں جو مسئلہ حل کرتے ہوئے اپنے فیصلہ سازی کے عمل پر غور کرتا ہے۔ اس مثال میں، ہم ایک سسٹم بنائیں گے جہاں ایجنٹ ہوٹل کے انتخاب کو بہتر بنانے کی کوشش کرتا ہے، پھر اپنے استدلال کا جائزہ لیتا ہے اور جب وہ غلطیاں یا غیر مثالی انتخابات کرے تو اپنی حکمتِ عملی کو ایڈجسٹ کرتا ہے۔
ہم اسے ایک بنیادی مثال کے ذریعے سمِولیٹ کریں گے جہاں ایجنٹ قیمت اور معیار کے امتزاج کی بنیاد پر ہوٹلز کا انتخاب کرتا ہے، مگر پھر وہ اپنے فیصلوں پر “غور” کرے گا اور اسی کے مطابق اپنی حکمتِ عملی تبدیل کرے گا۔
یہاں ایک مثال ہے:
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 ترجمہ سروس Co‑op Translator (https://github.com/Azure/co-op-translator) کے ذریعے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشاں ہیں، تاہم براہِ کرم نوٹ کریں کہ خودکار تراجم میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز اس کی مادری زبان میں موثق ماخذ سمجھی جانی چاہیے۔ اہم معلومات کے لیے پیشہ ورانہ انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تعبیر کے لیے ہم ذمہ دار نہیں ہیں۔