يقوم قالب Terraform بأتمتة النشر الشامل لتطبيقات Azure Openai باستخدام Redis Enterprise كقاعدة بيانات متجه.

في نص واحد terraform ينشر:
text-davinci-003 text-embedding-ada-002./docsيتيح لك تطبيق مثال المستخدم في هذا الريبو استخدام ChatGpt لتحليل المستندات ، غير معروف سابقًا لـ ChatGPT و/أو الداخلية لمؤسستك.
هناك تدفقان للبيانات في التطبيق. أولاً - جيل دفعة من التضمين من سياق المستند. يتم تخزين هذه التضمينات في Azure Redis Enterprise. ثانياً - باستخدام هذه التضمينات لإنشاء موجه مدرك للسياق لـ ChatGPT ، لذلك يجيب على الأسئلة ، استنادًا إلى سياق المستندات الداخلية.
أسئلة يمكنك تجربتها:
ما هي الاختلافات الرئيسية بين أنواع المحرك الثلاثة المتاحة لشركة Chevy Colorado؟ تنسيق الاستجابة كجدول مع النموذج كعمود أولي
ما هي خيارات اللون المتاحة؟ تنسيق كقائمة
أرصدة التطبيق-https://github.com/redisventures/llm-document-gh
مصادقة Azure CLI على حساب Azure الخاص بك:
az login
نشر تكوين terraform:
terraform init
terraform apply
يمكنك إضافة المستندات الخاصة بك إلى مجلد ./docs (PDF أو النص العادي) ، بحيث يمكن تحميلها على الدلو أثناء النشر.
قد يستغرق الأمر ما يصل إلى 20 دقيقة لتوفير جميع البنية التحتية المطلوبة.
في النهاية ، سوف يخرج البرنامج النصي terraform مجموعة من المتغيرات.
app-url = "redis-openai-83903-webapp.azurewebsites.net"
openai-endpoint = "https://redis-openai-83903.openai.azure.com/"
openai-key = <sensitive>
redis-endpoint = "redis-openai-83903-redisenterprise.southcentralus.redisenterprise.cache.azure.net"
redis-password = <sensitive>
redis-port = 10000
storage-account = "redisopenai83903bucket"
storage-account-connection-string = <sensitive>
storage-container = "data"
يمكن استخدام App-url للوصول على الفور إلى التطبيق.
استخدم terraform.tfvars أو terraform apply -var="name_prefix=my-deployment" لتجاوز بادئة اسم المورد الافتراضية وصورة الحاوية للنشر مع webapp.
لتغيير التطبيق ، تم نشره كتطبيق ويب Azure - قم بتغيير قيم app_docker_image و app_docker_tag في terraform.tfvars . يتم تضمين رمز المصدر للتطبيق الافتراضي في هذا الريبو ضمن مجلد ./app .
Azure Account ، Azure CLI ، تم تثبيت Terraform CLI محليًا.
Azure Open AI حاليًا (مايو 2023) في المعاينة الخاصة. تحتاج إلى إرسال الطلب إلى Microsoft لتمكينه من حسابك.
Azure Openai API API له حدود صارمة على تردد الطلب ، مما قد يجعله غير ممكن لتوليد التضمين بالجملة. النظر في استخدام التضمين المحلي مثل:
from langchain.embeddings import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
على الرغم من أنه لا يمكن نشر Azure Openai و Azure Redis Enterprise محليًا ، يمكنك استخدام جهازك المحلي لاختبار التطبيق نفسه.
بعد تشغيل terraform apply يمكنك استخدام خدمات Azure التي تم إنشاؤها لاختبار رمز التطبيق محليًا. استخدم .env.template كمثال وقم بملء المفاتيح الفعلية وعنوان URL.
docker build -t llm-chat .
docker run -it -p 80:80 --env-file=.env llm-chat
بناء/دفع الصورة المتعددة (مفيدة للتطوير المحلي على MAC/ARM):
docker buildx build --platform linux/amd64,linux/arm64 -t antonum/llmchat:latest --push .
azurerm_cognitive_account.openai عالق في creating المرحلة. في وقت كتابة هذا التقرير (مايو 2023) ، واجهت Azure أحيانًا مشاكل في نشر خدمات Openai. حاول نشر المكدس في منطقة أخرى. على سبيل المثال قم بتعيين azure_region = "southcentralus" بدلاً من eastus .
SpecialFeatureOrQuotaIdRequired: The subscription does not have QuotaId/Feature required by SKU 'S0' from kind 'OpenAI'لا يتم تمكين حساب Azure الخاص بك. في وقت كتابة هذا التقرير (مايو 2023) Azure Openai في معاينة خاصة. تحتاج إلى إرسال الطلب إلى Microsoft لتمكينه للاشتراك الخاص بك.
لتدمير جميع الموارد التي تم نشرها:
terraform destroy