(انقر على الصورة أعلاه لمشاهدة فيديو هذا الدرس)
الإدراك فوق المعرفي في وكلاء الذكاء الاصطناعي
مرحبًا بك في درس الإدراك فوق المعرفي في وكلاء الذكاء الاصطناعي! هذا الفصل مخصص للمبتدئين الذين يثير فضولهم كيف يمكن لوكلاء الذكاء الاصطناعي التفكير في عمليات تفكيرهم الخاصة. بحلول نهاية هذا الدرس، ستفهم المفاهيم الرئيسية وستكون مزودًا بأمثلة عملية لتطبيق الإدراك فوق المعرفي في تصميم وكلاء الذكاء الاصطناعي.
بعد إتمام هذا الدرس، ستكون قادرًا على:
يشير الإدراك فوق المعرفي إلى العمليات الإدراكية العليا التي تنطوي على التفكير في التفكير ذاته. بالنسبة لوكلاء الذكاء الاصطناعي، يعني هذا القدرة على تقييم وتعديل أفعالهم بناءً على الوعي الذاتي والتجارب السابقة. يعد الإدراك فوق المعرفي، أو “التفكير في التفكير”، مفهومًا مهمًا في تطوير أنظمة الذكاء الاصطناعي الوكيلية. يشمل ذلك وعي أنظمة الذكاء الاصطناعي بعملياتها الداخلية وقدرتها على المراقبة والتنظيم والتكيف وفقًا لذلك. تمامًا كما نفعل عندما نقرأ الموقف أو ننظر إلى مشكلة. يمكن لهذا الوعي الذاتي أن يساعد أنظمة الذكاء الاصطناعي على اتخاذ قرارات أفضل، وتحديد الأخطاء، وتحسين أدائها مع مرور الوقت - مما يعيدنا مرة أخرى إلى اختبار تورينغ والنقاش حول ما إذا كان الذكاء الاصطناعي سيهيمن في النهاية.
في سياق أنظمة الذكاء الاصطناعي الوكيلية، يمكن للإدراك فوق المعرفي معالجة عدة تحديات، مثل:
الإدراك فوق المعرفي، أو “التفكير في التفكير”، هو عملية إدراكية عليا تشمل الوعي الذاتي والتنظيم الذاتي للعمليات المعرفية للفرد. في مجال الذكاء الاصطناعي، يمنح الإدراك فوق المعرفي الوكلاء القدرة على تقييم وتعديل استراتيجياتهم وأفعالهم، مما يؤدي إلى تحسين قدرة حل المشكلات واتخاذ القرارات. من خلال فهم الإدراك فوق المعرفي، يمكنك تصميم وكلاء ذكاء اصطناعي ليسوا أكثر ذكاءً فحسب، بل أيضًا أكثر تكيّفًا وكفاءة. في الإدراك فوق المعرفي الحقيقي، سترى الذكاء الاصطناعي يستنتج صراحةً حول استدلاله الخاص.
مثال: “فضلت الرحلات الأرخص لأن… قد أكون أفوّت الرحلات المباشرة، لذا دعني أعيد التحقق.”
متابعة كيف ولماذا اختار طريقًا معينًا.
يلعب الإدراك فوق المعرفي دورًا حاسمًا في تصميم وكلاء الذكاء الاصطناعي لأسباب متعددة:

