يسعدني أن أعلن أن مشروعي للنشر الآلي لـ 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.mdREADME-en-gpt-4o.mdREADME-es-gpt-4o.mdREADME-ja-gpt-4o.mdREADME-ko-gpt-4o.mdREADME-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.
لا تتردد في مشاركة ملاحظاتك أو المساهمة في المشروع!
تمت ترجمة هذا المستند من النسخة الفرنسية إلى اللغة العربية باستخدام نموذج gpt-5-mini. لمزيد من المعلومات حول عملية الترجمة، راجع https://gitlab.com/jls42/ai-powered-markdown-translator