مشاركة عبر


الدرس: بناء وكيل سفر الذكاء الاصطناعي باستخدام Azure DocumentDB وLangChain

يوضح لك هذا الدرس كيفية بناء وكيل ذكاء الذكاء الاصطناعي المستقل الذي يعالج استفسارات المسافرين وحجوزاتهم لخط الرحلات البحرية. يستخدم وكيل الذكاء الاصطناعي إطار عمل LangChain Agent للتخطيط، واستخدام الأدوات، والإدراك. ثم يجمع الوكيل هذه الميزات مع قاعدة بيانات متجهات وقدرات تخزين المستندات في Azure DocumentDB لنظام ذاكرة موحد.

يعمل وكيل النموذج داخل واجهة خلفية Python FastAPI ويدعم تفاعلات المستخدمين من خلال واجهة مستخدم React JavaScript. يظهر هذا التطبيق كيف يتقدم وكلاء الذكاء الاصطناعي إلى ما هو أبعد من روبوتات الدردشة الأساسية لتنفيذ مهام معقدة تعتمد على اللغة الطبيعية التي تتطلب تقليديا منطقا مشفرا.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • قم بإعداد Azure DocumentDB مع قدرات البحث المتجه
  • تحميل مستندات السفر وإنشاء تضمينات متجهية
  • بناء وكيل الذكاء الاصطناعي باستخدام Python FastAPI وLangChain
  • تطبيق أدوات الوكلاء للبحث عن الإجازات، والبحث في جدول الرحلات، والحجز
  • إنشاء واجهة ويب من React لتفاعلات المستخدمين
  • اختبر الحل الكامل لعامل الذكاء الاصطناعي

Prerequisites

  • اشتراك Azure

  • مجموعة Azure DocumentDB موجودة

  • حساب لواجهة برمجة تطبيقات OpenAI أو خدمة Azure OpenAI.

  • بيئة تطوير متكاملة، مثل Visual Studio Code.

  • بايثون 3.11.4 أو أحدثها مثبتة في بيئة التطوير.

  • Node.js مثبتا لواجهة React.

حمل نموذج المشروع

