يحتوي هذا الريبو على مثال على كيفية تنفيذ دعم RAG في التطبيقات التي تستخدم Voice كواجهة مستخدمها ، مدعومة من قبل واجهة برمجة تطبيقات GPT-4O في الوقت الفعلي للصوت. وصفنا النمط بمزيد من التفصيل في منشور المدونة هذا ، ويمكنك رؤية هذا التطبيق نموذج في هذا الفيديو القصير.
يتلقى RTClient في الواجهة الأمامية إدخال الصوت ، ويرسل ذلك إلى الواجهة الخلفية Python التي تستخدم كائن RTMiddleTier للتفاعل مع Azure Openai API في الوقت الفعلي ، ويتضمن أداة للبحث عن Azure AI Search.

يتضمن هذا المستودع البنية التحتية كرمز و Dockerfile لنشر التطبيق على تطبيقات حاوية Azure ، ولكن يمكن أيضًا تشغيله محليًا طالما تم تكوين Azure AI Search و Azure Openai.
لديك بعض الخيارات للبدء في هذا القالب. أسرع طريقة للبدء هي مساحات رموز GitHub ، حيث ستقوم بإعداد جميع الأدوات لك ، ولكن يمكنك أيضًا إعدادها محليًا. يمكنك أيضًا استخدام حاوية VS Code Dev
يمكنك تشغيل هذا الريبو فعليًا باستخدام مساحات Github ، والتي ستفتح رمز VS المستند إلى الويب في متصفحك:
بمجرد افتتاح CodeSpace (قد يستغرق ذلك عدة دقائق) ، افتح محطة جديدة وانتقل إلى نشر التطبيق.
يمكنك تشغيل المشروع في حاوية Dev Code المحلية VS باستخدام امتداد حاويات Dev:
ابدأ سطح Docker Desktop (قم بتثبيته إذا لم يتم تثبيته بالفعل)
افتح المشروع:
في نافذة VS Code التي تفتح ، بمجرد ظهور ملفات المشروع (قد يستغرق ذلك عدة دقائق) ، فتح محطة جديدة ، وتابع نشر التطبيق.
تثبيت الأدوات المطلوبة:
python --version وحدة التحكم. على Ubuntu ، قد تحتاج إلى تشغيل sudo apt install python-is-python3 لربط python إلى python3 . استنساخ repo ( git clone https://github.com/Azure-Samples/aisearch-openai-rag-audio )
انتقل إلى القسم التالي لنشر التطبيق.
ستقوم الخطوات أدناه بتوفير موارد Azure ونشر رمز التطبيق على تطبيقات حاوية Azure.
تسجيل الدخول إلى حساب Azure الخاص بك:
azd auth loginلمستخدمي GitHub CodeSpaces ، إذا فشل الأمر السابق ، فحاول:
azd auth login --use-device-codeإنشاء بيئة AZD جديدة:
azd env new أدخل اسمًا سيتم استخدامه لمجموعة الموارد. سيؤدي ذلك إلى إنشاء مجلد جديد في مجلد .azure ، ويضعه كبيئة نشطة لأي مكالمات إلى azd للمضي قدمًا.
(اختياري) هذه هي النقطة التي يمكنك من خلالها تخصيص النشر عن طريق تعيين متغيرات البيئة AZD ، من أجل استخدام الخدمات الحالية أو تخصيص اختيار الصوت.
قم بتشغيل هذا الأمر الفردي لتوفير الموارد ، ونشر الرمز ، وإعداد التقييم المتكامل لبيانات العينة:
azd upazd down أو حذف الموارد يدويًا لتجنب الإنفاق غير الضروري.بعد نشر الطلب بنجاح ، سترى عنوان URL مطبوعًا على وحدة التحكم. انتقل إلى عنوان URL هذا للتفاعل مع التطبيق في متصفحك. لتجربة التطبيق ، انقر فوق "زر بدء المحادثة" ، وقل "Hello" ، ثم اطرح سؤالًا حول بياناتك مثل "ما هي سياسة المبلغين عن المخالفات لإلكترونيات Contoso؟" يمكنك أيضًا تشغيل التطبيق محليًا باتباع الإرشادات الواردة في القسم التالي.
يمكنك تشغيل هذا التطبيق محليًا باستخدام خدمات Azure التي قمت بتوفيرها باتباع تعليمات النشر ، أو عن طريق توجيه التطبيق المحلي إلى الخدمات الموجودة بالفعل.
إذا قمت بنشرها مع azd up ، فيجب أن ترى ملف app/backend/.env مع متغيرات البيئة اللازمة.
إذا لم تستخدم azd up ، فستحتاج إلى إنشاء ملف app/backend/.env مع متغيرات البيئة التالية:
AZURE_OPENAI_ENDPOINT=wss:// < your instance name > .openai.azure.com
AZURE_OPENAI_REALTIME_DEPLOYMENT=gpt-4o-realtime-preview
AZURE_OPENAI_REALTIME_VOICE_CHOICE= < choose one: echo, alloy, shimmer >
AZURE_OPENAI_API_KEY= < your api key >
AZURE_SEARCH_ENDPOINT=https:// < your service name > .search.windows.net
AZURE_SEARCH_INDEX= < your index name >
AZURE_SEARCH_API_KEY= < your api key >لاستخدام entra id (المستخدم عند التشغيل محليًا ، لا تُعد الهوية المدارة عند نشرها) ببساطة لا تضع المفاتيح.
قم بتشغيل هذا الأمر لبدء التطبيق:
Windows:
pwsh .scriptsstart.ps1Linux/Mac:
./scripts/start.shالتطبيق متاح على http: // localhost: 8765.
بمجرد تشغيل التطبيق ، عند الانتقال إلى عنوان URL أعلاه ، يجب أن ترى شاشة البدء في التطبيق: 
لتجربة التطبيق ، انقر فوق "زر بدء المحادثة" ، وقل "Hello" ، ثم اطرح سؤالًا حول بياناتك مثل "ما هي سياسة المبلغين عن المخالفات لإلكترونيات Contoso؟"
يختلف التسعير لكل منطقة واستخدام ، لذلك لا يمكن التنبؤ بالتكاليف الدقيقة لاستخدامك. ومع ذلك ، يمكنك تجربة حاسبة تسعير Azure للموارد أدناه.
لتقليل التكاليف ، يمكنك التبديل إلى SKU المجاني لمختلف الخدمات ، ولكن هذه SKU لها قيود.
azd down .
يستخدم هذا القالب الهوية المدارة للقضاء على الحاجة للمطورين لإدارة بيانات الاعتماد هذه. يمكن للتطبيقات استخدام الهويات المدارة للحصول على رمز Microsoft Entra دون الحاجة إلى إدارة أي بيانات اعتماد. لضمان أفضل الممارسات في ريبو ، نوصي أي شخص بإنشاء حلول بناءً على القوالب الخاصة بنا ، مما يضمن تمكين إعداد المسح السري لـ Github في Repos الخاص بك.
بيانات العينة: تحتوي مستندات PDF المستخدمة في هذا العرض التوضيحي على معلومات تم إنشاؤها باستخدام نموذج لغة (خدمة Azure Openai). المعلومات الواردة في هذه الوثائق هي فقط لأغراض التوضيح ولا تعكس آراء أو معتقدات Microsoft. لا تقدم Microsoft أي تعهدات أو ضمانات من أي نوع ، صريحة أو ضمنية ، حول الاكتمال أو الدقة أو الموثوقية أو الملاءمة أو التوفر فيما يتعلق بالمعلومات الواردة في هذا المستند. جميع الحقوق محفوظة لمايكروسوفت.