Je suis heureux d’annoncer que mon projet de déploiement automatisé de LibreChat sur AWS EC2 a été mis à jour pour corriger des problèmes liés aux changements récents dans la manière d’installer LibreChat, tout en supportant désormais la version v0.7.6. Cette mise à jour inclut également la possibilité de choisir entre les instances On-Demand et Spot, ainsi que des améliorations pour simplifier l’utilisation, même pour les débutants.
Quoi de neuf dans cette mise à jour ?
Support de la version v0.7.6 de LibreChat
Le projet clone directement le tag v0.7.6
de LibreChat, assurant que tous les déploiements utilisent une version validée et testée. Cela évite les surprises liées à des changements inattendus dans le dépôt principal.
Code mis à jour dans le script 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/
Gestion des instances On-Demand et Spot
J’ai ajouté une variable spot_enabled
dans Terraform qui permet de choisir dynamiquement si le déploiement utilise des instances Spot ou On-Demand. Par défaut, le mode On-Demand est activé pour offrir une expérience plus accessible aux débutants, évitant la nécessité de configurer des prix spot. Cela garantit que le projet est immédiatement fonctionnel pour tous.
Extrait mis à jour de 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
}
}
}
Extrait de variables.tf
:
variable "spot_enabled" {
description = "Active ou désactive l'utilisation du marché Spot"
type = bool
default = false
}
Mise à jour de la version Terraform
La version de Terraform utilisée dans le projet a été mise à jour pour passer de 1.5.7
à 1.10.3
. Cela garantit une compatibilité avec les dernières fonctionnalités et améliorations de Terraform.
# Version de l'image Docker Terraform
TERRAFORM_VERSION: hashicorp/terraform:1.10.3
Correctifs pour la configuration des modèles Mistral
La configuration de Mistral dans librechat.yaml
a été mise à jour pour prendre en charge les changements de format dans la dernière version. La clé API est toujours récupérée depuis AWS Systems Manager (SSM), tout comme pour les autres modèles, et les modèles par défaut incluent maintenant mistral-large-latest
.
Code mis à jour :
# 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
Ajout de fichiers README multilingues
Pour rendre le projet accessible à un plus grand nombre d’utilisateurs à travers le monde, j’ai utilisé mon script de traduction de fichiers Markdown basé sur l’IA, alimenté par le modèle GPT-4o, afin de générer des fichiers README dans plusieurs langues. Les langues supportées incluent l’anglais, l’allemand, l’espagnol, le japonais, le coréen et le chinois.
Fichiers ajoutés :
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
Mise à jour de la configuration Nginx
La configuration Nginx pour SSL, fournie par défaut, était dépréciée dans cette version. J’ai corrigé cela en adaptant les directives et en ajoutant le support des certificats SSL avec des commandes sed
pour garantir la compatibilité.
Code mis à jour :
# 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
Améliorations Terraform
- Changement du type d’instance par défaut de
t3a.micro
àt3a.small
pour une meilleure performance. - Mise à jour des prix spot dans
variables.tf
pour refléter les coûts actuels.
Extrait mis à jour de variables.tf
:
variable "spot_max_price" {
default = {
"t3a.large" = "0.0376"
"t3a.small" = "0.0095"
"t3a.medium" = "0.01940"
"t3a.micro" = "0.006"
}
}
Pourquoi cette mise à jour est importante
En fixant la version de LibreChat, en corrigeant les problèmes liés aux configurations Nginx et Mistral, et en offrant la possibilité de choisir entre les instances On-Demand et Spot, cette mise à jour renforce la fiabilité et la flexibilité du projet. Avec le mode On-Demand par défaut, même les débutants peuvent déployer LibreChat sans prérequis complexes.
Récapitulatif
- Support de la version v0.7.6 de LibreChat : Clone du bon tag pour éviter les problèmes liés à des changements non contrôlés.
- Gestion des instances : Choix entre On-Demand et Spot, avec On-Demand par défaut pour simplifier l’expérience utilisateur.
- Version Terraform : Mise à jour vers la version 1.10.3 pour profiter des dernières améliorations.
- Mistral AI : Gestion automatique des clés API et des modèles, adaptée au nouveau format.
- README multilingues : Documentation accessible en plusieurs langues.
- Nginx : Configuration SSL corrigée et adaptée aux nouvelles directives.
- Terraform : Ajustements pour des performances améliorées et des coûts précis.
Découvrez le projet complet
Vous pouvez consulter et utiliser ce projet sur le dépôt GitLab.
N’hésitez pas à partager vos retours ou à contribuer au projet !