(اضغط على الصورة أعلاه لمشاهدة فيديو الدرس)
مرحبًا بكم في درس التفكير فوق المعرفي في وكلاء الذكاء الاصطناعي! هذا الفصل مصمم للمبتدئين الذين لديهم فضول حول كيفية تفكير وكلاء الذكاء الاصطناعي في عمليات التفكير الخاصة بهم. بنهاية هذا الدرس، ستفهم المفاهيم الأساسية وستكون مجهزًا بأمثلة عملية لتطبيق التفكير فوق المعرفي في تصميم وكلاء الذكاء الاصطناعي.
بعد إكمال هذا الدرس، ستكون قادرًا على:
- فهم تأثير الحلقات المنطقية في تعريفات الوكلاء.
- استخدام تقنيات التخطيط والتقييم لمساعدة الوكلاء على تصحيح أنفسهم.
- إنشاء وكلاء قادرين على تعديل الكود لإنجاز المهام.
يشير التفكير فوق المعرفي إلى العمليات المعرفية العليا التي تتضمن التفكير في التفكير الخاص بك. بالنسبة لوكلاء الذكاء الاصطناعي، يعني هذا القدرة على تقييم وتعديل أفعالهم بناءً على الوعي الذاتي والخبرات السابقة. التفكير فوق المعرفي، أو "التفكير في التفكير"، هو مفهوم مهم في تطوير أنظمة الذكاء الاصطناعي الوكيلية. يتضمن ذلك أن تكون الأنظمة مدركة لعملياتها الداخلية وقادرة على مراقبة وتنظيم وتكييف سلوكها وفقًا لذلك. تمامًا كما نفعل عندما نقرأ الموقف أو ننظر إلى مشكلة. يمكن لهذا الوعي الذاتي أن يساعد أنظمة الذكاء الاصطناعي على اتخاذ قرارات أفضل، وتحديد الأخطاء، وتحسين أدائها بمرور الوقت - مرة أخرى، يعود ذلك إلى اختبار تورينغ والنقاش حول ما إذا كان الذكاء الاصطناعي سيستولي على العالم.
في سياق أنظمة الذكاء الاصطناعي الوكيلية، يمكن أن يساعد التفكير فوق المعرفي في معالجة العديد من التحديات، مثل:
- الشفافية: ضمان أن تكون أنظمة الذكاء الاصطناعي قادرة على شرح منطقها وقراراتها.
- التفكير: تعزيز قدرة أنظمة الذكاء الاصطناعي على تحليل المعلومات واتخاذ قرارات سليمة.
- التكيف: السماح لأنظمة الذكاء الاصطناعي بالتكيف مع بيئات جديدة وظروف متغيرة.
- الإدراك: تحسين دقة أنظمة الذكاء الاصطناعي في التعرف على البيانات وتفسيرها من بيئتها.
التفكير فوق المعرفي، أو "التفكير في التفكير"، هو عملية معرفية عليا تتضمن الوعي الذاتي والتنظيم الذاتي للعمليات المعرفية. في مجال الذكاء الاصطناعي، يمكّن التفكير فوق المعرفي الوكلاء من تقييم وتكييف استراتيجياتهم وأفعالهم، مما يؤدي إلى تحسين قدرات حل المشكلات واتخاذ القرارات. من خلال فهم التفكير فوق المعرفي، يمكنك تصميم وكلاء ذكاء اصطناعي ليسوا فقط أكثر ذكاءً ولكن أيضًا أكثر تكيفًا وكفاءة. في التفكير فوق المعرفي الحقيقي، سترى الذكاء الاصطناعي يفكر بشكل صريح في منطقه الخاص.
مثال: "لقد أعطيت الأولوية للرحلات الأرخص لأن... قد أكون قد أغفلت الرحلات المباشرة، لذا دعني أتحقق مرة أخرى." متابعة كيفية أو سبب اختيار مسار معين.
- ملاحظة أنه ارتكب أخطاء لأنه اعتمد بشكل مفرط على تفضيلات المستخدم من المرة السابقة، لذا يقوم بتعديل استراتيجيته في اتخاذ القرار وليس فقط التوصية النهائية.
- تشخيص أنماط مثل، "كلما رأيت المستخدم يذكر 'مزدحم جدًا'، يجب أن لا أزيل فقط بعض الأماكن ولكن أيضًا أعيد التفكير في طريقتي في اختيار 'أفضل الأماكن' إذا كنت دائمًا أصنفها حسب الشعبية."
يلعب التفكير فوق المعرفي دورًا حيويًا في تصميم وكلاء الذكاء الاصطناعي لعدة أسباب:
- التفكير الذاتي: يمكن للوكلاء تقييم أدائهم وتحديد المجالات التي تحتاج إلى تحسين.
- التكيف: يمكن للوكلاء تعديل استراتيجياتهم بناءً على الخبرات السابقة والبيئات المتغيرة.
- تصحيح الأخطاء: يمكن للوكلاء اكتشاف وتصحيح الأخطاء بشكل مستقل، مما يؤدي إلى نتائج أكثر دقة.
- إدارة الموارد: يمكن للوكلاء تحسين استخدام الموارد، مثل الوقت وقوة الحوسبة، من خلال التخطيط وتقييم أفعالهم.
قبل الغوص في عمليات التفكير فوق المعرفي، من الضروري فهم المكونات الأساسية لوكيل الذكاء الاصطناعي. يتكون وكيل الذكاء الاصطناعي عادةً من:
- الشخصية: شخصية وخصائص الوكيل، التي تحدد كيفية تفاعله مع المستخدمين.
- الأدوات: القدرات والوظائف التي يمكن للوكيل تنفيذها.
- المهارات: المعرفة والخبرة التي يمتلكها الوكيل.
تعمل هذه المكونات معًا لإنشاء "وحدة خبرة" يمكنها تنفيذ مهام محددة.
مثال: فكر في وكيل سفر، خدمات الوكيل التي لا تخطط فقط لعطلتك ولكن أيضًا تعدل مسارها بناءً على بيانات الوقت الفعلي وخبرات العملاء السابقة.
تخيل أنك تصمم خدمة وكيل سفر مدعومة بالذكاء الاصطناعي. يساعد هذا الوكيل، "وكيل السفر"، المستخدمين في تخطيط عطلاتهم. لتضمين التفكير فوق المعرفي، يحتاج وكيل السفر إلى تقييم وتعديل أفعاله بناءً على الوعي الذاتي والخبرات السابقة. إليك كيف يمكن أن يلعب التفكير فوق المعرفي دورًا:
المهمة الحالية هي مساعدة المستخدم في تخطيط رحلة إلى باريس.
- جمع تفضيلات المستخدم: اسأل المستخدم عن تواريخ السفر، الميزانية، الاهتمامات (مثل المتاحف، المأكولات، التسوق)، وأي متطلبات محددة.
- استرجاع المعلومات: ابحث عن خيارات الرحلات الجوية، أماكن الإقامة، الأماكن السياحية، والمطاعم التي تتوافق مع تفضيلات المستخدم.
- إنشاء توصيات: قدم جدولًا شخصيًا يتضمن تفاصيل الرحلات الجوية، حجوزات الفنادق، والأنشطة المقترحة.
- التعديل بناءً على الملاحظات: اطلب من المستخدم ملاحظات حول التوصيات وقم بإجراء التعديلات اللازمة.
- الوصول إلى قواعد بيانات حجز الرحلات الجوية والفنادق.
- معلومات عن الأماكن السياحية والمطاعم في باريس.
- بيانات ملاحظات المستخدم من التفاعلات السابقة.
يستخدم وكيل السفر التفكير فوق المعرفي لتقييم أدائه والتعلم من الخبرات السابقة. على سبيل المثال:
- تحليل ملاحظات المستخدم: يقوم وكيل السفر بمراجعة ملاحظات المستخدم لتحديد التوصيات التي لاقت استحسانًا والتي لم تلقَ استحسانًا. ويعدل اقتراحاته المستقبلية وفقًا لذلك.
- التكيف: إذا ذكر المستخدم سابقًا عدم إعجابه بالأماكن المزدحمة، سيتجنب وكيل السفر التوصية بالأماكن السياحية الشهيرة خلال ساعات الذروة في المستقبل.
- تصحيح الأخطاء: إذا ارتكب وكيل السفر خطأً في حجز سابق، مثل اقتراح فندق كان محجوزًا بالكامل، فإنه يتعلم التحقق من التوافر بشكل أكثر دقة قبل تقديم التوصيات.
إليك مثال مبسط عن كيفية ظهور كود وكيل السفر عند تضمين التفكير فوق المعرفي:
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)"] }
-
-
عملية RAG التصحيحي
-
تقنية التوجيه: يصيغ وكيل السفر استفسارات بحث جديدة بناءً على ملاحظات المستخدم.
-
مثال:
if "disliked" in feedback: preferences["avoid"] = feedback["disliked"]
-
-
الأداة: يستخدم وكيل السفر خوارزميات لترتيب وتصفية نتائج البحث الجديدة، مع التركيز على الملاءمة بناءً على ملاحظات المستخدم.
-
مثال:
new_attractions = search_attractions(preferences) new_itinerary = create_itinerary(flights, hotels, new_attractions) print("Updated Itinerary:", new_itinerary)
-
-
التقييم: يقيم وكيل السفر باستمرار مدى ملاءمة ودقة توصياته من خلال تحليل ملاحظات المستخدم وإجراء التعديلات اللازمة.
-
مثال:
def adjust_preferences(preferences, feedback): if "liked" in feedback: preferences["favorites"] = feedback["liked"] if "disliked" in feedback: preferences["avoid"] = feedback["disliked"] return preferences preferences = adjust_preferences(preferences, feedback)
-
-
إليك مثال مبسط لكود 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): تحسب هذه الطريقة التكلفة الإجمالية للخطة الحالية، بما في ذلك الوجهة الجديدة المحتملة.
- الخطة الأولية: يقوم وكيل السفر بإنشاء خطة أولية بناءً على تفضيلات العميل لمشاهدة المعالم السياحية وميزانية قدرها 2000 دولار.
- الخطة المحسنة: يقوم وكيل السفر بتكرار الخطة، مع تحسينها لتتناسب مع تفضيلات العميل وميزانيته.
من خلال بدء الخطة بهدف واضح (مثل زيادة رضا العميل) والتكرار لتحسين الخطة، يمكن لوكيل السفر إنشاء جدول سفر مخصص ومحسن للعميل. يضمن هذا النهج أن تتماشى خطة السفر مع تفضيلات العميل وميزانيته منذ البداية وتتحسن مع كل تكرار.
يمكن استخدام النماذج اللغوية الكبيرة (LLMs) لإعادة الترتيب والتقييم من خلال تقييم مدى ملاءمة وجودة المستندات المسترجعة أو الردود المُنشأة. إليك كيفية عمل ذلك:
الاسترجاع: الخطوة الأولية للاسترجاع تجلب مجموعة من المستندات أو الردود المرشحة بناءً على الاستفسار.
إعادة الترتيب: يقوم النموذج اللغوي الكبير بتقييم هذه المرشحين وإعادة ترتيبهم بناءً على مدى ملاءمتهم وجودتهم. تضمن هذه الخطوة تقديم المعلومات الأكثر ملاءمة وجودة أولاً.
التقييم: يقوم النموذج اللغوي الكبير بتعيين درجات لكل مرشح، تعكس مدى ملاءمته وجودته. يساعد ذلك في اختيار أفضل رد أو مستند للمستخدم.
من خلال الاستفادة من النماذج اللغوية الكبيرة لإعادة الترتيب والتقييم، يمكن للنظام تقديم معلومات أكثر دقة وملاءمة للسياق، مما يحسن تجربة المستخدم بشكل عام.
إليك مثال عن كيفية استخدام وكيل السفر لنموذج لغوي كبير (LLM) لإعادة ترتيب وتقييم الوجهات السياحية بناءً على تفضيلات المستخدم باستخدام Python:
يريد وكيل السفر تقديم أفضل الوجهات السياحية لعميل بناءً على تفضيلاته. سيساعد النموذج اللغوي الكبير في إعادة ترتيب وتقييم الوجهات لضمان تقديم الخيارات الأكثر ملاءمة.
- جمع تفضيلات المستخدم.
- استرجاع قائمة الوجهات السياحية المحتملة.
- استخدام النموذج اللغوي الكبير لإعادة ترتيب وتقييم الوجهات بناءً على تفضيلات المستخدم.
إليك كيفية تحديث المثال السابق لاستخدام خدمات Azure OpenAI:
- تحتاج إلى اشتراك Azure.
- إنشاء مورد Azure OpenAI والحصول على مفتاح API الخاص بك.
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 بشكل أكثر فعالية في مشاريعك.
ما هي؟
- كتقنية توجيه، تتضمن RAG صياغة استفسارات أو موجهات محددة لتوجيه استرجاع المعلومات ذات الصلة من مجموعة كبيرة أو قاعدة بيانات. يتم استخدام هذه المعلومات بعد ذلك لتوليد الردود أو الإجراءات.
كيف تعمل:
- صياغة الموجهات: إنشاء موجهات أو استفسارات منظمة جيدًا بناءً على المهمة أو مدخلات المستخدم.
- استرجاع المعلومات: استخدام الموجهات للبحث عن البيانات ذات الصلة من قاعدة معرفة أو مجموعة بيانات موجودة مسبقًا.
- توليد الرد: دمج المعلومات المسترجعة مع نماذج الذكاء الاصطناعي التوليدية لإنتاج رد شامل ومتسق.
مثال في وكيل السفر:
- مدخلات المستخدم: "أريد زيارة المتاحف في باريس."
- الموجه: "ابحث عن أفضل المتاحف في باريس."
- المعلومات المسترجعة: تفاصيل عن متحف اللوفر، متحف أورسيه، إلخ.
- الرد المُنشأ: "إليك بعض أفضل المتاحف في باريس: متحف اللوفر، متحف أورسيه، ومركز بومبيدو."
ما هي؟
- كأداة، تعد RAG نظامًا متكاملًا يقوم بأتمتة عملية الاسترجاع والتوليد، مما يجعل من السهل على المطورين تنفيذ وظائف الذكاء الاصطناعي المعقدة دون صياغة موجهات يدويًا لكل استفسار.
كيف تعمل:
- التكامل: تضمين 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
-
-
معالجة اللغة الطبيعية (NLP):
-
استخدام تقنيات NLP لفهم استفسار المستخدم واسترجاع المعلومات ذات الصلة.
-
مثال:
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)البحث مع النية يتضمن فهم وتفسير الهدف أو الغرض الأساسي وراء استفسار المستخدم لاسترجاع وتوليد المعلومات الأكثر ملاءمة وفائدة. يتجاوز هذا النهج مجرد مطابقة الكلمات الرئيسية ويركز على فهم احتياجات المستخدم الفعلية وسياقه.
-
فهم نية المستخدم:
- يمكن تصنيف نية المستخدم إلى ثلاثة أنواع رئيسية: معلوماتية، ملاحية، ومعاملاتية.
- النية المعلوماتية: يسعى المستخدم للحصول على معلومات حول موضوع معين (مثل "ما هي أفضل المتاحف في باريس؟").
- النية الملاحية: يريد المستخدم الانتقال إلى موقع أو صفحة معينة (مثل "الموقع الرسمي لمتحف اللوفر").
- النية المعاملاتية: يهدف المستخدم إلى إجراء معاملة، مثل حجز رحلة أو إجراء عملية شراء (مثل "احجز رحلة إلى باريس").
- يمكن تصنيف نية المستخدم إلى ثلاثة أنواع رئيسية: معلوماتية، ملاحية، ومعاملاتية.
-
الوعي بالسياق:
- يساعد تحليل سياق استفسار المستخدم في تحديد نيته بدقة. يشمل ذلك النظر في التفاعلات السابقة، تفضيلات المستخدم، والتفاصيل المحددة للاستفسار الحالي.
-
معالجة اللغة الطبيعية (NLP):
- تُستخدم تقنيات NLP لفهم وتفسير استفسارات اللغة الطبيعية المقدمة من المستخدمين. يشمل ذلك مهام مثل التعرف على الكيانات، تحليل المشاعر، وتفسير الاستفسارات.
-
التخصيص:
- يؤدي تخصيص نتائج البحث بناءً على تاريخ المستخدم، تفضيلاته، وتغذيته الراجعة إلى تحسين ملاءمة المعلومات المسترجعة.
لنأخذ وكيل السفر كمثال لنرى كيف يمكن تنفيذ البحث بنية واضحة.
-
جمع تفضيلات المستخدم
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)
تستخدم الوكلاء المولدة للكود نماذج الذكاء الاصطناعي لكتابة وتنفيذ الكود، مما يساعد في حل المشكلات المعقدة وأتمتة المهام.
تستخدم وكلاء توليد الكود نماذج ذكاء اصطناعي توليدية لكتابة وتنفيذ الكود. يمكن لهذه الوكلاء حل المشكلات المعقدة، أتمتة المهام، وتقديم رؤى قيمة من خلال توليد وتشغيل الكود بلغات برمجة مختلفة.
- توليد الكود تلقائيًا: إنشاء مقتطفات كود لمهام محددة مثل تحليل البيانات، استخراج البيانات من الويب، أو تعلم الآلة.
- SQL كأداة RAG: استخدام استعلامات SQL لاسترجاع البيانات ومعالجتها من قواعد البيانات.
- حل المشكلات: إنشاء وتنفيذ الكود لحل مشكلات محددة، مثل تحسين الخوارزميات أو تحليل البيانات.
تخيل أنك تصمم وكيلًا لتوليد الكود. إليك كيف يمكن أن يعمل:
- المهمة: تحليل مجموعة بيانات لتحديد الاتجاهات والأنماط.
- الخطوات:
- تحميل مجموعة البيانات في أداة تحليل البيانات.
- توليد استعلامات SQL لتصفية وتجميع البيانات.
- تنفيذ الاستعلامات واسترجاع النتائج.
- استخدام النتائج لتوليد تصورات ورؤى.
- الموارد المطلوبة: الوصول إلى مجموعة البيانات، أدوات تحليل البيانات، وقدرات SQL.
- الخبرة: استخدام نتائج التحليل السابقة لتحسين دقة وملاءمة التحليلات المستقبلية.
في هذا المثال، سنصمم وكيل توليد الكود، وكيل السفر، لمساعدة المستخدمين في تخطيط رحلاتهم من خلال توليد وتنفيذ الكود. يمكن لهذا الوكيل التعامل مع مهام مثل جلب خيارات السفر، تصفية النتائج، وتجميع خط سير باستخدام الذكاء الاصطناعي التوليدي.
- جمع تفضيلات المستخدم: يجمع مدخلات المستخدم مثل الوجهة، تواريخ السفر، الميزانية، والاهتمامات.
- توليد الكود لجلب البيانات: ينشئ مقتطفات كود لاسترجاع بيانات عن الرحلات الجوية، الفنادق، والمعالم السياحية.
- تنفيذ الكود المولد: يشغل الكود المولد لجلب معلومات في الوقت الفعلي.
- توليد خط سير الرحلة: يجمع البيانات المسترجعة في خطة سفر مخصصة.
- التعديل بناءً على الملاحظات: يتلقى ملاحظات المستخدم ويعيد توليد الكود إذا لزم الأمر لتحسين النتائج.
-
جمع تفضيلات المستخدم
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 في سياق وكيل السفر.
-
التفاعل مع قاعدة البيانات:
- تُستخدم SQL لاستعلام قواعد البيانات، استرجاع المعلومات ذات الصلة، ومعالجة البيانات.
- مثال: جلب تفاصيل الرحلات الجوية، معلومات الفنادق، والمعالم السياحية من قاعدة بيانات السفر.
-
التكامل مع RAG:
- يتم توليد استعلامات SQL بناءً على مدخلات وتفضيلات المستخدم.
- تُستخدم البيانات المسترجعة لتوليد توصيات أو إجراءات مخصصة.
-
توليد الاستعلامات الديناميكية:
- يولد وكيل الذكاء الاصطناعي استعلامات SQL ديناميكية بناءً على السياق واحتياجات المستخدم.
- مثال: تخصيص استعلامات SQL لتصفية النتائج بناءً على الميزانية، التواريخ، والاهتمامات.
- توليد الكود تلقائيًا: إنشاء مقتطفات كود لمهام محددة.
- SQL كأداة RAG: استخدام استعلامات SQL لمعالجة البيانات.
- حل المشكلات: إنشاء وتنفيذ الكود لحل المشكلات.
مثال: وكيل تحليل البيانات:
- المهمة: تحليل مجموعة بيانات للعثور على الاتجاهات.
- الخطوات:
- تحميل مجموعة البيانات.
- توليد استعلامات SQL لتصفية البيانات.
- تنفيذ الاستعلامات واسترجاع النتائج.
- توليد تصورات ورؤى.
- الموارد: الوصول إلى مجموعة البيانات، قدرات SQL.
- الخبرة: استخدام النتائج السابقة لتحسين التحليلات المستقبلية.
-
جمع تفضيلات المستخدم
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. على الرغم من أننا نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار الوثيقة الأصلية بلغتها الأصلية المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.

