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

قبل الغوص في العمليات الإدراكية الفوقية، من الضروري فهم المكونات الأساسية لوكيل الذكاء الاصطناعي. عادةً ما يتكون وكيل الذكاء الاصطناعي من:
تعمل هذه المكونات معًا لإنشاء “وحدة خبرة” يمكنها أداء مهام محددة.
مثال: اعتبر وكيل سفر، خدمات وكيل لا تخطط فقط لعطلتك ولكنها تعدل مسارها بناءً على البيانات الفورية وتجارب رحلة العملاء السابقة.
تخيل أنك تصمم خدمة وكيل سفر مدعومة بالذكاء الاصطناعي. هذا الوكيل، “وكيل السفر”، يساعد المستخدمين في تخطيط عطلاتهم. لدمج الإدراك الفوقي، يحتاج وكيل السفر إلى تقييم وتعديل أفعاله بناءً على الوعي الذاتي والتجارب السابقة. إليك كيف يمكن أن يلعب الإدراك الفوقي دورًا:
المهمة الحالية هي مساعدة مستخدم في تخطيط رحلة إلى باريس.
يستخدم وكيل السفر الإدراك الفوقي لتقييم أدائه والتعلم من التجارب السابقة. على سبيل المثال:
إليك مثال مبسط على كيفية ظهور كود وكيل السفر عند دمج الإدراك الفوقي:
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 بناءً على تفضيلات المستخدم وتجري طلب POST عبر HTTP إلى API الخاص بـ Azure OpenAI للحصول على وجهات معاد ترتيبها ومسجلة.
إنشاء المطالبة (طريقة generate_prompt): تُنشئ هذه الطريقة مطالبة لـ Azure OpenAI، بما في ذلك تفضيلات المستخدم وقائمة الوجهات. ترشد المطالبة النموذج لإعادة ترتيب وتسجيل الوجهات بناءً على التفضيلات المُقدمة.
استدعاء API: تُستخدم مكتبة requests لإجراء طلب POST HTTP إلى نقطة النهاية الخاصة بـ Azure OpenAI. يحتوي الرد على الوجهات المعاد ترتيبها والمسجلة.
مثال للاستخدام: يجمع وكيل السفر تفضيلات المستخدم (مثل الاهتمام بالمعالم الثقافية والسياحية) ويستخدم خدمة Azure OpenAI للحصول على توصيات معاد ترتيبها ومسجلة لوجهات السفر.
تأكد من استبدال your_azure_openai_api_key بمفتاح API الخاص بك لخدمة Azure OpenAI واستبدال https://your-endpoint.com/... بالرابط الفعلي لنقطة النهاية لنشر Azure OpenAI الخاص بك.
من خلال الاستفادة من LLM لإعادة الترتيب والتسجيل، يمكن لوكيل السفر تقديم توصيات سفر مخصصة وأكثر صلة للعملاء، مما يعزز تجربتهم بشكل عام.
التوليد المعزز بالاسترجاع (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)
يمكن أن يعزز فهم نظام لكيفية بناء الجدول عملية توليد الاستعلامات باستخدام الوعي البيئي والتفكير.
إليك مثال على كيفية القيام بذلك:
فيما يلي مثال محدث لشيفرة 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 (لغة الاستعلام البنيوية) هي أداة قوية للتفاعل مع قواعد البيانات. عند استخدامها كجزء من تقنية التوليد المعززة بالاسترجاع (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. بينما نسعى للدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي والمعتمد. للمعلومات الهامة، يُنصح بالاستعانة بترجمة بشرية محترفة. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.