"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > إنشاء تطبيق RAG باستخدام LlamaIndex.ts وAzure OpenAI: البدء!

إنشاء تطبيق RAG باستخدام LlamaIndex.ts وAzure OpenAI: البدء!

تم النشر بتاريخ 2024-11-08
تصفح:533

مع استمرار الذكاء الاصطناعي في تشكيل طريقة عملنا وتفاعلنا مع التكنولوجيا، تبحث العديد من الشركات عن طرق للاستفادة من بياناتها الخاصة ضمن التطبيقات الذكية. إذا كنت قد استخدمت أدوات مثل ChatGPT أو Azure OpenAI، فأنت على دراية بالفعل بكيفية قيام الذكاء الاصطناعي التوليدي بتحسين العمليات وتحسين تجارب المستخدم. ومع ذلك، للحصول على استجابات مخصصة وذات صلة حقًا، تحتاج تطبيقاتك إلى دمج بيانات الملكية الخاصة بك.

هذا هو المكان الذي يأتي فيه الجيل المعزز للاسترجاع (RAG)، مما يوفر نهجًا منظمًا لدمج استرجاع البيانات مع الاستجابات المدعومة بالذكاء الاصطناعي. باستخدام أطر عمل مثل LlamaIndex، يمكنك بسهولة دمج هذه الإمكانية في حلولك، وفتح الإمكانات الكاملة لبيانات عملك.

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

هل تريد تشغيل التطبيق واستكشافه بسرعة؟ انقر هنا.

ما هو RAG - جيل الاسترجاع المعزز؟

الجيل المعزز للاسترجاع (RAG) هو إطار عمل للشبكة العصبية يعمل على تحسين إنشاء نص الذكاء الاصطناعي من خلال تضمين مكون استرجاع للوصول إلى المعلومات ذات الصلة ودمج بياناتك الخاصة. ويتكون من جزأين رئيسيين:

  • المسترد: نموذج مسترد كثيف (على سبيل المثال، يعتمد على BERT) يبحث في مجموعة كبيرة من المستندات للعثور على المقاطع أو المعلومات ذات الصلة المتعلقة باستعلام معين.
  • المولد: نموذج تسلسل إلى تسلسل (على سبيل المثال، يعتمد على BART أو T5) الذي يأخذ الاستعلام والنص المسترد كمدخلات ويولد استجابة متماسكة ومثرية بالسياق.

يعثر المسترد على المستندات ذات الصلة، ويستخدمها المولد لإنشاء استجابات أكثر دقة وغنية بالمعلومات. يتيح هذا المزيج لنموذج RAG الاستفادة من المعرفة الخارجية بشكل فعال، وتحسين جودة النص الذي تم إنشاؤه وأهميته.

كيف يقوم LlamaIndex بتنفيذ RAG؟

لتنفيذ نظام RAG باستخدام LlamaIndex، اتبع الخطوات العامة التالية:

استيعاب البيانات:

  • قم بتحميل مستنداتك إلى LlamaIndex.ts باستخدام أداة تحميل المستندات مثل SimpleDirectoryReader، والتي تساعد في استيراد البيانات من مصادر مختلفة مثل ملفات PDF، أو واجهات برمجة التطبيقات، أو قواعد بيانات SQL.
  • قم بتقسيم المستندات الكبيرة إلى أجزاء أصغر يمكن التحكم فيها باستخدام SentenceSplitter.

إنشاء الفهرس:

  • قم بإنشاء فهرس متجه لمجموعات المستندات هذه باستخدام VectorStoreIndex، مما يسمح بإجراء عمليات بحث تشابه فعالة بناءً على التضمينات.
  • اختياريًا، بالنسبة لمجموعات البيانات المعقدة، استخدم تقنيات الاسترجاع العودية لإدارة البيانات المنظمة بشكل هرمي واسترجاع الأقسام ذات الصلة بناءً على استعلامات المستخدم.

إعداد محرك الاستعلام:

  • قم بتحويل فهرس المتجه إلى محرك استعلام باستخدام asQueryEngine مع معلمات مثل التشابهTopK لتحديد عدد أهم المستندات التي يجب استرجاعها.
  • للحصول على إعدادات أكثر تقدمًا، قم بإنشاء نظام متعدد الوكلاء حيث يكون كل وكيل مسؤولاً عن مستندات محددة، ويقوم وكيل المستوى الأعلى بتنسيق عملية الاسترداد الشاملة.

