(اضغط على الصورة أعلاه لمشاهدة فيديو الدرس)
التفكير فوق المعرفي في وكلاء الذكاء الاصطناعي
مرحبًا بكم في درس التفكير فوق المعرفي في وكلاء الذكاء الاصطناعي! هذا الفصل مصمم للمبتدئين الذين لديهم فضول حول كيفية تفكير وكلاء الذكاء الاصطناعي في عمليات التفكير الخاصة بهم. بنهاية هذا الدرس، ستفهم المفاهيم الأساسية وستكون مجهزًا بأمثلة عملية لتطبيق التفكير فوق المعرفي في تصميم وكلاء الذكاء الاصطناعي.
بعد إكمال هذا الدرس، ستكون قادرًا على:
يشير التفكير فوق المعرفي إلى العمليات المعرفية العليا التي تتضمن التفكير في التفكير الخاص بك. بالنسبة لوكلاء الذكاء الاصطناعي، يعني هذا القدرة على تقييم وتعديل أفعالهم بناءً على الوعي الذاتي والخبرات السابقة. التفكير فوق المعرفي، أو “التفكير في التفكير”، هو مفهوم مهم في تطوير أنظمة الذكاء الاصطناعي الوكيلية. يتضمن ذلك أن تكون الأنظمة مدركة لعملياتها الداخلية وقادرة على مراقبة وتنظيم وتكييف سلوكها وفقًا لذلك. تمامًا كما نفعل عندما نقرأ الموقف أو ننظر إلى مشكلة. يمكن لهذا الوعي الذاتي أن يساعد أنظمة الذكاء الاصطناعي على اتخاذ قرارات أفضل، وتحديد الأخطاء، وتحسين أدائها بمرور الوقت - مرة أخرى، يعود ذلك إلى اختبار تورينغ والنقاش حول ما إذا كان الذكاء الاصطناعي سيستولي على العالم.
في سياق أنظمة الذكاء الاصطناعي الوكيلية، يمكن أن يساعد التفكير فوق المعرفي في معالجة العديد من التحديات، مثل:
التفكير فوق المعرفي، أو “التفكير في التفكير”، هو عملية معرفية عليا تتضمن الوعي الذاتي والتنظيم الذاتي للعمليات المعرفية. في مجال الذكاء الاصطناعي، يمكّن التفكير فوق المعرفي الوكلاء من تقييم وتكييف استراتيجياتهم وأفعالهم، مما يؤدي إلى تحسين قدرات حل المشكلات واتخاذ القرارات. من خلال فهم التفكير فوق المعرفي، يمكنك تصميم وكلاء ذكاء اصطناعي ليسوا فقط أكثر ذكاءً ولكن أيضًا أكثر تكيفًا وكفاءة. في التفكير فوق المعرفي الحقيقي، سترى الذكاء الاصطناعي يفكر بشكل صريح في منطقه الخاص.
مثال: “لقد أعطيت الأولوية للرحلات الأرخص لأن… قد أكون قد أغفلت الرحلات المباشرة، لذا دعني أتحقق مرة أخرى.” متابعة كيفية أو سبب اختيار مسار معين.
يلعب التفكير فوق المعرفي دورًا حيويًا في تصميم وكلاء الذكاء الاصطناعي لعدة أسباب:
قبل الغوص في عمليات التفكير فوق المعرفي، من الضروري فهم المكونات الأساسية لوكيل الذكاء الاصطناعي. يتكون وكيل الذكاء الاصطناعي عادةً من:
تعمل هذه المكونات معًا لإنشاء “وحدة خبرة” يمكنها تنفيذ مهام محددة.
مثال: فكر في وكيل سفر، خدمات الوكيل التي لا تخطط فقط لعطلتك ولكن أيضًا تعدل مسارها بناءً على بيانات الوقت الفعلي وخبرات العملاء السابقة.
تخيل أنك تصمم خدمة وكيل سفر مدعومة بالذكاء الاصطناعي. يساعد هذا الوكيل، “وكيل السفر”، المستخدمين في تخطيط عطلاتهم. لتضمين التفكير فوق المعرفي، يحتاج وكيل السفر إلى تقييم وتعديل أفعاله بناءً على الوعي الذاتي والخبرات السابقة. إليك كيف يمكن أن يلعب التفكير فوق المعرفي دورًا:
المهمة الحالية هي مساعدة المستخدم في تخطيط رحلة إلى باريس.
يستخدم وكيل السفر التفكير فوق المعرفي لتقييم أدائه والتعلم من الخبرات السابقة. على سبيل المثال:
إليك مثال مبسط عن كيفية ظهور كود وكيل السفر عند تضمين التفكير فوق المعرفي:
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):
# Search for flights, hotels, and attractions based on preferences
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)
# Analyze feedback and adjust future recommendations
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
# Example usage
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)
# Example usage within a booing request
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)
إليك مثال مبسط لكود Python يتضمن نهج 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
# Example usage
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
new_itinerary = travel_agent.adjust_based_on_feedback(feedback)
print("Updated Itinerary:", new_itinerary)
يتضمن تحميل السياق بشكل استباقي إدخال معلومات الخلفية أو السياق ذات الصلة في النموذج قبل معالجة الاستفسار. هذا يعني أن النموذج لديه وصول إلى هذه المعلومات منذ البداية، مما يساعده على تقديم ردود أكثر دقة دون الحاجة إلى استرجاع بيانات إضافية أثناء العملية.
إليك مثال مبسط عن كيفية تحميل السياق بشكل استباقي لتطبيق وكيل السفر باستخدام Python:
class TravelAgent:
def __init__(self):
# Pre-load popular destinations and their information
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):
# Fetch destination information from pre-loaded context
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}."
# Example usage
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
بجلب المعلومات ذات الصلة من القاموس المحمل مسبقًا.
من خلال تحميل السياق مسبقًا، يمكن لتطبيق وكيل السفر الرد بسرعة على استفسارات المستخدم دون الحاجة إلى استرجاع هذه المعلومات من مصدر خارجي في الوقت الفعلي. هذا يجعل التطبيق أكثر كفاءة واستجابة.
بدء الخطة بهدف واضح يعني البدء بهدف أو نتيجة مستهدفة محددة مسبقًا. من خلال تحديد هذا الهدف مسبقًا، يمكن للنموذج استخدامه كمبدأ توجيهي طوال عملية التكرار. يساعد ذلك في ضمان أن كل تكرار يقترب من تحقيق النتيجة المرجوة، مما يجعل العملية أكثر كفاءة وتركيزًا.
إليك مثال عن كيفية بدء خطة سفر بهدف واضح قبل التكرار لوكيل السفر باستخدام 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']
# Example usage
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) لإعادة ترتيب وتقييم الوجهات السياحية بناءً على تفضيلات المستخدم باستخدام Python:
يريد وكيل السفر تقديم أفضل الوجهات السياحية لعميل بناءً على تفضيلاته. سيساعد النموذج اللغوي الكبير في إعادة ترتيب وتقييم الوجهات لضمان تقديم الخيارات الأكثر ملاءمة.
إليك كيفية تحديث المثال السابق لاستخدام خدمات Azure OpenAI:
import requests
import json
class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def get_recommendations(self, preferences, api_key, endpoint):
# Generate a prompt for the Azure OpenAI
prompt = self.generate_prompt(preferences)
# Define headers and payload for the request
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
}
payload = {
"prompt": prompt,
"max_tokens": 150,
"temperature": 0.7
}
# Call the Azure OpenAI API to get the re-ranked and scored destinations
response = requests.post(endpoint, headers=headers, json=payload)
response_data = response.json()
# Extract and return the recommendations
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
# Example usage
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 إلى واجهة برمجة التطبيقات للحصول على الوجهات المعاد ترتيبها والمُقيّمة.
إنشاء الموجه (طريقة generate_prompt
): تقوم هذه الطريقة ببناء موجه لـ Azure OpenAI، يتضمن تفضيلات المستخدم وقائمة الوجهات. يوجه الموجه النموذج لإعادة ترتيب وتقييم الوجهات بناءً على التفضيلات المقدمة.
استدعاء API: يتم استخدام مكتبة requests
لإرسال طلب HTTP POST إلى نقطة النهاية الخاصة بـ Azure OpenAI. يحتوي الرد على الوجهات المعاد ترتيبها والمُقيّمة.
مثال على الاستخدام: يجمع وكيل السفر تفضيلات المستخدم (مثل الاهتمام بمشاهدة المعالم السياحية والثقافة المتنوعة) ويستخدم خدمة Azure OpenAI للحصول على توصيات معاد ترتيبها ومُقيّمة للوجهات السياحية.
تأكد من استبدال your_azure_openai_api_key
بمفتاح API الخاص بك وhttps://your-endpoint.com/...
بعنوان نقطة النهاية الفعلي لنشر Azure OpenAI الخاص بك.
من خلال الاستفادة من النموذج اللغوي الكبير لإعادة الترتيب والتقييم، يمكن لوكيل السفر تقديم توصيات سفر أكثر تخصيصًا وملاءمة للعملاء، مما يعزز تجربتهم بشكل عام.
يمكن أن تكون تقنية الاسترجاع المعزز بالتوليد (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] # Return top 10 relevant items
مثال:
def process_query(query):
# Use NLP to extract key information from the user's 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] # Return top 10 relevant items
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
# Example usage
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):
# Combine current query with user history to understand context
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):
# Example search logic for informational intent
results = search_web(f"best {preferences['interests']} in {preferences['destination']}")
return results
def search_navigation(query):
# Example search logic for navigational intent
results = search_web(query)
return results
def search_transaction(query, preferences):
# Example search logic for transactional intent
results = search_web(f"book {query} to {preferences['destination']}")
return results
def personalize_results(results, user_history):
# Example personalization logic
personalized = [result for result in results if result not in user_history]
return personalized[:10] # Return top 10 personalized results
مثال على الاستخدام
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):
# Example: Generate code to search for flights based on user 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):
# Example: Generate code to search for hotels
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):
# Execute the generated code using 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):
# Adjust preferences based on user feedback
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)
# Regenerate and execute code with updated 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):
# Adjust preferences based on user feedback
if "liked" in feedback:
preferences["favorites"] = feedback["liked"]
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
# Reasoning based on schema to adjust other related preferences
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):
# Custom logic to adjust preferences based on schema and feedback
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):
# Generate code to fetch flight data based on updated preferences
return f"fetch_flights(preferences={preferences})"
def generate_code_to_fetch_hotels(preferences):
# Generate code to fetch hotel data based on updated preferences
return f"fetch_hotels(preferences={preferences})"
def execute_code(code):
# Simulate execution of code and return mock data
return {"data": f"Executed: {code}"}
def generate_itinerary(flights, hotels, attractions):
# Generate itinerary based on flights, hotels, and attractions
return {"flights": flights, "hotels": hotels, "attractions": attractions}
# Example schema
schema = {
"favorites": {"positive_adjustment": "increase", "negative_adjustment": "decrease", "default": "neutral"},
"avoid": {"positive_adjustment": "decrease", "negative_adjustment": "increase", "default": "neutral"}
}
# Example usage
preferences = {"favorites": "sightseeing", "avoid": "crowded places"}
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_preferences = adjust_based_on_feedback(feedback, preferences, schema)
# Regenerate and execute code with updated 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, 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 = [] # Stores the hotels chosen previously
self.corrected_choices = [] # Stores the corrected choices
self.recommendation_strategies = ['cheapest', 'highest_quality'] # Available strategies
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]
# Let's assume we have some user feedback that tells us whether the last choice was good or not
user_feedback = self.get_user_feedback(last_choice)
if user_feedback == "bad":
# Adjust strategy if the previous choice was unsatisfactory
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"
# Simulate a list of hotels (price and quality)
hotels = [
{'name': 'Budget Inn', 'price': 80, 'quality': 6},
{'name': 'Comfort Suites', 'price': 120, 'quality': 8},
{'name': 'Luxury Stay', 'price': 200, 'quality': 9}
]
# Create an agent
agent = HotelRecommendationAgent()
# Step 1: The agent recommends a hotel using the "cheapest" strategy
recommended_hotel = agent.recommend_hotel(hotels, 'cheapest')
print(f"Recommended hotel (cheapest): {recommended_hotel['name']}")
# Step 2: The agent reflects on the choice and adjusts strategy if necessary
reflection_result = agent.reflect_on_choice()
print(reflection_result)
# Step 3: The agent recommends again, this time using the adjusted strategy
adjusted_recommendation = agent.recommend_hotel(hotels, 'highest_quality')
print(f"Adjusted hotel recommendation (highest_quality): {adjusted_recommendation['name']}")
النقطة الرئيسية هنا هي قدرة الوكيل على:
هذا شكل بسيط من التفكير فوق المعرفي حيث يكون النظام قادرًا على تعديل عملية تفكيره بناءً على الملاحظات الداخلية.
التفكير فوق المعرفي هو أداة قوية يمكن أن تعزز بشكل كبير قدرات وكلاء الذكاء الاصطناعي. من خلال دمج عمليات التفكير فوق المعرفي، يمكنك تصميم وكلاء أكثر ذكاءً، تكيفًا، وكفاءة. استخدم الموارد الإضافية لاستكشاف عالم التفكير فوق المعرفي في وكلاء الذكاء الاصطناعي.
انضم إلى خادم Discord الخاص بـ Azure AI Foundry للتواصل مع متعلمين آخرين، حضور ساعات المكتب، والحصول على إجابات لأسئلتك حول وكلاء الذكاء الاصطناعي.
وكلاء الذكاء الاصطناعي في الإنتاج
إخلاء المسؤولية:
تمت ترجمة هذه الوثيقة باستخدام خدمة الترجمة الآلية Co-op Translator. على الرغم من أننا نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار الوثيقة الأصلية بلغتها الأصلية المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.