الإصدار 2.x عبارة عن إعادة كتابة كاملة للوحدة ولا يتوافق مع الإصدار 1.x.
تمت إضافة عمليات تكامل وميزات جديدة إلى الوحدة لاستخدام أحدث خدمات وميزات Azure OpenAI مثل GPT-4-1106
و GPT-4-Vision
و DALL-E-3
. تمت إضافة واجهة ChatBot UI / LibreChat جديدة إلى الوحدة لتوفير حل كامل.
ملاحظة: يمكن العثور على الإصدار القديم 1.x في الفرع القديم هنا
الإصدار 1.x الوثائق
بموجب شروط OpenAI عند استخدام الإصدار العام من ChatGPT ، فإن أي أسئلة تطرحها - يشار إليها باسم "المطالبات" - قد تساهم في التدريب الإضافي لنموذج اللغة الكبير (LLM) الخاص بـ OpenAI. بالنظر إلى ذلك، من المهم أن نسأل: هل أنت مرتاح لتدفق البيانات الثمينة هذا الذي يغادر مؤسستك؟ إذا كنت صانع قرار أو تتحمل مسؤولية الإجراءات الأمنية لمؤسستك، ما هي الخطوات التي تتخذها لضمان بقاء المعلومات الخاصة سرية؟
يكمن الحل الفعال في استخدام نسخة مستضافة من LLM الشهير على Azure OpenAI . في حين أن هناك العديد من المزايا لـ Azure OpenAI، أود تسليط الضوء على اثنتين منها:
خصوصية البيانات : من خلال استضافة نماذج OpenAI على Azure، لن تكون مطالباتك أبدًا بمثابة مصدر لتدريب LLM. إنها ببساطة نسخة قائمة بذاتها تعمل على Azure ومصممة خصيصًا لاستخدامك.
الأمان المحسّن : يوفر Azure OpenAI تدابير أمنية قوية، بدءًا من القدرة على تأمين نقاط نهاية محددة وحتى عناصر التحكم في الوصول المعقدة القائمة على الأدوار. للحصول على معلومات أعمق، راجع مقالة Microsoft Learn هذه.
على الرغم من أن Azure OpenAI يأتي بتكلفة، إلا أنه ميسور التكلفة للغاية - غالبًا ما تكلف المحادثة أقل من 10 سنتات. يمكنك مراجعة تفاصيل أسعار Azure OpenAI هنا.
قريباً...
المساهمات هي موضع ترحيب. يرجى إرسال طلب سحب إذا كان لديك أي تحسينات أو إصلاحات. تأكد من اتباع نمط التعليمات البرمجية الموجود وإضافة تعليقات إلى التعليمات البرمجية الخاصة بك لشرح ما يفعله.
وحدة terraform هذه مرخصة بموجب ترخيص MIT. راجع ملف الترخيص لمزيد من التفاصيل.
إذا واجهت أي مشكلات أو كانت لديك أي أسئلة حول وحدة terraform هذه، فيرجى فتح مشكلة على GitHub. سنبذل قصارى جهدنا للرد في أسرع وقت ممكن.
تم تطوير وحدة terraform هذه بواسطة Marcel Lupo كجزء من مشروع لاستكشاف إمكانيات نماذج Azure OpenAI. نود أن نشكر فريق OpenAI وMicrosoft على عملهم الرائع ودعمهم المستمر لمجتمع الذكاء الاصطناعي.
اسم | إصدار |
---|---|
terraform | >= 1.9.5 |
com.azurerm | ~> 4.0 |
عشوائي | ~> 3.0 |
اسم | إصدار |
---|---|
com.azurerm | ~> 4.0 |
عشوائي | ~> 3.0 |
لا توجد وحدات.
اسم | يكتب |
---|---|
azurerm_app_service_certificate_binding.libre_app_cert_binding | الموارد |
azurerm_app_service_custom_hostname_binding.hostname_binding | الموارد |
azurerm_app_service_managed_certificate.libre_app_cert | الموارد |
azurerm_cognitive_account.az_openai | الموارد |
azurerm_cognitive_deployment.az_openai_models | الموارد |
azurerm_cosmosdb_account.az_openai_mongodb | الموارد |
azurerm_dns_cname_record.cname_record | الموارد |
azurerm_dns_txt_record.domain_verification | الموارد |
azurerm_key_vault.az_openai_kv | الموارد |
azurerm_key_vault_secret.libre_app_creds_iv | الموارد |
azurerm_key_vault_secret.libre_app_creds_key | الموارد |
azurerm_key_vault_secret.libre_app_jwt_refresh_secret | الموارد |
azurerm_key_vault_secret.libre_app_jwt_secret | الموارد |
azurerm_key_vault_secret.openai_cosmos_uri | الموارد |
azurerm_key_vault_secret.openai_endpoint | الموارد |
azurerm_key_vault_secret.openai_primary_key | الموارد |
azurerm_linux_web_app.librechat | الموارد |
azurerm_resource_group.az_openai_rg | الموارد |
azurerm_role_signment.kv_role_assigment | الموارد |
azurerm_role_signment.librechat_app_kv_access | الموارد |
azurerm_service_plan.az_openai_asp | الموارد |
azurerm_subnet.az_openai_subnet | الموارد |
azurerm_virtual_network.az_openai_vnet | الموارد |
Random_password.libre_app_creds_iv | الموارد |
Random_password.libre_app_creds_key | الموارد |
Random_password.libre_app_jwt_refresh_secret | الموارد |
Random_password.libre_app_jwt_secret | الموارد |
azurerm_client_config.current | مصدر البيانات |
اسم | وصف | يكتب | تقصير | مطلوب |
---|---|---|---|---|
app_service_name | اسم خطة خدمة تطبيقات Linux. | string | "openaiasp9000" | لا |
app_service_sku_name | اسم SKU لخطة خدمة التطبيق. | string | "B1" | لا |
cosmosdb_automatic_failover | ما إذا كان سيتم تمكين تجاوز الفشل التلقائي لحساب Cosmos DB | bool | false | لا |
cosmosdb_capabilities | إمكانيات حساب Cosmos DB | list(string) | [ | لا |
cosmosdb_consistency_level | مستوى الاتساق لحساب Cosmos DB | string | "BoundedStaleness" | لا |
cosmosdb_geo_locations | المواقع الجغرافية لحساب Cosmos DB | قائمة (كائن ({ | [ | لا |
cosmosdb_is_virtual_network_filter_enabled | ما إذا كان سيتم تمكين تصفية الشبكة الافتراضية لحساب Cosmos DB | bool | true | لا |
cosmosdb_kind | نوع Cosmos DB المراد إنشاؤه | string | "MongoDB" | لا |
cosmosdb_max_interval_in_thanks | الحد الأقصى للفاصل الزمني للفساد بالثواني لحساب Cosmos DB | number | 10 | لا |
cosmosdb_max_staleness_prefix | الحد الأقصى لبادئة الثبات لحساب Cosmos DB | number | 200 | لا |
cosmosdb_name | اسم حساب Cosmos DB | string | "openaicosmosdb" | لا |
cosmosdb_offer_type | نوع العرض المطلوب استخدامه لحساب Cosmos DB | string | "Standard" | لا |
cosmosdb_public_network_access_enabled | ما إذا كان سيتم تمكين الوصول إلى الشبكة العامة لحساب Cosmos DB | bool | true | لا |
cosmosdb_virtual_network_subnets | الشبكات الفرعية للشبكة الافتراضية المراد ربطها بحساب Cosmos DB (نقطة نهاية الخدمة). إذا تم إنشاء شبكة كجزء من الوحدة، فسيتم ملؤها تلقائيًا. | list(string) | null | لا |
dns_resource_group_name | مجموعة الموارد التي تحتوي على منطقة DNS المخصصة لاستخدامها في خدمة التطبيق | string | "dns-rg" | لا |
kv_fw_allowed_ips | قيمة جدار الحماية Key Vault تسمح بقواعد IP. | list(string) | [] | لا |
kv_fw_bypass | قائمة قواعد جدار حماية المخزن الرئيسية التي يجب تجاوزها. | string | "AzureServices" | لا |
kv_fw_default_action | الإجراء الافتراضي لقواعد جدار حماية مخزن المفاتيح. | string | "Deny" | لا |
kv_fw_network_subnet_ids | الشبكات الفرعية للشبكة الافتراضية المراد ربطها بحساب Cosmos DB (نقطة نهاية الخدمة). إذا تم إنشاء شبكة كجزء من الوحدة، فسيتم ملؤها تلقائيًا. | list(string) | null | لا |
kv_name | اسم خزينة المفاتيح المراد إنشاؤها (أسرار الحل). | string | "openaikv9000" | لا |
kv_sku | SKU الخاص بـ Key Vault المراد إنشاؤه. | string | "standard" | لا |
libre_app_allow_email_login | السماح بتسجيل الدخول عبر البريد الإلكتروني | bool | true | لا |
libre_app_allow_registration | السماح بالتسجيل | bool | true | لا |
libre_app_allow_social_login | السماح بتسجيل الدخول الاجتماعي | bool | false | لا |
libre_app_allow_social_registration | السماح بالتسجيل الاجتماعي | bool | false | لا |
libre_app_allowed_ip_addresses | عناوين IP المسموح بها. تدوين CIDR الخاص بـ IP أو نطاق IP المراد مطابقته للسماح به. على سبيل المثال: 10.0.0.0/24 أو 192.168.10.1/32 | قائمة (كائن ({ | [ | لا |
libre_app_allowed_subnets | الشبكات الفرعية المسموح بها (افتراضيًا، يُسمح للشبكة الفرعية التي يتم نشر خدمة التطبيق فيها بالوصول بالفعل كأولوية 100). أضف أي إضافات هنا | قائمة (كائن ({ | [ | لا |
libre_app_az_oai_api_key | مفتاح Azure OpenAI API | string | null | لا |
libre_app_az_oai_api_version | إصدار Azure OpenAI API | string | "2023-07-01-preview" | لا |
libre_app_az_oai_dall3_api_version | إصدار Azure OpenAI DALL-E API | string | "2023-12-01-preview" | لا |
libre_app_az_oai_dall3_deployment_name | اسم نشر Azure OpenAI DALL-E | string | "dall-e-3" | لا |
libre_app_az_oai_instance_name | اسم مثيل Azure OpenAI | string | null | لا |
libre_app_az_oai_models | نماذج Azure OpenAI. على سبيل المثال "gpt-4-1106-معاينة،gpt-4،gpt-3.5-turbo،gpt-3.5-turbo-1106،gpt-4-vision-preview" | string | "gpt-4-1106-preview" | لا |
libre_app_az_oai_use_model_as_deployment_name | Azure OpenAI استخدم النموذج كاسم نشر | bool | true | لا |
libre_app_custom_domain_create | قم بإنشاء مجال مخصص وشهادة مُدارة لخدمة التطبيق. | bool | false | لا |
libre_app_custom_footer | أضف تذييلًا مخصصًا للتطبيق. | string | "Privately hosted chat app powered by Azure OpenAI and LibreChat." | لا |
libre_app_debug_console | قم بتمكين إخراج الخادم المطول في وحدة التحكم، على الرغم من أنه لا يوصى بذلك بسبب الإسهاب العالي. | bool | false | لا |
libre_app_debug_logging | يحتوي LibreChat على تسجيل مركزي مدمج في الواجهة الخلفية (api). يتم حفظ ملفات السجل في /api/logs. يتم حفظ سجلات الأخطاء بشكل افتراضي. يتم تمكين سجلات تصحيح الأخطاء بشكل افتراضي ولكن يمكن إيقاف تشغيلها إذا لم تكن ترغب في ذلك. | bool | false | لا |
libre_app_debug_plugins | تمكين وضع التصحيح للمكونات الإضافية لتطبيق Libre. | bool | false | لا |
libre_app_docker_image | صورة Docker التي سيتم استخدامها لخدمة التطبيق. | string | "ghcr.io/danny-avila/librechat-dev-api:latest" | لا |
libre_app_domain_client | للاستخدام محليًا، قم بتعيين DOMAIN_CLIENT وDOMAIN_SERVER على http://localhost:3080 (3080 هو المنفذ الذي تم تكوينه مسبقًا). عند النشر إلى مجال مخصص، قم بتعيين DOMAIN_CLIENT وDOMAIN_SERVER على عنوان URL الذي تم نشره، على سبيل المثال https://mydomain.example. com | string | "http://localhost:3080" | لا |
libre_app_domain_server | للاستخدام محليًا، قم بتعيين DOMAIN_CLIENT وDOMAIN_SERVER على http://localhost:3080 (3080 هو المنفذ الذي تم تكوينه مسبقًا). عند النشر إلى مجال مخصص، قم بتعيين DOMAIN_CLIENT وDOMAIN_SERVER على عنوان URL الذي تم نشره، على سبيل المثال https://mydomain.example. com | string | "http://localhost:3080" | لا |
libre_app_enable_meilisearch | تمكين ميليبحث | bool | false | لا |
libre_app_endpoints | نقاط النهاية واختيار النماذج. على سبيل المثال "openAI,azureOpenAI,bingAI,chatGPTBrowser,google,gptPlugins,anthropic" | string | "azureOpenAI" | لا |
libre_app_host | سوف يستمع الخادم إلى المضيف المحلي: 3080 افتراضيًا. يمكنك تغيير عنوان IP المستهدف كما تريد. إذا كنت تريد جعل هذا الخادم متاحًا خارجيًا، على سبيل المثال لمشاركة الخادم مع الآخرين أو الكشف عنه من حاوية Docker، فاضبط المضيف على 0.0.0.0 أو واجهة IP الخارجية الخاصة بك. | string | "0.0.0.0" | لا |
libre_app_jwt_refresh_secret | JWT سر التحديث | string | null | لا |
libre_app_jwt_secret | JWT سر | string | null | لا |
libre_app_mongo_uri | سلسلة اتصال MongoDB للاتصال بها. | string | null | لا |
libre_app_name | اسم خدمة تطبيق LibreChat. | string | "librechatapp9000" | لا |
libre_app_plugins_creds_iv | Libre App Plugins Creds IV | string | null | لا |
libre_app_plugins_creds_key | Libre App Plugins Creds Key | string | null | لا |
libre_app_port | المنفذ المضيف للاستماع عليه. | number | 3080 | لا |
libre_app_public_network_access_enabled | ما إذا كان الوصول إلى الشبكة العامة ممكّنًا أم لا. الافتراضيات false . | bool | true | لا |
libre_app_title | أضف عنوانًا مخصصًا للتطبيق. | string | "PrivateGPT" | لا |
libre_app_violations | تكوين للانتهاكات | هدف({ | { | لا |
libre_app_virtual_network_subnet_id | معرف الشبكة الفرعية، المستخدم للسماح بالوصول إلى خدمة التطبيقات (الأولوية 100)، على سبيل المثال cosmosdb وmeilisearch وما إلى ذلك. إذا تم إنشاء الشبكة كجزء من الوحدة، فسيتم ملؤها تلقائيًا إذا كانت القيمة "خالية". | string | null | لا |
librechat_app_custom_dns_zone_name | منطقة DNS المستخدمة لخدمة التطبيق. | string | "domain.com" | لا |
librechat_app_custom_domain_name | المجال المخصص لاستخدامه في خدمة التطبيق. | string | "privategpt" | لا |
موقع | منطقة Azure حيث سيتم استضافة الموارد. | string | "uksouth" | لا |
oai_account_name | اسم خدمة OpenAI. | string | "az-openai-account" | لا |
oai_custom_subdomain_name | اسم النطاق الفرعي المستخدم للمصادقة المستندة إلى الرمز المميز. يؤدي تغيير هذا إلى إنشاء مورد جديد. (عادة نفس اسم الحساب) | string | "demo-account" | لا |
oai_customer_managed_key | اكتب = كائن({ key_vault_key_id = (مطلوب) معرف مفتاح Key Vault الذي يجب استخدامه لتشفير البيانات في حساب OpenAI هذا. الهوية_العميل_id = (اختياري) معرف العميل للهوية المخصصة للمستخدم الذي لديه حق الوصول إلى المفتاح. يجب تحديد هذه الخاصية فقط عندما تكون هناك هويات متعددة مرتبطة بحساب OpenAI. }) | هدف({ | null | لا |
oai_dynamic_throttling_enabled | ما إذا كان تم تمكين الاختناق الديناميكي أم لا. الافتراضيات إلى true . | bool | true | لا |
oai_fqdns | قائمة FQDNs التي سيتم استخدامها للمصادقة المستندة إلى الرمز المميز. يؤدي تغيير هذا إلى إنشاء مورد جديد. | list(string) | [] | لا |
oai_identity | اكتب = كائن({ type = (مطلوب) نوع الهوية. القيم المحتملة هي SystemAssigned و UserAssigned و SystemAssigned, UserAssigned .identity_ids = (اختياري) يحدد قائمة بمعرفات الهوية المُدارة التي تم تعيينها من قبل المستخدم ليتم تعيينها لحساب OpenAI هذا. }) | هدف({ | { | لا |
oai_local_auth_enabled | ما إذا كانت طرق المصادقة المحلية ممكّنة للحساب المعرفي. الافتراضيات إلى true . | bool | true | لا |
oai_model_deployment | اكتب = قائمة (كائن ({ Deployment_id = (مطلوب) اسم Model Deployment حساب الخدمات المعرفية. يؤدي تغيير هذا إلى إنشاء مورد جديد.اسم النموذج = { model_format = (مطلوب) تنسيق نموذج نشر حساب الخدمات المعرفية. يؤدي تغيير هذا إلى إنشاء مورد جديد. القيمة المحتملة هي OpenAI. model_name = (مطلوب) اسم نموذج نشر حساب الخدمات المعرفية. يؤدي تغيير هذا إلى إنشاء مورد جديد. model_version = (مطلوب) إصدار نموذج نشر حساب الخدمات المعرفية. } رمز التخزين التعريفي = { sku_name = (مطلوب) اسم SKU. تتضمن القيم المحتملة Standard وGlobalBatch وGlobalStandard وProvisionedManaged. sku_tier = (اختياري) القيم المحتملة هي Free وBasic وStandard وPremium وEnterprise. يؤدي تغيير هذا إلى إنشاء مورد جديد. sku_size = (اختياري) حجم SKU. عندما يكون حقل الاسم عبارة عن مزيج من الطبقة وبعض القيم الأخرى، فسيكون هذا هو الرمز المستقل. يؤدي تغيير هذا إلى إنشاء مورد جديد. sku_family = (اختياري) إذا كانت الخدمة تحتوي على أجيال مختلفة من الأجهزة، لنفس SKU، فيمكن التقاط ذلك هنا. يؤدي تغيير هذا إلى إنشاء مورد جديد. sku_capacity = (اختياري) الرموز المميزة لكل دقيقة (TPM). إذا كان SKU يدعم sku out/in، فيجب تضمين عدد صحيح للسعة. إذا لم يكن sku out/in ممكنًا للمورد، فقد يتم حذف ذلك. القيمة الافتراضية هي 1. يؤدي تغيير هذا إلى إنشاء مورد جديد. } rai_policy_name = (اختياري) اسم سياسة RAI. يؤدي تغيير هذا إلى إنشاء مورد جديد. })) | قائمة (كائن ({ | [] | لا |
oai_network_acls | اكتب = مجموعة (كائن ({ default_action = (مطلوب) الإجراء الافتراضي الذي سيتم استخدامه عند عدم تطابق أي قواعد من ip_rules / virtual_network_rules. القيم المحتملة هي Allow Deny .ip_rules = (اختياري) واحد أو أكثر من عناوين IP، أو كتل CIDR التي يجب أن تكون قادرة على الوصول إلى الحساب المعرفي. Virtual_network_rules = اختياري(مجموعة(كائن({ subnet_id = (مطلوب) معرف الشبكة الفرعية التي يجب أن تكون قادرة على الوصول إلى حساب OpenAI. ignore_missing_vnet_service_endpoint = (اختياري) ما إذا كان سيتم تجاهل نقطة نهاية خدمة vnet المفقودة أم لا. الافتراضي إلى false .})))) })) | مجموعة (كائن ({ | null | لا |
oai_outbound_network_access_restricted | ما إذا كان الوصول إلى الشبكة الصادرة مقيدًا أم لا. الافتراضيات false . | bool | false | لا |
oai_public_network_access_enabled | ما إذا كان الوصول إلى الشبكة العامة ممكّنًا أم لا. الافتراضيات false . | bool | true | لا |
oai_sku_name | اسم SKU لخدمة OpenAI. | string | "S0" | لا |
oai_storage | اكتب = قائمة (كائن ({ Storage_account_id = (مطلوب) معرف المورد الكامل لمورد Microsoft.Storage. الهوية_العميل_id = (اختياري) معرف العميل للهوية المُدارة المرتبطة بمورد التخزين. })) | قائمة (كائن ({ | [] | لا |
Resources_group_name | اسم مجموعة الموارد لإنشاء خدمة OpenAI / أو المكان الذي تتم فيه استضافة خدمة موجودة. | string | غير متوفر | نعم |
subnet_config | قائمة بكائنات تكوين الشبكة الفرعية لإنشاء شبكات فرعية في الشبكة الافتراضية. | هدف({ | { | لا |
العلامات | خريطة لأزواج القيمة الأساسية المستخدمة لوضع علامة على الموارد التي تم إنشاؤها. | map(string) | {} | لا |
use_cosmosdb_free_tier | ما إذا كان سيتم تمكين الطبقة المجانية لحساب Cosmos DB. يجب أن يكون هذا خطأ إذا كان هناك مثيل آخر يستخدم الطبقة المجانية بالفعل. | bool | true | لا |
Virtual_network_name | اسم الشبكة الافتراضية حيث يتم إرفاق الموارد. | string | "openai-vnet-9000" | لا |
vnet_address_space | قيمة مساحة العنوان للشبكة الافتراضية. | list(string) | [ | لا |
اسم | وصف |
---|---|
app_service_default_hostname | اسم المضيف الافتراضي لخدمة التطبيق |
app_service_id | معرف خدمة التطبيق |
app_service_name | اسم خدمة التطبيق |
app_service_outbound_ip_addresses | عناوين IP الصادرة لخدمة التطبيق |
app_service_plan_id | معرف خطة خدمة التطبيق |
app_service_plan_name | اسم خطة خدمة التطبيق |
معرف_النشر_المعرفي | معرفات عمليات نشر نموذج الحساب المعرفي OpenAI |
معرفي_أسماء_النشر | أسماء عمليات نشر نموذج الحساب المعرفي OpenAI |
cosmosdb_account_endpoint | نقطة النهاية المستخدمة للاتصال بحساب Cosmos DB |
cosmosdb_account_id | معرف حساب Cosmos DB |
cosmosdb_account_name | اسم حساب Cosmos DB |
cosmosdb_account_primary_key | المفتاح الرئيسي الأساسي لحساب Cosmos DB |
cosmosdb_account_ Secondary_key | المفتاح الرئيسي الثانوي لحساب Cosmos DB |
key_vault_id | معرف مفتاح المدفن |
key_vault_name | اسم مفتاح المدفن |
key_vault_uri | معرف URI الخاص بـ Key Vault |
openai_endpoint | نقطة النهاية المستخدمة للاتصال بحساب الخدمة المعرفية. |
openai_primary_key | مفتاح الوصول الأساسي لحساب الخدمة المعرفية. |
openai_ Secondary_key | مفتاح الوصول الثانوي لحساب الخدمة المعرفية. |
openai_subdomain | النطاق الفرعي المستخدم للاتصال بحساب الخدمة المعرفية. |
معرف الشبكة الفرعية | معرف الشبكة الفرعية |
اسم الشبكة الفرعية | اسم الشبكة الفرعية |
virtual_network_id | معرف الشبكة الافتراضية |
Virtual_network_name | اسم الشبكة الافتراضية |