
إذا أعجبك هذه العينة ، فامنزه على Github - فهو يساعد كثيرًا!
نظرة عامة • ابدأ • قم بتشغيل العينة • الموارد • الأسئلة الشائعة • استكشاف الأخطاء وإصلاحها

توضح هذه العينة كيفية إنشاء تجربة دردشة منظمة العفو الدولية بدون خادم مع جيل معجزة على الاسترجاع باستخدام langchain.js و Azure. يتم استضافة التطبيق على تطبيقات الويب الثابتة Azure ووظائف Azure ، مع Azure Cosmos DB لـ NOSQL كقاعدة بيانات المتجه. يمكنك استخدامه كنقطة انطلاق لبناء تطبيقات الذكاء الاصطناعي الأكثر تعقيدًا.
نصيحة
يمكنك اختبار هذا التطبيق محليًا دون أي تكلفة باستخدام Ollama. اتبع التعليمات الواردة في قسم التطوير المحلي للبدء.
يمكن أن يكون بناء تطبيقات الذكاء الاصطناعي معقدًا ويستغرق وقتًا طويلاً ، ولكن استخدام تقنيات Langchain.js و Azure بدون خادم يسمح بتبسيط العملية بشكل كبير. هذا التطبيق عبارة عن chatbot يستخدم مجموعة من مستندات المؤسسة لإنشاء ردود على استعلامات المستخدم.
نحن نقدم عينة بيانات لجعل هذه العينة جاهزة للمحاولة ، ولكن لا تتردد في استبدالها بخصوصك. نستخدم شركة وهمية تسمى Contoso Real Estate ، وتسمح التجربة لعملائها بطرح أسئلة الدعم حول استخدام منتجاتها. تتضمن بيانات العينة مجموعة من المستندات التي تصف شروط الخدمة وسياسة الخصوصية ودعم الدعم.

هذا التطبيق مصنوع من مكونات متعددة:
تطبيق ويب مصنوع من مكون ويب دردشة واحد تم تصميمه مع مضاءة واستضافته على تطبيقات الويب الثابتة Azure. يقع الرمز في مجلد packages/webapp .
API بدون خادم تم تصميمه باستخدام وظائف Azure واستخدام langchain.js لتلوين المستندات وإنشاء ردود على استعلامات دردشة المستخدم. يقع الرمز في مجلد packages/api .
قاعدة بيانات لتخزين النص المستخرج من المستندات والمتجهات التي تم إنشاؤها بواسطة Langchain.js ، باستخدام Azure Cosmos DB لـ NOSQL.
تخزين ملفات لتخزين المستندات المصدر ، باستخدام تخزين Azure Blob.
نستخدم بروتوكول HTTP لتطبيقات دردشة AI للتواصل بين تطبيق الويب و API.
هناك طرق متعددة للبدء في هذا المشروع.
أسرع طريقة هي استخدام مساحات رموز github التي توفر بيئة تم تكوينها مسبقًا لك. بدلاً من ذلك ، يمكنك إعداد بيئتك المحلية باتباع التعليمات أدناه.
مهم
إذا كنت ترغب في تشغيل هذه العينة محليًا تمامًا باستخدام Ollama ، فيجب عليك اتباع التعليمات في قسم البيئة المحلي.
تحتاج إلى تثبيت الأدوات التالية للعمل على جهازك المحلي:
pwsh.exe من أمر PowerShell. إذا فشل هذا ، فمن المحتمل أن تحتاج إلى ترقية PowerShell.ثم يمكنك الحصول على رمز المشروع:

git clone <your-repo-url>يمكنك تشغيل هذا المشروع مباشرة في متصفحك باستخدام مساحات GitHub ، والتي ستفتح رمز VS المستند إلى الويب:
هناك خيار مماثل لأماكن الترميز هو VS Code Dev Containers ، والتي ستفتح المشروع في مثيل Code المحلي VS باستخدام ملحق حاويات Dev.
ستحتاج أيضًا إلى تثبيت Docker على جهازك لتشغيل الحاوية.
هناك طرق متعددة لتشغيل هذه العينة: محليًا باستخدام نماذج Ollama أو Azure Openai ، أو عن طريق نشرها على Azure.
Microsoft.Authorization/roleAssignments/write أذونات ، مثل مسؤول التحكم في الوصول القائم على الأدوار ، أو مسؤول وصول المستخدم ، أو المالك. إذا لم يكن لديك أذونات على مستوى الاشتراك ، فيجب منحك RBAC لمجموعة موارد موجودة ونشرها على تلك المجموعة الحالية.Microsoft.Resources/deployments/write على مستوى الاشتراك. راجع تفاصيل تقدير التكلفة لتشغيل هذه العينة على Azure.
azd auth login .azd up لنشر التطبيق إلى Azure. سيؤدي ذلك إلى توفير موارد Azure ، ونشر هذه العينة ، وإنشاء فهرس البحث استنادًا إلى الملفات الموجودة في مجلد ./data .eastus2 .eastus2 . يمكنك تعيين موقع مختلف مع azd env set AZURE_OPENAI_RESOURCE_GROUP_LOCATION <location> . حاليا يتم قبول قائمة قصيرة فقط من المواقع. تعتمد قائمة الموقع هذه على جدول توافر طراز Openai وقد تصبح قديمة مع تغييرات التوفر.ستستغرق عملية النشر بضع دقائق. بمجرد الانتهاء من ذلك ، سترى عنوان URL لتطبيق الويب في المحطة.

