إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يوضح لك هذا الدرس كيفية بناء وكيل ذكاء الذكاء الاصطناعي المستقل الذي يعالج استفسارات المسافرين وحجوزاتهم لخط الرحلات البحرية. يستخدم وكيل الذكاء الاصطناعي إطار عمل LangChain Agent للتخطيط، واستخدام الأدوات، والإدراك. ثم يجمع الوكيل هذه الميزات مع قاعدة بيانات متجهات وقدرات تخزين المستندات في Azure DocumentDB لنظام ذاكرة موحد.
يعمل وكيل النموذج داخل واجهة خلفية Python FastAPI ويدعم تفاعلات المستخدمين من خلال واجهة مستخدم React JavaScript. يظهر هذا التطبيق كيف يتقدم وكلاء الذكاء الاصطناعي إلى ما هو أبعد من روبوتات الدردشة الأساسية لتنفيذ مهام معقدة تعتمد على اللغة الطبيعية التي تتطلب تقليديا منطقا مشفرا.
في هذا البرنامج التعليمي، تتعلم كيفية:
- قم بإعداد Azure DocumentDB مع قدرات البحث المتجه
- تحميل مستندات السفر وإنشاء تضمينات متجهية
- بناء وكيل الذكاء الاصطناعي باستخدام Python FastAPI وLangChain
- تطبيق أدوات الوكلاء للبحث عن الإجازات، والبحث في جدول الرحلات، والحجز
- إنشاء واجهة ويب من React لتفاعلات المستخدمين
- اختبر الحل الكامل لعامل الذكاء الاصطناعي
Prerequisites
اشتراك Azure
- إذا لم يكن لديك اشتراك Azure، فقم بإنشاء حساب مجاني
مجموعة Azure DocumentDB موجودة
- إذا لم يكن لديك عنقود، أنشئ عنقود جديد
حساب لواجهة برمجة تطبيقات OpenAI أو خدمة Azure OpenAI.
بيئة تطوير متكاملة، مثل Visual Studio Code.
بايثون 3.11.4 أو أحدثها مثبتة في بيئة التطوير.
Node.js مثبتا لواجهة React.
حمل نموذج المشروع
جميع مجموعات بيانات الكود والعينات متوفرة في مستودع Travel الذكاء الاصطناعي على GitHub.
قم باستنساخ أو تحميل المستودع (https://github.com/jonathanscholtes/Travel-AI-Agent-React-FastAPI-and-Cosmos-DB-Vector-Store) إلى بيئة التطوير المحلية لديك.
انتقل إلى دليل المشروع واستكشف الهيكل:
/loader: يحتوي على كود بايثون لتحميل نماذج المستندات وتضمينات المتجهات في Azure DocumentDB/api: يحتوي على مشروع Python FastAPI لاستضافة وكيل السفر الذكاء الاصطناعي/web: يحتوي على كود لواجهة الويب React
تحميل وثائق السفر في Azure DocumentDB
يحتوي الدليل /loader على مشروع بايثون لتحميل نماذج مستندات السفر إلى Azure DocumentDB وإنشاء التضمينات المتجهية اللازمة.
انتقل إلى الدليل
/loaderفي جهازك الطرفي.أنشئ بيئة افتراضية بلغة بايثون:
python -m venv venvتفعيل البيئة الافتراضية:
# On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateتثبيت التبعيات المطلوبة:
python -m pip install -r requirements.txtأنشئ
.envملفا في الدليل/loaderيحتوي على تفاصيل الاتصال الخاصة بك:OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"يعمل الملف
main.pyكنقطة إدخال مركزية لتحميل البيانات. يعالج بيانات السفر النموذجية بما في ذلك معلومات السفن والوجهة، ثم ينشئ حزم مسار الرحلات.شغل سكريبت تحميل البيانات من المجلد
/loader. يقوم السكربت بتنفيذ هذه العمليات:يقرأ بيانات السفينة والوجهة من ملفات JSON
ينشئ خمسة حزم مسار رحلة باستخدام
ItineraryBuilderتحفظ حزم المسار إلى
itineraryالمجموعةيحفظ الوجهات إلى
destinationsالمجموعةينشئ تضمينات متجهية للسفن في
shipsالمجموعةيضيف فهرس بحث نصي لأسماء السفن
python main.pyتحقق من أن الناتج يظهر الإكمال الناجح:
--build itinerary-- --load itinerary-- --load destinations-- --load vectors ships--
بناء واجهة برمجة تطبيقات وكلاء السفر الذكاء الاصطناعي
يتم استضافة وكيل السفر الذكاء الاصطناعي من خلال واجهة Python FastAPI التي تتكامل مع واجهة الواجهة الأمامية وتعالج طلبات الوكلاء عن طريق تأريض طلبات نموذج اللغة الكبيرة (LLM) مقابل بيانات Azure DocumentDB.
انتقل إلى الدليل
/apiفي جهازك الطرفي.إنشاء وتفعيل بيئة افتراضية بلغة بايثون:
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateتثبيت التبعيات المطلوبة:
python -m pip install -r requirements.txtأنشئ
.envملفا في/apiالدليل:OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"شغل تطبيق FastAPI من الدليل
/api:python app.pyيبدأ الخادم بشكل
http://127.0.0.1:8000افتراضي.استكشف نقاط نهاية واجهة برمجة التطبيقات من خلال الوصول إلى وثائق Swagger التفاعلية على
http://127.0.0.1:8000/docs.
اختبر وظيفة وكيل الذكاء الاصطناعي
اختبر أن الوكيل الذكاء الاصطناعي يعمل كما هو متوقع.
في واجهة Swagger، اختبر نقطة نهاية الجلسة:
انتقل إلى
/session/واختر تجربةنفذ الطلب للحصول على معرف جلسة لتتبع تاريخ المحادثات
اختبر وظيفة دردشة الوكيل:
انتقل إلى
/agent/agent_chatواختر تجربةاستخدم هذا الإدخال المثال لاختبار الوكيل:
{ "input": "I want to take a relaxing vacation.", "session_id": "your-session-id-from-step-1" }يجب على الوكيل الرد بتوصيات كروز مبنية على البحث عن تشابه المتجهات، موضحا التكامل بين نموذج اللغة الكبيرة وAzure DocumentDB.
إنشاء واجهة الويب الخاصة ب React
توفر واجهة الويب طريقة سهلة الاستخدام للتفاعل مع وكيل السفر الذكاء الاصطناعي من خلال واجهة محادثة.
إعداد بيئة React
اذهب إلى الدليل
/webفي طرفيتك.تثبيت تبعيات المشاريع:
npm ciأنشئ
.envملفا في/webالدليل:REACT_APP_API_HOST=http://127.0.0.1:8000
تشغيل تطبيق الويب
ابدأ خادم تطوير React:
npm startيفتح التطبيق تلقائيا في متصفحك الافتراضي، عادة عند
http://localhost:3000.تظهر واجهة المستخدم موقع سفر يحتوي على صور لسفينة الرحلات البحرية والوجهة.
اختبر الحل الكامل
في الصفحة الرئيسية، اختر تخطيط رحلتك بسهولة لفتح واجهة دردشة مساعد السفر.
تفتح واجهة الدردشة بحوار مع رسالة جاهزة: "أريد أن آخذ إجازة هادئة."
اختر الإرسال لإرسال الرسالة إلى وكيل الذكاء الاصطناعي.
يرد الوكيل بتوصيات بحرية بناء على مداخلاتك، موضحا:
معالجه اللغة الطبيعية
البحث عن التشابه المتجه ضد Azure DocumentDB
ذاكرة المحادثة عبر الجلسة
ردود منسقة بتنسيق HTML في واجهة الدردشة
اطلع على كامل قدرات الوكيل من خلال متابعة المحادثة. اسأل عن سفن محددة، أو جداول رحلات، أو حجز الموعد.
فهم بنية وكلاء الذكاء الاصطناعي
يتبع تنفيذ الوكيل الذكاء الاصطناعي بنية طبقية تفصل المخاوف وتمكن من قابلية الصيانة.
مكونات طبقة الخدمة
تحتوي طبقة الخدمة على المنطق التجاري الأساسي وتنفيذ وكيل لانغتشين:
تهيئة الوكيل: تقوم الوحدة
init.pyبإعداد نموذج ChatOpenAI، وأدوات الوكلاء، وسجل المحادثات.أدوات الوكلاء: ثلاث أدوات رئيسية تتعامل مع البحث عن الإجازات، والبحث في جدول الرحلات، وحجز الرحلات البحرية.
إدارة الذاكرة: يتم تخزين سجل المحادثة في Azure DocumentDB باستخدام معرفات الجلسات.
وظائف أدوات الوكيل
يستخدم عامل الذكاء الاصطناعي ثلاث أدوات متخصصة.
vacation_lookup: يجري البحث المتجه على Azure DocumentDB للعثور على معلومات السفر ذات الصلة.
itinerary_lookup: يسترجع تفاصيل باقات الرحلات البحرية والجداول الزمنية للسفن المحددة.
book_cruise: تتولى حجوزات باقات الرحلات البحرية مع التحقق من معلومات الركاب.
تكامل طبقة البيانات
تتعامل طبقة البيانات مع جميع التفاعلات مع Azure DocumentDB.
البحث عبر المتجهات: البحث عن التشابه مع تقييم النقاط للحصول على توصيات للسفر.
تخزين المستندات: بيانات منظمة للسفن، الوجهات، والمسارات.
سجل المحادثة: تخزين رسائل الدردشة القائمة على الجلسة.
تنظيف الموارد
إذا لم تعد بحاجة إلى الموارد التي تم إنشاؤها في هذا الدرس، يمكنك تنظيفها لتجنب الرسوم المستمرة:
في بوابة Azure، انتقل إلى حساب Azure DocumentDB الخاص بك.
إذا أنشأت مجموعة موارد مخصصة لهذا الدرس، احذف مجموعة الموارد بالكامل.
وإلا، احذف المجموعات المحددة التي تم إنشاؤها:
travel.itinerarytravel.destinationstravel.shipstravel.history