Jag är glad att kunna meddela att mitt projekt för automatiserad distribution av LibreChat på AWS EC2 har uppdaterats för att åtgärda problem relaterade till de senaste ändringarna i hur man installerar LibreChat, samtidigt som det nu stöder version v0.7.6. Denna uppdatering inkluderar också möjligheten att välja mellan On-Demand- och Spot-instanser, samt förbättringar för att förenkla användningen, även för nybörjare.

Vad är nytt i denna uppdatering?

Stöd för version v0.7.6 av LibreChat

Projektet klonar direkt taggen v0.7.6 av LibreChat, vilket säkerställer att alla distributioner använder en validerad och testad version. Detta undviker överraskningar relaterade till oväntade förändringar i huvudförvaret.

Uppdaterad kod i User-Data-skriptet:

# 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/

Hantering av On-Demand- och Spot-instanser

Jag har lagt till en variabel spot_enabled i Terraform som gör det möjligt att dynamiskt välja om distributionen använder Spot- eller On-Demand-instanser. Som standard är On-Demand-läget aktiverat för att erbjuda en mer tillgänglig upplevelse för nybörjare, vilket undviker behovet av att konfigurera spot-priser. Detta säkerställer att projektet är omedelbart funktionellt för alla.

Uppdaterat utdrag från 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
    }
  }
}

Utdrag från variables.tf:

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

Uppdatering av Terraform-versionen

Terraform-versionen som används i projektet har uppdaterats från 1.5.7 till 1.10.3. Detta säkerställer kompatibilitet med de senaste funktionerna och förbättringarna i Terraform.

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

Korrigeringar för konfigurationen av Mistral-modeller

Konfigurationen av Mistral i librechat.yaml har uppdaterats för att stödja formatändringarna i den senaste versionen. API-nyckeln hämtas fortfarande från AWS Systems Manager (SSM), precis som för de andra modellerna, och standardmodellerna inkluderar nu mistral-large-latest.

Uppdaterad kod:

# 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

Tillägg av flerspråkiga README-filer

För att göra projektet tillgängligt för en större mängd användare runt om i världen har jag använt mitt AI-drivna script för översättning av Markdown-filer, drivet av GPT-4o-modellen, för att generera README-filer på flera språk. De språk som stöds inkluderar engelska, tyska, spanska, japanska, koreanska och kinesiska.

Tillagda filer:

  • 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

Uppdatering av Nginx-konfigurationen

Nginx-konfigurationen för SSL, som tillhandahölls som standard, var föråldrad i denna version. Jag har rättat till detta genom att anpassa direktiven och lägga till stöd för SSL-certifikat med sed-kommandon för att säkerställa kompatibilitet.

Uppdaterad kod:

# 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-förbättringar

  • Ändring av standardinstanstypen från t3a.micro till t3a.small för bättre prestanda.
  • Uppdatering av spot-priser i variables.tf för att återspegla aktuella kostnader.

Uppdaterat utdrag från variables.tf:

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

Varför denna uppdatering är viktig

Genom att låsa LibreChat-versionen, korrigera problem relaterade till Nginx- och Mistral-konfigurationer och erbjuda möjligheten att välja mellan On-Demand- och Spot-instanser, stärker denna uppdatering projektets tillförlitlighet och flexibilitet. Med On-Demand-läget som standard kan även nybörjare distribuera LibreChat utan komplexa förutsättningar.

Sammanfattning

  • Stöd för version v0.7.6 av LibreChat: Klonar rätt tagg för att undvika problem relaterade till okontrollerade förändringar.
  • Hantering av instanser: Val mellan On-Demand och Spot, med On-Demand som standard för att förenkla användarupplevelsen.
  • Terraform-version: Uppdaterad till version 1.10.3 för att dra nytta av de senaste förbättringarna.
  • Mistral AI: Automatisk hantering av API-nycklar och modeller, anpassad till det nya formatet.
  • Flerspråkiga README: Dokumentation tillgänglig på flera språk.
  • Nginx: SSL-konfiguration korrigerad och anpassad till de nya direktiven.
  • Terraform: Justeringar för förbättrad prestanda och exakta kostnader.

Utforska hela projektet

Du kan granska och använda detta projekt på GitLab-förvaret.

Tveka inte att dela dina synpunkter eller bidra till projektet!

Detta dokument har översatts från version fr till språket sv med hjälp av modellen o1-preview. För mer information om översättningsprocessen, se https://gitlab.com/jls42/ai-powered-markdown-translator