Sono lieto di annunciare che il mio progetto di deployment automatizzato di LibreChat su AWS EC2 è stato aggiornato per correggere problemi legati ai recenti cambiamenti nel modo di installare LibreChat, supportando ora la versione v0.7.6. Questo aggiornamento include anche la possibilità di scegliere tra istanze On-Demand e Spot, oltre a miglioramenti per semplificarne l’utilizzo, anche per i principianti.

Cosa c’è di nuovo in questo aggiornamento?

Supporto della versione v0.7.6 di LibreChat

Il progetto clona direttamente il tag v0.7.6 di LibreChat, assicurando che tutti i deployment utilizzino una versione validata e testata. Ciò evita sorprese legate a cambiamenti inattesi nel repository principale.

Codice aggiornato nello 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/

Gestione delle istanze On-Demand e Spot

Ho aggiunto una variabile spot_enabled in Terraform che permette di scegliere dinamicamente se il deployment utilizza istanze Spot o On-Demand. Per default, la modalità On-Demand è attivata per offrire un’esperienza più accessibile ai principianti, evitando la necessità di configurare i prezzi spot. Ciò garantisce che il progetto sia immediatamente funzionante per tutti.

Estratto aggiornato di 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
    }
  }
}

Estratto di variables.tf:

variable "spot_enabled" {
  description = "Active ou désactive l'utilisation du marché Spot"
  type        = bool
  default     = false
}

Aggiornamento della versione di Terraform

La versione di Terraform utilizzata nel progetto è stata aggiornata passando dalla 1.5.7 alla 1.10.3. Ciò garantisce compatibilità con le ultime funzionalità e miglioramenti di Terraform.

# Version de l'image Docker Terraform
TERRAFORM_VERSION: hashicorp/terraform:1.10.3

Correzioni per la configurazione dei modelli Mistral

La configurazione di Mistral in librechat.yaml è stata aggiornata per supportare i cambiamenti di formato nell’ultima versione. La chiave API è ancora recuperata da AWS Systems Manager (SSM), così come per gli altri modelli, e i modelli di default includono ora mistral-large-latest.

Codice aggiornato:

# 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

Aggiunta di file README multilingue

Per rendere il progetto accessibile a un maggior numero di utenti in tutto il mondo, ho utilizzato il mio script di traduzione di file Markdown basato su IA, alimentato dal modello GPT-4o, per generare file README in diverse lingue. Le lingue supportate includono inglese, tedesco, spagnolo, giapponese, coreano e cinese.

File aggiunti:

  • 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

Aggiornamento della configurazione Nginx

La configurazione Nginx per SSL, fornita di default, era deprecata in questa versione. Ho corretto questo adattando le direttive e aggiungendo il supporto dei certificati SSL con comandi sed per garantire la compatibilità.

Codice aggiornato:

# 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

Miglioramenti Terraform

  • Cambio del tipo di istanza predefinito da t3a.micro a t3a.small per una migliore performance.
  • Aggiornamento dei prezzi spot in variables.tf per riflettere i costi attuali.

Estratto aggiornato di variables.tf:

variable "spot_max_price" {
  default = {
    "t3a.large"  = "0.0376"
    "t3a.small"  = "0.0095"
    "t3a.medium" = "0.01940"
    "t3a.micro"  = "0.006"
  }
}

Perché questo aggiornamento è importante

Fissando la versione di LibreChat, correggendo i problemi legati alle configurazioni Nginx e Mistral, e offrendo la possibilità di scegliere tra istanze On-Demand e Spot, questo aggiornamento rafforza l’affidabilità e la flessibilità del progetto. Con la modalità On-Demand di default, anche i principianti possono deployare LibreChat senza prerequisiti complessi.

  • Supporto della versione v0.7.6 di LibreChat: Clonazione del tag corretto per evitare problemi legati a cambiamenti non controllati.
  • Gestione delle istanze: Scelta tra On-Demand e Spot, con On-Demand di default per semplificare l’esperienza utente.
  • Versione Terraform: Aggiornamento alla versione 1.10.3 per beneficiare degli ultimi miglioramenti.
  • Mistral AI: Gestione automatica delle chiavi API e dei modelli, adattata al nuovo formato.
  • README multilingue: Documentazione accessibile in diverse lingue.
  • Nginx: Configurazione SSL corretta e adattata alle nuove direttive.
  • Terraform: Regolazioni per prestazioni migliorate e costi accurati.

Scopri il progetto completo

Puoi consultare e utilizzare questo progetto sul repository GitLab.

Non esitare a condividere i tuoi feedback o a contribuire al progetto!

Questo documento è stato tradotto dalla versione fr alla lingua it utilizzando il modello o1-preview. Per ulteriori informazioni sul processo di traduzione, consultare https://gitlab.com/jls42/ai-powered-markdown-translator