الاسترجاع والتوليد:

  • تنفيذ مسار RAG من خلال تحديد وظيفة موضوعية تسترد أجزاء المستندات ذات الصلة بناءً على استعلامات المستخدم.
  • استخدم RetrieverQueryEngine لإجراء الاسترجاع الفعلي ومعالجة الاستعلام، مع خطوات اختيارية بعد المعالجة مثل إعادة ترتيب المستندات المستردة باستخدام أدوات مثل CohereRerank.

للحصول على مثال عملي، قدمنا ​​نموذج تطبيق لتوضيح تنفيذ RAG الكامل باستخدام Azure OpenAI.

تطبيق نموذج RAG العملي

سنركز الآن على إنشاء تطبيق RAG باستخدام LlamaIndex.ts (تطبيق TypeScipt لـ LlamaIndex) وAzure OpenAI، ونشره كتطبيقات ويب بدون خادم على تطبيقات Azure Container Apps.

متطلبات تشغيل العينة

  • Azure Developer CLI (azd): أداة سطر أوامر لنشر تطبيقك بالكامل بسهولة، بما في ذلك الواجهة الخلفية والواجهة الأمامية وقواعد البيانات.
  • حساب Azure: ستحتاج إلى حساب Azure لنشر التطبيق. احصل على حساب Azure مجاني مع بعض الأرصدة للبدء.

ستجد مشروع البدء على GitHub. ننصحك بتقسيم هذا القالب حتى تتمكن من تعديله بحرية عند الحاجة:

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

العمارة عالية المستوى

تم إنشاء تطبيق مشروع البدء بناءً على البنية التالية:

  • Azure OpenAI: موفر الذكاء الاصطناعي الذي يعالج استعلامات المستخدم.
  • LlamaIndex.ts: إطار العمل الذي يساعد على استيعاب المحتوى وتحويله وتوجيهه (ملفات PDF) وإنشاء فهرس بحث.
  • Azure Container Apps: بيئة الحاوية التي تتم فيها استضافة التطبيق بدون خادم.
  • Azure Managed Identity: يضمن أمانًا من الدرجة الأولى ويلغي الحاجة إلى التعامل مع بيانات الاعتماد ومفاتيح API.

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

لمزيد من التفاصيل حول الموارد التي يتم نشرها، تحقق من مجلد الأشعة تحت الحمراء المتوفر في جميع العينات لدينا.

مثال على سير عمل المستخدم

يحتوي نموذج التطبيق على منطق لسيرتي عمل:

  1. إدخال البيانات: يتم جلب البيانات وتوجيهها وإنشاء فهارس البحث. إذا كنت تريد إضافة المزيد من الملفات مثل ملفات PDF أو ملفات Word، فهذا هو المكان الذي يجب عليك إضافتها.

      npm run generate
    
  2. تقديم الطلبات السريعة : يتلقى التطبيق مطالبات المستخدم، ويرسلها إلى Azure OpenAI، ويعزز هذه المطالبات باستخدام فهرس المتجهات كمسترد.

تشغيل العينة

قبل تشغيل العينة، تأكد من توفير موارد Azure اللازمة.

لتشغيل قالب GitHub في GitHub Codespace، ما عليك سوى النقر فوق
Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

في مثيل Codespaces الخاص بك، قم بتسجيل الدخول إلى حساب Azure الخاص بك، من جهازك الطرفي:

azd auth login

توفير نموذج التطبيق وتعبئته ونشره على Azure باستخدام أمر واحد:

azd up

لتشغيل التطبيق وتجربته محليًا، قم بتثبيت تبعيات npm وتشغيل التطبيق:

npm install
npm run dev

سيتم تشغيل التطبيق على المنفذ 3000 في مثيل Codespaces الخاص بك أو على http://localhost:3000 في متصفحك.

خاتمة

يوضح هذا الدليل كيفية إنشاء تطبيق RAG (جيل الاسترجاع المعزز) بدون خادم باستخدام LlamaIndex.ts وAzure OpenAI، المنتشر على Microsoft Azure. باتباع هذا الدليل، يمكنك الاستفادة من البنية التحتية لـ Azure وإمكانيات LlamaIndex لإنشاء تطبيقات ذكاء اصطناعي قوية توفر استجابات غنية بالسياق بناءً على بياناتك.

يسعدنا أن نرى ما تقوم بإنشائه باستخدام تطبيق البدء هذا. لا تتردد في تشعبه والإعجاب بمستودع GitHub لتلقي آخر التحديثات والميزات.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/azure/building-a-rag-app-with-llamaindexts-and-azure-openai-getting-started-3pgb?1 إذا كان هناك أي انتهاك، فيرجى الاتصال بـ Study_golang @163.com حذف
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3