يمكنك الآن فتح تطبيق الويب في متصفحك والبدء في الدردشة مع الروبوت.
عند نشر العينة في سياق المؤسسة ، قد ترغب في فرض قيود أمان أكثر إحكاما لحماية بياناتك ومواردك. انظر دليل الأمان المحسّن لمزيد من المعلومات.
لتنظيف جميع موارد Azure التي أنشأتها هذه العينة:
azd down --purgeyسيتم حذف مجموعة الموارد وجميع الموارد.
إذا كان لديك جهاز يحتوي على موارد كافية ، فيمكنك تشغيل هذه العينة محليًا تمامًا دون استخدام أي موارد سحابية. للقيام بذلك ، يجب عليك أولاً تثبيت Ollama ثم تشغيل الأوامر التالية لتنزيل النماذج على جهازك:
ollama pull mistral:v0.2
ollama pull all-minilm:l6-v2ملحوظة
نموذج mistral مع تنزيل بضعة جيجابت من البيانات ، لذلك قد يستغرق الأمر بعض الوقت اعتمادًا على اتصال الإنترنت الخاص بك.
بعد ذلك يجب عليك تثبيت تبعيات NPM:
npm installثم يمكنك بدء تشغيل التطبيق عن طريق تشغيل الأمر التالي الذي سيبدأ تطبيق الويب و API محليًا:
npm start بعد ذلك ، افتح محطة جديدة تعمل بشكل متزامن وقم بتشغيل الأمر التالي لتحميل مستندات PDF من مجلد /data إلى API:
npm run upload:docsيجب القيام بذلك مرة واحدة فقط ، إلا إذا كنت ترغب في إضافة المزيد من المستندات.
يمكنك الآن فتح عنوان URL http://localhost:8000 في متصفحك لبدء الدردشة مع الروبوت.
ملحوظة
على الرغم من أن النماذج المحلية تعمل عادةً بشكل جيد بما يكفي للإجابة على الأسئلة ، إلا أنها في بعض الأحيان قد لا تكون قادرة على اتباع تعليمات التنسيق المتقدمة تمامًا للاستشهادات وأسئلة المتابعة. هذا متوقع ، وقيود استخدام نماذج محلية أصغر.
تحتاج أولاً إلى توفير موارد Azure اللازمة لتشغيل العينة. اتبع الإرشادات الواردة في نشر العينة إلى قسم Azure لنشر العينة على Azure ، ثم ستتمكن من تشغيل العينة محليًا باستخدام موارد Azure المنشورة.
بمجرد اكتمال نشرك ، يجب أن ترى ملف .env في مجلد packages/api . يحتوي هذا الملف على متغيرات البيئة اللازمة لتشغيل التطبيق باستخدام موارد Azure.
لتشغيل العينة ، يمكنك بعد ذلك استخدام نفس الأوامر كما لإعداد Ollama. سيبدأ هذا تطبيق الويب و API محليًا:
npm start افتح عنوان URL http://localhost:8000 في متصفحك لبدء الدردشة مع الروبوت.
لاحظ أنه يتم تحميل المستندات تلقائيًا عند نشر العينة على Azure مع azd up .
نصيحة
يمكنك العودة إلى استخدام نماذج Ollama عن طريق حذف ملف packages/api/.env وبدء التطبيق مرة أخرى. لتجديد ملف .env ، يمكنك تشغيل azd env get-values > packages/api/.env .
فيما يلي بعض الموارد لمعرفة المزيد حول التقنيات المستخدمة في هذه العينة:
يمكنك أيضًا العثور على المزيد من عينات الذكاء الاصطناعي هنا.
يمكنك العثور على إجابات على الأسئلة المتداولة في الأسئلة الشائعة.
إذا كان لديك أي مشكلة عند تشغيل هذه العينة أو نشرها ، فيرجى التحقق من دليل استكشاف الأخطاء وإصلاحها. إذا لم تتمكن من العثور على حل لمشكلتك ، فيرجى فتح مشكلة في هذا المستودع.
لمزيد من الإرشادات التفصيلية حول كيفية استخدام هذه العينة ، يرجى الرجوع إلى البرنامج التعليمي.
يرحب هذا المشروع بالمساهمات والاقتراحات. تطلب منك معظم المساهمات الموافقة على اتفاقية ترخيص المساهم (CLA) مع إعلان أن لديك الحق في ذلك في الواقع ، ويفعلنا في الواقع حقوق استخدام مساهمتك. لمزيد من التفاصيل ، تفضل بزيارة https://cla.opensource.microsoft.com.
عند إرسال طلب سحب ، سيحدد CLA Bot تلقائيًا ما إذا كنت بحاجة إلى توفير CLA وتزيين العلاقات العامة بشكل مناسب (على سبيل المثال ، فحص الحالة ، التعليق). ببساطة اتبع الإرشادات التي يقدمها الروبوت. ستحتاج فقط إلى القيام بذلك مرة واحدة عبر جميع عمليات إعادة الشراء باستخدام CLA لدينا.
اعتمد هذا المشروع رمز سلوك المصدر المفتوح Microsoft. لمزيد من المعلومات ، راجع مدونة الشهادة الأسئلة الشائعة أو الاتصال بـ [email protected] مع أي أسئلة أو تعليقات إضافية.
قد يحتوي هذا المشروع على علامات تجارية أو شعارات للمشاريع أو المنتجات أو الخدمات. يخضع الاستخدام المعتمد للعلامات التجارية أو الشعارات Microsoft ويجب أن يتبعوا إرشادات Microsoft التجارية والعلامة التجارية. يجب ألا يسبب استخدام العلامات التجارية Microsoft أو الشعارات في إصدارات معدلة من هذا المشروع الارتباك أو يعني رعاية Microsoft. يخضع أي استخدام للعلامات التجارية أو الشعارات من طرف ثالث لسياسات تلك الطرف الثالث.