جميع مجموعات بيانات الكود والعينات متوفرة في مستودع Travel الذكاء الاصطناعي على GitHub.

  1. قم باستنساخ أو تحميل المستودع (https://github.com/jonathanscholtes/Travel-AI-Agent-React-FastAPI-and-Cosmos-DB-Vector-Store) إلى بيئة التطوير المحلية لديك.

  2. انتقل إلى دليل المشروع واستكشف الهيكل:

    • /loader: يحتوي على كود بايثون لتحميل نماذج المستندات وتضمينات المتجهات في Azure DocumentDB

    • /api: يحتوي على مشروع Python FastAPI لاستضافة وكيل السفر الذكاء الاصطناعي

    • /web: يحتوي على كود لواجهة الويب React

تحميل وثائق السفر في Azure DocumentDB

يحتوي الدليل /loader على مشروع بايثون لتحميل نماذج مستندات السفر إلى Azure DocumentDB وإنشاء التضمينات المتجهية اللازمة.

  1. انتقل إلى الدليل /loader في جهازك الطرفي.

  2. أنشئ بيئة افتراضية بلغة بايثون:

    python -m venv venv
    
  3. تفعيل البيئة الافتراضية:

    # On Windows
    venv\Scripts\activate
    
    # On macOS/Linux
    source venv/bin/activate
    
  4. تثبيت التبعيات المطلوبة:

    python -m pip install -r requirements.txt
    
  5. أنشئ .env ملفا في الدليل /loader يحتوي على تفاصيل الاتصال الخاصة بك:

    OPENAI_API_KEY="<your OpenAI key>"
    MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"
    
  6. يعمل الملف main.py كنقطة إدخال مركزية لتحميل البيانات. يعالج بيانات السفر النموذجية بما في ذلك معلومات السفن والوجهة، ثم ينشئ حزم مسار الرحلات.

  7. شغل سكريبت تحميل البيانات من المجلد /loader . يقوم السكربت بتنفيذ هذه العمليات:

    • يقرأ بيانات السفينة والوجهة من ملفات JSON

    • ينشئ خمسة حزم مسار رحلة باستخدام ItineraryBuilder

    • تحفظ حزم المسار إلى itinerary المجموعة

    • يحفظ الوجهات إلى destinations المجموعة

    • ينشئ تضمينات متجهية للسفن في ships المجموعة

    • يضيف فهرس بحث نصي لأسماء السفن

    python main.py
    
  8. تحقق من أن الناتج يظهر الإكمال الناجح:

    --build itinerary--
    --load itinerary--
    --load destinations--
    --load vectors ships--
    

بناء واجهة برمجة تطبيقات وكلاء السفر الذكاء الاصطناعي

يتم استضافة وكيل السفر الذكاء الاصطناعي من خلال واجهة Python FastAPI التي تتكامل مع واجهة الواجهة الأمامية وتعالج طلبات الوكلاء عن طريق تأريض طلبات نموذج اللغة الكبيرة (LLM) مقابل بيانات Azure DocumentDB.

  1. انتقل إلى الدليل /api في جهازك الطرفي.

  2. إنشاء وتفعيل بيئة افتراضية بلغة بايثون:

    python -m venv venv
    
    # On Windows
    venv\Scripts\activate
    
    # On macOS/Linux
    source venv/bin/activate
    
  3. تثبيت التبعيات المطلوبة:

    python -m pip install -r requirements.txt
    
  4. أنشئ .env ملفا في /api الدليل:

    OPENAI_API_KEY="<your OpenAI key>"
    MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"
    
  5. شغل تطبيق FastAPI من الدليل /api :

    python app.py
    
  6. يبدأ الخادم بشكل http://127.0.0.1:8000 افتراضي.

  7. استكشف نقاط نهاية واجهة برمجة التطبيقات من خلال الوصول إلى وثائق Swagger التفاعلية على http://127.0.0.1:8000/docs.

اختبر وظيفة وكيل الذكاء الاصطناعي

اختبر أن الوكيل الذكاء الاصطناعي يعمل كما هو متوقع.

  1. في واجهة Swagger، اختبر نقطة نهاية الجلسة:

    • انتقل إلى /session/ واختر تجربة

    • نفذ الطلب للحصول على معرف جلسة لتتبع تاريخ المحادثات

  2. اختبر وظيفة دردشة الوكيل:

    • انتقل إلى /agent/agent_chat واختر تجربة

    • استخدم هذا الإدخال المثال لاختبار الوكيل:

    {
      "input": "I want to take a relaxing vacation.",
      "session_id": "your-session-id-from-step-1"
    }
    
  3. يجب على الوكيل الرد بتوصيات كروز مبنية على البحث عن تشابه المتجهات، موضحا التكامل بين نموذج اللغة الكبيرة وAzure DocumentDB.

إنشاء واجهة الويب الخاصة ب React

توفر واجهة الويب طريقة سهلة الاستخدام للتفاعل مع وكيل السفر الذكاء الاصطناعي من خلال واجهة محادثة.

إعداد بيئة React

  1. اذهب إلى الدليل /web في طرفيتك.

  2. تثبيت تبعيات المشاريع:

    npm ci
    
  3. أنشئ .env ملفا في /web الدليل:

    REACT_APP_API_HOST=http://127.0.0.1:8000
    

تشغيل تطبيق الويب

  1. ابدأ خادم تطوير React:

    npm start
    
  2. يفتح التطبيق تلقائيا في متصفحك الافتراضي، عادة عند http://localhost:3000.

  3. تظهر واجهة المستخدم موقع سفر يحتوي على صور لسفينة الرحلات البحرية والوجهة.

اختبر الحل الكامل

  1. في الصفحة الرئيسية، اختر تخطيط رحلتك بسهولة لفتح واجهة دردشة مساعد السفر.

  2. تفتح واجهة الدردشة بحوار مع رسالة جاهزة: "أريد أن آخذ إجازة هادئة."

  3. اختر الإرسال لإرسال الرسالة إلى وكيل الذكاء الاصطناعي.

  4. يرد الوكيل بتوصيات بحرية بناء على مداخلاتك، موضحا:

    • معالجه اللغة الطبيعية

    • البحث عن التشابه المتجه ضد Azure DocumentDB

    • ذاكرة المحادثة عبر الجلسة

    • ردود منسقة بتنسيق HTML في واجهة الدردشة

  5. اطلع على كامل قدرات الوكيل من خلال متابعة المحادثة. اسأل عن سفن محددة، أو جداول رحلات، أو حجز الموعد.

فهم بنية وكلاء الذكاء الاصطناعي

يتبع تنفيذ الوكيل الذكاء الاصطناعي بنية طبقية تفصل المخاوف وتمكن من قابلية الصيانة.

مكونات طبقة الخدمة

تحتوي طبقة الخدمة على المنطق التجاري الأساسي وتنفيذ وكيل لانغتشين:

  • تهيئة الوكيل: تقوم الوحدة init.py بإعداد نموذج ChatOpenAI، وأدوات الوكلاء، وسجل المحادثات.

  • أدوات الوكلاء: ثلاث أدوات رئيسية تتعامل مع البحث عن الإجازات، والبحث في جدول الرحلات، وحجز الرحلات البحرية.

  • إدارة الذاكرة: يتم تخزين سجل المحادثة في Azure DocumentDB باستخدام معرفات الجلسات.

وظائف أدوات الوكيل

يستخدم عامل الذكاء الاصطناعي ثلاث أدوات متخصصة.

  1. vacation_lookup: يجري البحث المتجه على Azure DocumentDB للعثور على معلومات السفر ذات الصلة.

  2. itinerary_lookup: يسترجع تفاصيل باقات الرحلات البحرية والجداول الزمنية للسفن المحددة.

  3. book_cruise: تتولى حجوزات باقات الرحلات البحرية مع التحقق من معلومات الركاب.

تكامل طبقة البيانات

تتعامل طبقة البيانات مع جميع التفاعلات مع Azure DocumentDB.

  • البحث عبر المتجهات: البحث عن التشابه مع تقييم النقاط للحصول على توصيات للسفر.

  • تخزين المستندات: بيانات منظمة للسفن، الوجهات، والمسارات.

  • سجل المحادثة: تخزين رسائل الدردشة القائمة على الجلسة.

تنظيف الموارد

إذا لم تعد بحاجة إلى الموارد التي تم إنشاؤها في هذا الدرس، يمكنك تنظيفها لتجنب الرسوم المستمرة:

  1. في بوابة Azure، انتقل إلى حساب Azure DocumentDB الخاص بك.

  2. إذا أنشأت مجموعة موارد مخصصة لهذا الدرس، احذف مجموعة الموارد بالكامل.

  3. وإلا، احذف المجموعات المحددة التي تم إنشاؤها:

    • travel.itinerary

    • travel.destinations

    • travel.ships

    • travel.history

الخطوة التالية