قبل الخوض في عمليات الإدراك فوق المعرفي، من الضروري فهم المكونات الأساسية للوكيل الذكي. عادةً ما يتكون وكيل الذكاء الاصطناعي من:
تعمل هذه المكونات معًا لإنشاء “وحدة خبرة” قادرة على أداء مهام محددة.
مثال:
فكر في وكيل سفر، وهو خدمة توفر تخطيط رحلتك بالإضافة إلى تعديل مسارها بناءً على بيانات الوقت الحقيقي وتجارب رحلات العملاء السابقة.
تخيل أنك تصمم خدمة وكيل سفر مدعومة بالذكاء الاصطناعي. هذا الوكيل “وكيل السفر”، يساعد المستخدمين في تخطيط عطلاتهم. لدمج الإدراك فوق المعرفي، يحتاج وكيل السفر إلى تقييم وتعديل أفعاله بناءً على الوعي الذاتي والتجارب السابقة. إليك كيف يمكن أن يلعب الإدراك فوق المعرفي دورًا:
المهمة الحالية هي مساعدة المستخدم في تخطيط رحلة إلى باريس.
يستخدم وكيل السفر الإدراك فوق المعرفي لتقييم أدائه والتعلم من الخبرات السابقة. على سبيل المثال:
إليك مثالًا مبسطًا على كيفية ظهور كود وكيل السفر عند دمجه الإدراك فوق المعرفي:
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)
من خلال دمج الإدراك فوق المعرفي، يمكن لوكيل السفر تقديم توصيات سفر أكثر تخصيصًا ودقة، مما يعزز تجربة المستخدم الشاملة.
يعد التخطيط مكونًا حيويًا في سلوك وكيل الذكاء الاصطناعي. يتضمن تحديد الخطوات اللازمة لتحقيق هدف معين، مع مراعاة الحالة الحالية، الموارد، والعوائق المحتملة.
مثال:
فيما يلي خطوات على وكيل السفر اتخاذها لمساعدة المستخدم في تخطيط رحلته بفعالية:
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 وتحميل السياق الاستباقي

