أنا سعيد بالإعلان عن أن مشروعي للنشر التلقائي لـ LibreChat على AWS EC2 قد تم تحديثه لتصحيح مشاكل تتعلق بالتغييرات الأخيرة في طريقة تثبيت LibreChat، مع دعم الإصدار v0.7.6 الآن. يتضمن هذا التحديث أيضًا إمكانية الاختيار بين مثيلات On-Demand و Spot، بالإضافة إلى تحسينات لتبسيط الاستخدام، حتى للمبتدئين.
ما الجديد في هذا التحديث؟
دعم الإصدار v0.7.6 من LibreChat
يقوم المشروع باستنساخ العلامة v0.7.6
من LibreChat مباشرةً، مما يضمن أن جميع عمليات النشر تستخدم إصدارًا معتمدًا ومختبرًا. هذا يتجنب المفاجآت المتعلقة بالتغييرات غير المتوقعة في المستودع الرئيسي.
تم تحديث الكود في سكريبت User-Data:
# Clone le dépôt LibreChat avec uniquement le tag v0.7.6
git clone --branch v0.7.6 --depth 1 https://github.com/danny-avila/LibreChat.git
cd LibreChat/
إدارة المثيلات On-Demand و Spot
لقد أضفت متغيرًا باسم spot_enabled
في Terraform يسمح باختيار ديناميكيًا ما إذا كان النشر يستخدم مثيلات Spot أو On-Demand. بشكل افتراضي، يتم تفعيل وضع On-Demand لتوفير تجربة أكثر سهولة للمبتدئين، متجنبًا الحاجة إلى إعداد أسعار Spot. هذا يضمن أن المشروع يعمل فورًا للجميع.
مقتطف محدث من ec2.tf
:
# Bloc dynamique pour conditionner les options du marché Spot
dynamic "instance_market_options" {
for_each = var.spot_enabled ? [1] : [] # Si spot_enabled est true, le bloc est créé
content {
market_type = "spot"
spot_options {
max_price = var.spot_max_price[var.instance_type]
instance_interruption_behavior = var.spot_request_type == "persistent" ? "stop" : null
spot_instance_type = var.spot_request_type
}
}
}
مقتطف من variables.tf
:
variable "spot_enabled" {
description = "Active ou désactive l'utilisation du marché Spot"
type = bool
default = false
}
تحديث إصدار Terraform
تم تحديث إصدار Terraform المستخدم في المشروع من 1.5.7
إلى 1.10.3
. هذا يضمن التوافق مع أحدث الميزات والتحسينات في Terraform.
# Version de l'image Docker Terraform
TERRAFORM_VERSION: hashicorp/terraform:1.10.3
إصلاحات لتكوين نماذج Mistral
تم تحديث تكوين Mistral في librechat.yaml
لدعم تغييرات التنسيق في الإصدار الأخير. لا تزال مفتاح الـAPI تُسترجع من AWS Systems Manager (SSM)، تمامًا مثل النماذج الأخرى، والنماذج الافتراضية تشمل الآن mistral-large-latest
.
الكود المحدث:
# Remplace la ligne contenant apiKey: '${MISTRAL_API_KEY}' par la clé réelle dans librechat.yaml
sed -i "s|apiKey: '\${MISTRAL_API_KEY}'|apiKey: '${MISTRAL_API_KEY}'|" librechat.yaml
# Modèles par défaut pour Mistral
sed -i '/- name:.*Mistral/,/default:/ s|default:.*|default: [\'mistral-tiny\', \'mistral-small\', \'mistral-medium\', \'mistral-large-latest\']|' librechat.yaml
إضافة ملفات README بعدة لغات
لتوفير إمكانية الوصول إلى المشروع لعدد أكبر من المستخدمين حول العالم، استخدمت سكريبت ترجمة ملفات Markdown المدعوم بالذكاء الاصطناعي الخاص بي، والمشغل بواسطة نموذج GPT-4o، لتوليد ملفات README بعدة لغات. اللغات المدعومة تشمل الإنجليزية، الألمانية، الإسبانية، اليابانية، الكورية، والصينية.
الملفات المضافة:
README-de-gpt-4o.md
README-en-gpt-4o.md
README-es-gpt-4o.md
README-ja-gpt-4o.md
README-ko-gpt-4o.md
README-zh-gpt-4o.md
تحديث تكوين Nginx
كانت تكوين Nginx للـSSL، المقدمة افتراضيًا، مهملة في هذا الإصدار. لقد قمت بتصحيح ذلك من خلال تعديل التوجيهات وإضافة دعم لشهادات SSL باستخدام أوامر sed
لضمان التوافق.
الكود المحدث:
# Monter les certificats SSL dans le fichier deploy-compose.yml
sed -i '/- .\/client\/nginx.conf:\/etc\/nginx\/conf.d\/default.conf/a \ - \/etc\/nginx\/ssl:\/etc\/nginx\/ssl' deploy-compose.yml
# Corrige les directives dans nginx.conf pour la version récente de Nginx
sed -i '/listen 443 ssl;/!s/listen 443 ssl;/listen 443 ssl http2;/' client/nginx.conf
sed -i '/listen \[::\]:443 ssl;/!s/listen \[::\]:443 ssl;/listen [::]:443 ssl http2;/' client/nginx.conf
# Corriger les erreurs de commentaire sur les URLs
sed -i 's|https://docs.nginx.com/nginx/admin-guide/web-server/compression/|# https://docs.nginx.com/nginx/admin-guide/web-server/compression/|' client/nginx.conf
sed -i 's|https://docs.nginx.com/nginx/admin-guide/web-server/compression/|# &|' client/nginx.conf
تحسينات Terraform
- تغيير نوع المثيل الافتراضي من
t3a.micro
إلىt3a.small
لأداء أفضل. - تحديث أسعار Spot في
variables.tf
لتعكس التكاليف الحالية.
مقتطف محدث من variables.tf
:
variable "spot_max_price" {
default = {
"t3a.large" = "0.0376"
"t3a.small" = "0.0095"
"t3a.medium" = "0.01940"
"t3a.micro" = "0.006"
}
}
لماذا هذا التحديث مهم
من خلال تثبيت إصدار LibreChat، وتصحيح المشاكل المتعلقة بتكوينات Nginx و Mistral، وتوفير إمكانية الاختيار بين مثيلات On-Demand و Spot، فإن هذا التحديث يعزز من موثوقية ومرونة المشروع. مع تفعيل وضع On-Demand افتراضيًا، يمكن حتى للمبتدئين نشر LibreChat بدون متطلبات مسبقة معقدة.
ملخص
- دعم الإصدار v0.7.6 من LibreChat: استنساخ العلامة الصحيحة لتجنب المشاكل المرتبطة بالتغييرات غير المسيطر عليها.
- إدارة المثيلات: اختيار بين On-Demand و Spot، مع تفعيل On-Demand افتراضيًا لتبسيط تجربة المستخدم.
- إصدار Terraform: تحديث إلى الإصدار 1.10.3 للاستفادة من أحدث التحسينات.
- Mistral AI: إدارة تلقائية لمفاتيح الـAPI والنماذج، متوافقة مع التنسيق الجديد.
- README متعدد اللغات: توثيق متاح بعدة لغات.
- Nginx: تم تصحيح تكوين SSL وتكييفه مع التوجيهات الجديدة.
- Terraform: تعديلات لأداء محسّن وتكاليف دقيقة.
اكتشف المشروع الكامل
يمكنك مراجعة واستخدام هذا المشروع على مستودع GitLab.
لا تتردد في مشاركة ملاحظاتك أو المساهمة في المشروع!
تمت ترجمة هذا المستند من الإصدار fr إلى اللغة ar باستخدام النموذج o1-preview. لمزيد من المعلومات حول عملية الترجمة، يرجى زيارة https://gitlab.com/jls42/ai-powered-markdown-translator