Estoy feliz de anunciar que mi proyecto de despliegue automatizado de LibreChat en AWS EC2 ha sido actualizado para corregir problemas relacionados con los cambios recientes en la forma de instalar LibreChat, y ahora soporta la versión v0.7.6. Esta actualización incluye también la posibilidad de elegir entre instancias On-Demand y Spot, así como mejoras para simplificar su uso, incluso para principiantes.
¿Qué hay de nuevo en esta actualización?
Soporte de la versión v0.7.6 de LibreChat
El proyecto clona directamente la etiqueta v0.7.6
de LibreChat, asegurando que todos los despliegues utilicen una versión validada y probada. Esto evita sorpresas relacionadas con cambios inesperados en el repositorio principal.
Código actualizado en el 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/
Gestión de instancias On-Demand y Spot
He añadido una variable spot_enabled
en Terraform que permite elegir dinámicamente si el despliegue utiliza instancias Spot u On-Demand. Por defecto, el modo On-Demand está activado para ofrecer una experiencia más accesible a los principiantes, evitando la necesidad de configurar precios spot. Esto garantiza que el proyecto sea inmediatamente funcional para todos.
Extracto actualizado 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
}
}
}
Extracto de variables.tf
:
variable "spot_enabled" {
description = "Active ou désactive l'utilisation du marché Spot"
type = bool
default = false
}
Actualización de la versión de Terraform
La versión de Terraform utilizada en el proyecto ha sido actualizada de 1.5.7
a 1.10.3
. Esto garantiza compatibilidad con las últimas funcionalidades y mejoras de Terraform.
# Version de l'image Docker Terraform
TERRAFORM_VERSION: hashicorp/terraform:1.10.3
Correcciones para la configuración de modelos Mistral
La configuración de Mistral en librechat.yaml
ha sido actualizada para soportar los cambios de formato en la última versión. La clave API sigue siendo obtenida desde AWS Systems Manager (SSM), al igual que para los otros modelos, y los modelos por defecto ahora incluyen mistral-large-latest
.
Código actualizado:
# 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
Adición de archivos README multilingües
Para hacer el proyecto accesible a un mayor número de usuarios en todo el mundo, he utilizado mi script de traducción de archivos Markdown basado en IA, alimentado por el modelo GPT-4o, para generar archivos README en varios idiomas. Los idiomas soportados incluyen inglés, alemán, español, japonés, coreano y chino.
Archivos añadidos:
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
Actualización de la configuración de Nginx
La configuración de Nginx para SSL, proporcionada por defecto, estaba obsoleta en esta versión. He corregido esto adaptando las directivas y añadiendo soporte para certificados SSL con comandos sed
para garantizar la compatibilidad.
Código actualizado:
# 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
Mejoras en Terraform
- Cambio del tipo de instancia por defecto de
t3a.micro
at3a.small
para un mejor rendimiento. - Actualización de los precios spot en
variables.tf
para reflejar los costos actuales.
Extracto actualizado de variables.tf
:
variable "spot_max_price" {
default = {
"t3a.large" = "0.0376"
"t3a.small" = "0.0095"
"t3a.medium" = "0.01940"
"t3a.micro" = "0.006"
}
}
Por qué esta actualización es importante
Al fijar la versión de LibreChat, corregir los problemas relacionados con las configuraciones de Nginx y Mistral, y ofrecer la posibilidad de elegir entre instancias On-Demand y Spot, esta actualización refuerza la fiabilidad y flexibilidad del proyecto. Con el modo On-Demand por defecto, incluso los principiantes pueden desplegar LibreChat sin requisitos complejos.
Resumen
- Soporte de la versión v0.7.6 de LibreChat: Clonación de la etiqueta correcta para evitar problemas relacionados con cambios no controlados.
- Gestión de instancias: Elección entre On-Demand y Spot, con On-Demand por defecto para simplificar la experiencia del usuario.
- Versión de Terraform: Actualización a la versión 1.10.3 para aprovechar las últimas mejoras.
- Mistral AI: Gestión automática de claves API y modelos, adaptada al nuevo formato.
- README multilingües: Documentación accesible en varios idiomas.
- Nginx: Configuración SSL corregida y adaptada a las nuevas directivas.
- Terraform: Ajustes para mejorar el rendimiento y reflejar costos precisos.
Descubre el proyecto completo
Puedes consultar y utilizar este proyecto en el repositorio de GitLab.
¡No dudes en compartir tus comentarios o contribuir al proyecto!
Este documento ha sido traducido de la versión fr a la lengua es utilizando el modelo o1-preview. Para más información sobre el proceso de traducción, consulte https://gitlab.com/jls42/ai-powered-markdown-translator