يوفر هذا الريبو نموذجًا لتطبيق QnA مدعومًا من Dataworkz RAG Builder والذي يوضح قوة RAG في العديد من مجموعات البيانات. سنوضح لك في هذا القسم كيفية تشغيل نموذج تطبيق QnA على جهازك المحلي. انتقل هنا لمعرفة المزيد حول Dataworkz RAG Builder
Clone Repository dataworkz-qna-app باستخدام git clone https://github.com/dataworkz-dev/dataworkz-qna-app.git
.
إذا لزم الأمر، قم بتثبيت Node.js لنظامك الأساسي (إصدار Node > 16.0.0).
يتم تضمين مفتاح API الافتراضي للعينة في هذا المشروع. يمكنك تجاهل الخطوة رقم 4 ورقم 5 إلا إذا كنت تخطط لإنشاء حسابك الخاص لمزيد من التطوير.
ستحتاج إلى مفتاح Dataworkz API للوصول إلى خدمة Dataworkz RAG QnA. فيما يلي خطوات إنشاء مفتاح API. ملاحظة: يجب أن يكون اسم مفتاح واجهة برمجة التطبيقات فريدًا بين جميع المستخدمين، لذا يُرجى اختيار اسم وفقًا لذلك.
ضع مفتاح API الذي تم إنشاؤه في ملف token.txt
. يمكنك العثور على الملف على src/assets/token.txt
.
قم بتشغيل npm install
لتثبيت التبعيات.
قم بتشغيل npm run start
لتشغيل خادم ويب محلي يستضيف نموذج تطبيق QnA. للوصول إلى التطبيق، افتح المتصفح وانتقل إلى http://localhost:4200
يرجى الإبلاغ عن أي مشكلات تتعلق بنموذج تطبيق QnA في المشكلات
يعمل Dataworkz على تبسيط عملية تطوير تطبيق RAG للشركات. تقدم Dataworkz RAG كخدمة بحيث يمكنك إنشاء تطبيقات GenAI باستخدام بيانات خاصة، وذلك باستخدام واجهات برمجة تطبيقات LLM العامة أو نماذج الأساس مفتوحة المصدر المستضافة بشكل خاص.
يعمل منشئ RAG الخاص بـ Dataworkz على تبسيط إنشاء تطبيقات GenAI لإزالة التعقيد المرتبط بتجميع حل جاهز معًا. توفر مجموعة الذكاء الاصطناعي القابلة للتركيب القدرة على اختيار قاعدة البيانات المتجهة ونموذج التضمين واستراتيجية التقطيع ونموذج LLM. لديك المرونة في استخدام واجهات برمجة تطبيقات LLM العامة بما في ذلك AWS Bedrock وOpenAI أو استضافة نموذج مفتوح المصدر في VPC.
بالنسبة لتطبيقات RAG المتقدمة، توفر Dataworkz القدرة على الجمع بين البحث المعجمي والدلالي مع تصفية البيانات الوصفية وبالتالي تمكين تطبيقات RAG من معالجة كميات كبيرة من البيانات غير المنظمة أو شبه المنظمة أو المنظمة.
يتصل Dataworkz بمصادر مختلفة لبيانات الأعمال - خدمات SaaS، وقواعد البيانات العلائقية، وقواعد بيانات NoSQL، والملفات المخزنة في مخازن الكائنات السحابية، ويوفر تحويلات بدون تعليمات برمجية لجعل البيانات الخاصة بأي تنسيق جاهزة لتطبيقات LLM. عند دمج البيانات من مصادر متعددة، يمكنك أيضًا تكوين ترتيب الأسبقية لمصادر الإدخال المستخدمة لبناء السياق لإنشاء استجابة LLM. القائمة الكاملة للموصلات متاحة هنا.
يوفر RAG builder واجهة برمجة تطبيقات لأي مطور لتضمين تطبيقات GenAI في سير العمل الحالي الخاص به مع مرونة كاملة لتخصيص الشكل والمظهر. يعمل نموذج التطبيق في هذا الريبو على تعزيز واجهة برمجة التطبيقات (API) هذه لوظائفها. لدينا قسم حول تكامل واجهة برمجة التطبيقات (API) في هذا التطبيق بالإضافة إلى كيفية استخدامه في تطبيقاتك الخاصة.
يمثل ظهور الهلوسة عقبة ملحوظة أمام التبني الواسع النطاق لجيل الذكاء الاصطناعي داخل المؤسسات. تمكن Dataworkz GenAI من الرجوع إلى أصولها، وبالتالي تعزيز إمكانية التتبع. اقرأ مدونة Dataworkz حول كيفية تقييم Dataworkz لاستجابة LLM.
في هذا القسم، نقدم بعض ملاحظات المطورين حول كيفية إنشاء نموذج التطبيق وما هي واجهات برمجة التطبيقات التي تم استخدامها لتشغيل الأقسام المختلفة. يمكنك تجربة واجهة برمجة التطبيقات (API) ونظام الأسئلة والأجوبة المدمجين في تطبيقك الخاص. يمكنك إنشاء مفتاح واجهة برمجة التطبيقات (إذا تم إنشاؤه بالفعل، فيمكن استخدام نفس المفتاح) والاتصال بهذه الخدمة.
تعمل Dataworkz مع شركاء استراتيجيين لتوضيح كيفية تكامل تقنيتنا معًا. يتصل تطبيق QnA هذا بـ https://ragapps.dataworkz.com كخدمة RAG Partner Playground الخلفية. توضح خدمة Partner Playground هذه كيف تعمل Dataworkz وMongoDB Atlas Vector Search معًا لإنشاء نظام QnA للمستندات المتاحة للعامة مثل ملفات 10 آلاف من الشركات المدرجة مثل Uber.
يوضح نموذج نظام QnA كيفية استخدام Dataworkz RAG Builder API لسرد أنظمة QnA وإجراء استعلامات غنية مقابل مجموعة البيانات هذه.
يرجى الرجوع إلى قسم إنشاء مفاتيح واجهة برمجة التطبيقات (API Key Generation) لمعرفة كيفية الحصول على مفتاح واجهة برمجة التطبيقات (API Key) وكيفية استخدامه لاستدعاء واجهات برمجة تطبيقات Dataworkz QnA. في مثال تطبيق QnA، يتم تمرير رمز API المميز في رأس Authentication
باستخدام النموذج SWSS <api-key>
.
يدعم Dataworkz RAG Builder تكوين أنظمة QnA متعددة ومعزولة. تُستخدم أنظمة QnA كمجالات لأنظمة الأسئلة والأجوبة ويمكن الاستفادة منها للفصل بين مشاريع متعددة، أو مجموعات من المصادر، أو نماذج لغة كبيرة، أو إصدارات، أو نطاقات فرعية مختلفة غير مرتبطة في المشروع، وما إلى ذلك. قد يحتوي التطبيق على واحد أو أكثر أنظمة مراقبة الجودة. عندما يتم طرح سؤال، يتم طرحه مقابل نظام QnA محدد.
يبدأ تطبيق مثال QnA بإدراج جميع أنظمة QnA (كبطاقات) ليختار المستخدم النظام الذي يهتم به. يمكن لمطوري التطبيقات اختيار سرد الأنظمة لاختيار المستخدم أو إذا كان الاختيار واضحًا من السياق، ثم قم بتعيين ذلك في التعليمات البرمجية.
إليك واجهة برمجة التطبيقات (API) لسرد جميع أنظمة QnA المتاحة - https://ragapps.dataworkz.com/api/qna/v1/systems. ستكون هناك حاجة إلى معرف نظام QnA المحدد في واجهات برمجة التطبيقات اللاحقة.
يتم استرداد المعلومات الخاصة بكل نظام QnA فردي باستخدام واجهة برمجة التطبيقات هذه - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}. يتم استخدام هذا في مثال تطبيق QnA لملء بطاقات نظام QnA الفردية.
تتم الإجابة على الأسئلة بواسطة LLMs التي تم تكوينها في Dataworkz RAG Builder. يمكن أن تكون LLMs التي تم تكوينها للأنظمة من OpenAI، والنماذج المستضافة بشكل خاص (مثل Llama-2)، وVertex AI من Google (يمكن أن يدعم نموذج التطبيق واحدًا أو أكثر من هذه النماذج). توفر واجهة برمجة التطبيقات هذه قائمة LLMProviders التي تم تكوينها بواسطة نظام QnA - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/llm-providers
يستخدم مثال تطبيق QnA هذا لملء القائمة المنسدلة LLMProviders للسماح للمستخدم بتحديد LLM الذي يريد استخدامه للإجابة على السؤال. يجب عليك تخزين معرف LLMProvider الذي ترغب في استخدامه لطرح الأسئلة عليه. يمكن طرح الأسئلة على موفري LLM محددين تم تحديدهم بواسطة llmProviderId
الذي تم إرجاعه بواسطة استدعاء API هذا.
واجهة برمجة التطبيقات (API) لطرح سؤال على نظام Dataworkz QnA هي https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/answer
تحتاج واجهة برمجة التطبيقات هذه إلى systemId
الخاص بنظام QnA الذي تستهدفه و llmProviderId
الخاص بـ LLM لاستخدامه. يعمل تطبيق QnA النموذجي على الاستفادة من واجهة برمجة التطبيقات (API) هذه لتشغيل صفحة "البحث عن المعرفة". تتضمن استجابة واجهة برمجة التطبيقات (API) هذه الاستجابة من LLM بالإضافة إلى روابط للمصادر الموثوقة التي تدعم الإجابة.
يوفر مثال تطبيق QnA قائمة بالأسئلة المطروحة مسبقًا من نظام QnA. هذه طريقة ملائمة للمستخدمين للاطلاع على الأسئلة التي تمت الإجابة عليها مسبقًا. يتم استخدام واجهة برمجة التطبيقات التالية - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId)/questionsshistory
يوفر Dataworkz قائمة بالأسئلة التي تم الرد عليها مسبقًا بالإضافة إلى نتائج إضافية وتحليلات حول جودة الإجابة. اقرأ المزيد عن هذا هنا. يستخدم مثال تطبيق QnA واجهة برمجة التطبيقات هذه لتقديم تفاصيل حول كل سؤال تمت الإجابة عليه - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/questions/{questionId}