يجمع RAG بين نظام استرجاع ونموذج توليدي. عندما يتم إجراء استعلام، يقوم نظام الاسترجاع بجلب الوثائق أو البيانات ذات الصلة من مصدر خارجي، وتُستخدم هذه المعلومات المسترجعة لتعزيز الإدخال للنموذج التوليدي. هذا يساعد النموذج على إنتاج ردود أكثر دقة وذات صلة بالسياق.
في نظام RAG، يسترجع الوكيل المعلومات ذات الصلة من قاعدة معرفة ويستخدمها لتوليد ردود أو أفعال مناسبة.
يركز نهج RAG التصحيحي على استخدام تقنيات RAG لتصحيح الأخطاء وتحسين دقة وكلاء الذكاء الاصطناعي. يشمل ذلك:
فكر في وكيل بحث يسترجع معلومات من الويب للرد على استفسارات المستخدم. قد يشمل نهج RAG التصحيحي:
يعزز RAG التصحيحي (التوليد المعزز بالاسترجاع) قدرة الذكاء الاصطناعي على استرجاع وتوليد المعلومات أثناء تصحيح أي أخطاء. دعنا نرى كيف يمكن لوكيل السفر استخدام نهج 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)
إليك مثال كود بايثون مبسط يدمج نهج 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)
تحميل السياق بشكل استباقي ينطوي على تحميل سياق أو معلومات خلفية ذات صلة في النموذج قبل معالجة الاستعلام. هذا يعني أن النموذج لديه وصول إلى هذه المعلومات من البداية، مما يمكنه من توليد استجابات أكثر وعيًا دون الحاجة إلى استرجاع بيانات إضافية أثناء العملية.
إليك مثال مبسط لكيفية ظهور تحميل السياق الاستباقي لتطبيق وكيل سفر بلغة بايثون:
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"))
التهيئة (طريقة __init__): تقوم فئة TravelAgent بتحميل قاموس يحتوي على معلومات حول وجهات سياحية شهيرة مثل باريس وطوكيو ونيويورك وسيدني. يشمل هذا القاموس تفاصيل مثل البلد، العملة، اللغة، والمعالم الرئيسية لكل وجهة.
استرجاع المعلومات (طريقة get_destination_info): عندما يستفسر المستخدم عن وجهة معينة، تجلب طريقة get_destination_info المعلومات ذات الصلة من قاموس السياق المحمّل مسبقًا.
عن طريق تحميل السياق مسبقًا، يمكن لتطبيق وكيل السفر الرد بسرعة على استفسارات المستخدمين دون الحاجة لاسترجاع هذه المعلومات من مصدر خارجي في الوقت الفعلي. هذا يجعل التطبيق أكثر كفاءة واستجابة.
بدء خطة بهدف يعني الشروع بهدف واضح أو نتيجة مستهدفة من البداية. عبر تحديد هذا الهدف مقدمًا، يمكن للنموذج استخدامه كمبدأ توجيهي خلال العملية التكرارية. هذا يساعد على ضمان أن كل تكرار يقرب من تحقيق النتيجة المرجوة، مما يجعل العملية أكثر كفاءة وتركيزًا.
إليك مثال على كيفية بدء خطة سفر بهدف قبل التكرار لوكيل سفر بلغة بايثون:
يريد وكيل السفر تخطيط عطلة مخصصة لعميل. الهدف هو إنشاء مسار سفر يزيد من رضا العميل بناءً على تفضيلاته وميزانيته.
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)
التهيئة (طريقة __init__): يتم تهيئة فئة TravelAgent مع قائمة من الوجهات المحتملة، كل منها يحتوي على سمات مثل الاسم، التكلفة، ونوع النشاط.
بدء الخطة (طريقة bootstrap_plan): تنشئ هذه الطريقة خطة سفر أولية بناءً على تفضيلات العميل وميزانيته. تتكرر عبر قائمة الوجهات وتضيفها إلى الخطة إذا كانت تتوافق مع تفضيلات العميل وتتناسب مع الميزانية.
مطابقة التفضيلات (طريقة match_preferences): تتحقق هذه الطريقة إذا كانت الوجهة تطابق تفضيلات العميل.
تكرار الخطة (طريقة iterate_plan): تنقيح الخطة الأولية بمحاولة استبدال كل وجهة في الخطة بمطابقة أفضل، مع مراعاة تفضيلات العميل وقيود الميزانية.
حساب التكلفة (طريقة calculate_cost): تحسب هذه الطريقة التكلفة الكلية للخطة الحالية، بما يشمل وجهة محتملة جديدة.
ببدء الخطة بهدف واضح (مثل تعظيم رضا العميل) والتكرار لتنقيح الخطة، يمكن لوكيل السفر إنشاء مسار سفر مخصص ومحسّن للعميل. هذا النهج يضمن توافق خطة السفر مع تفضيلات العميل وميزانيته من البداية ويتحسن مع كل تكرار.
يمكن استخدام نماذج اللغة الكبيرة (LLMs) في إعادة الترتيب والتقييم عبر تقييم مدى صلة وجودة المستندات المسترجعة أو الاستجابات المولدة. إليك كيف يعمل ذلك:
الاسترجاع: تجلب خطوة الاسترجاع الأولية مجموعة من المستندات أو الاستجابات المحتملة بناءً على الاستعلام.
إعادة الترتيب: تقوم الـ LLM بتقييم هذه الخيارات وإعادة ترتيبها بناءً على مدى الصلة والجودة. هذه الخطوة تضمن عرض المعلومات الأكثر صلة وجودة أولًا.
التقييم: تعطي الـ LLM درجات لكل خيار تعكس مدى صلته وجودته. هذا يساعد في اختيار أفضل استجابة أو مستند للمستخدم.
باستخدام نماذج اللغة الكبيرة لإعادة الترتيب والتقييم، يمكن للنظام تقديم معلومات أكثر دقة وذات صلة سياقية، مما يحسن تجربة المستخدم العامة.
إليك مثالًا على كيفية استخدام وكيل السفر لنموذج لغة كبير (LLM) لإعادة الترتيب والتقييم لوجهات السفر بناءً على تفضيلات المستخدم بلغة بايثون:
يريد وكيل السفر التوصية بأفضل وجهات السفر لعميل بناءً على تفضيلاته. ستساعد الـ LLM في إعادة ترتيب وتقييم الوجهات لضمان عرض أنسب الخيارات.
إليك كيف يمكنك تحديث المثال السابق لاستخدام خدمات Azure OpenAI:
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 للحصول على الوجهات المعاد ترتيبها والمُدرجة بالنقاط
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)
التهيئة: يتم تهيئة فئة TravelAgent مع قائمة وجهات سفر محتملة، كل وجهة تحتوي على سمات مثل الاسم والوصف.
الحصول على التوصيات (طريقة get_recommendations): تنشئ هذه الطريقة طلبًا لخدمة Azure OpenAI بناءً على تفضيلات المستخدم وتقوم بإرسال طلب HTTP من نوع POST إلى واجهة API الخاصة بـ Azure OpenAI للحصول على الوجهات المعاد ترتيبها والمقيّمة.
إنشاء الطلب (طريقة generate_prompt): تبني هذه الطريقة طلبًا لـ Azure OpenAI، يشمل تفضيلات المستخدم وقائمة الوجهات، مع توجيه النموذج لإعادة ترتيب وتقييم الوجهات استنادًا إلى هذه التفضيلات.
استدعاء API: يتم استخدام مكتبة requests لإرسال طلب HTTP من نوع POST إلى نقطة نهاية Azure OpenAI. يحتوي الرد على الوجهات المعاد ترتيبها والمقيّمة.
مثال على الاستخدام: يجمع وكيل السفر تفضيلات المستخدم (مثل الاهتمام بالمعالم السياحية والثقافة المتنوعة) ويستخدم خدمة Azure OpenAI للحصول على توصيات وجهات السفر المعاد ترتيبها والمقيّمة.
تأكد من استبدال your_azure_openai_api_key بمفتاح API الحقيقي الخاص بك في Azure OpenAI وhttps://your-endpoint.com/... بعنوان نقطة النهاية الفعلية لنشر Azure OpenAI الخاص بك.
باستخدام نموذج اللغة الكبير لإعادة الترتيب والتقييم، يمكن لوكيل السفر تقديم توصيات سفر أكثر تخصيصًا وذات صلة للعميل، مما يعزز تجربته الإجمالية.
الـ Retrieval-Augmented Generation (RAG) يمكن أن يكون كل من تقنية تهيئة وأداة في تطوير وكلاء الذكاء الاصطناعي. فهم الفرق بين الاثنين يمكن أن يساعدك على استغلال RAG بشكل أكثر فعالية في مشاريعك.
ما هي؟
كيف تعمل؟
مثال في وكيل السفر:
ما هي؟
كيف تعمل؟
مثال في وكيل السفر:
| الجانب | تقنية التهيئة | الأداة |
|---|---|---|
| يدوي مقابل تلقائي | صياغة يدوية للطلبات لكل استعلام. | عملية مؤتمتة للاسترجاع والتوليد. |
| التحكم | توفر تحكمًا أكبر في عملية الاسترجاع. | تبسط وأتمتة عملية الاسترجاع والتوليد. |
| المرونة | تسمح بطلبات مخصصة بناءً على الاحتياجات المحددة. | أكثر كفاءة للتطبيقات واسعة النطاق. |
| التعقيد | تتطلب صياغة وتعديل الطلبات. | أسهل للتكامل داخل هيكل وكيل ذكاء اصطناعي. |
مثال تقنية التهيئة:
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)
تقييم الصلة هو جانب أساسي من أداء وكيل الذكاء الاصطناعي. فهو يضمن أن المعلومات المسترجعة والمولدة من قبل الوكيل مناسبة ودقيقة ومفيدة للمستخدم. دعونا نستكشف كيفية تقييم الصلة في وكلاء الذكاء الاصطناعي، بما في ذلك أمثلة عملية وتقنيات.
مثال:
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] # إرجاع أفضل 10 عناصر ذات صلة
مثال:
def process_query(query):
# استخدم معالجة اللغة الطبيعية لاستخراج المعلومات الرئيسية من استعلام المستخدم
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
إليك مثالًا عمليًا لكيفية تقييم وكيل السفر لصلّة توصيات السفر:
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)
البحث مع النية ينطوي على فهم وتفسير الهدف أو الغرض الكامن وراء استعلام المستخدم لاسترجاع وتوليد أكثر المعلومات صلة وفائدة. هذا المنهج يتجاوز مجرد مطابقة الكلمات المفتاحية ويركز على فهم الاحتياجات الحقيقية وسياق المستخدم.
لنأخذ وكيل السفر كمثال لنرى كيف يمكن تطبيق البحث مع النية.
جمع تفضيلات المستخدم
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)
تستخدم وكلاء توليد الكود نماذج الذكاء الاصطناعي لكتابة وتنفيذ الكود، مما يحل المشكلات المعقدة ويؤتمت المهام.
تستخدم وكلاء توليد الكود نماذج الذكاء الاصطناعي التوليدي لكتابة وتنفيذ الكود. يمكن لهؤلاء الوكلاء حل المشكلات المعقدة، وأتمتة المهام، وتوفير رؤى قيمة من خلال إنشاء وتشغيل الكود بلغات برمجة مختلفة.
تخيل أنك تصمم وكيل توليد كود. إليك كيف قد يعمل:
في هذا المثال، سنصمم وكيل توليد كود، وكيل السفر، لمساعدة المستخدمين في تخطيط رحلاتهم عن طريق توليد وتنفيذ كود. يمكن لهذا الوكيل التعامل مع مهام مثل جلب خيارات السفر، تصفية النتائج، وتجميع خطة الرحلة باستخدام الذكاء الاصطناعي التوليدي.
جمع تفضيلات المستخدم
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)
يمكن أن يحسن فهم مخطط الجدول عملية إنشاء الاستعلامات من خلال الاستفادة من الوعي البيئي والتفكير المنطقي.
إليك مثالًا على كيفية القيام بذلك:
إليك مثالًا محدّثًا على كود بايثون يدمج هذه المفاهيم:
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 method): تعدل هذه الطريقة التفضيلات بناءً على ملاحظات المستخدم والمخطط.adjust_based_on_environment method): تخصص هذه الطريقة التعديلات استنادًا إلى المخطط والملاحظات.من خلال جعل النظام واعيًا بالبيئة ومنطقيًا استنادًا إلى المخطط، يمكنه إنشاء استعلامات أدق وأكثر ملاءمة، مما يؤدي إلى توصيات سفر أفضل وتجربة مستخدم أكثر تخصيصًا.
تعد لغة SQL (لغة الاستعلام الهيكلية) أداة قوية للتفاعل مع قواعد البيانات. عند استخدامها كجزء من نهج توليد مدعوم بالاسترجاع (RAG)، يمكن لـ SQL استرجاع بيانات ذات صلة من قواعد البيانات لإعلام وإنشاء ردود أو إجراءات في وكلاء الذكاء الاصطناعي. دعونا نستكشف كيف يمكن استخدام 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 كجزء من تقنية توليد مدعوم بالاسترجاع (RAG)، يمكن لوكلاء الذكاء الاصطناعي مثل وكيل السفر استرجاع البيانات ذات الصلة واستخدامها ديناميكيًا لتقديم توصيات دقيقة وشخصية.
لكي نوضح تطبيقًا للتفكير الميتا معرفي، دعونا ننشئ وكيلًا بسيطًا ينعكس على عملية اتخاذ قراراته أثناء حل مشكلة. في هذا المثال، سنبني نظامًا حيث يحاول الوكيل تحسين اختيار الفندق، لكنه بعد ذلك يقيّم تفكيره الخاص ويعدل استراتيجيته عند ارتكابه لأخطاء أو اختيارات غير مثالية.
سنحاكي هذا باستخدام مثال أساسي حيث يختار الوكيل الفنادق بناءً على مزيج من السعر والجودة، لكنه “ينعكس” على قراراته ويعدل على ذلك وفقًا لذلك.
إليك مثالًا:
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']}")
النقطة الأساسية هنا هي قدرة الوكيل على:
هذا شكل بسيط من التفكير الميتا معرفي حيث يكون النظام قادرًا على تعديل عملية تفكيره بناءً على الملاحظات الداخلية.
التفكير الميتا معرفي هو أداة قوية يمكنها تعزيز قدرات وكلاء الذكاء الاصطناعي بشكل كبير. من خلال دمج العمليات الميتا معرفية، يمكنك تصميم وكلاء أكثر ذكاءً وقابلية للتكيف وكفاءة. استخدم الموارد الإضافية لاستكشاف عالم التفكير الميتا معرفي الرائع في وكلاء الذكاء الاصطناعي.
انضم إلى Microsoft Foundry Discord لتلتقي بمتعلمين آخرين، وتحضر ساعات المكتب، وتحصل على إجابات لأسئلتك حول وكلاء الذكاء الاصطناعي.
وكلاء الذكاء الاصطناعي في الإنتاج
تنبيه:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر المعتمد. للمعلومات الحساسة أو المهمة، يُنصح بالاستعانة بخدمات الترجمة البشرية المهنية. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.