Pesquisar

infrastructureblogia

Atualização: LibreChat versão v0.7.6 com implantação automatizada na AWS EC2

Atualização: LibreChat versão v0.7.6 com implantação automatizada na AWS EC2

Tenho o prazer de anunciar que o meu projeto de implantação automatizada de LibreChat na AWS EC2 foi atualizado para corrigir problemas relacionados com as mudanças recentes na forma de instalar o LibreChat, ao mesmo tempo que passa a suportar a versão v0.7.6. Esta atualização inclui também a possibilidade de escolher entre instâncias On-Demand e Spot, bem como melhorias para simplificar o uso, mesmo para iniciantes.

O que há de novo nesta atualização?

Suporte à versão v0.7.6 do LibreChat

O projeto clona diretamente a tag v0.7.6 do LibreChat, garantindo que todas as implantações usem uma versão validada e testada. Isso evita surpresas relacionadas com mudanças inesperadas no repositório principal.

Código atualizado no 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/

Gestão de instâncias On-Demand e Spot

Adicionei uma variável spot_enabled no Terraform que permite escolher dinamicamente se a implantação usa instâncias Spot ou On-Demand. Por padrão, o modo On-Demand está ativado para oferecer uma experiência mais acessível aos iniciantes, evitando a necessidade de configurar preços spot. Isso garante que o projeto esteja imediatamente funcional para todos.

Trecho atualizado 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
    }
  }
}

Trecho de variables.tf :

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

Atualização da versão do Terraform

A versão do Terraform usada no projeto foi atualizada de 1.5.7 para 1.10.3. Isso garante compatibilidade com as funcionalidades e melhorias mais recentes do Terraform.

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

Correções na configuração dos modelos Mistral

A configuração do Mistral em librechat.yaml foi atualizada para suportar as mudanças de formato na versão mais recente. A chave da API continua a ser recuperada a partir do AWS Systems Manager (SSM), tal como para os outros modelos, e os modelos padrão agora incluem mistral-large-latest.

Código atualizado :

# 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

Adição de ficheiros README multilíngues

Para tornar o projeto acessível a um maior número de utilizadores pelo mundo, usei o meu script de tradução de arquivos Markdown baseado em IA, alimentado pelo modelo GPT-4o, para gerar ficheiros README em várias línguas. As línguas suportadas incluem inglês, alemão, espanhol, japonês, coreano e chinês.

Arquivos adicionados :

  • 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

Atualização da configuração do Nginx

A configuração do Nginx para SSL, fornecida por defeito, estava obsoleta nesta versão. Corrigi isso adaptando as diretivas e adicionando o suporte a certificados SSL com comandos sed para garantir compatibilidade.

Código atualizado :

# 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

Melhorias no Terraform

  • Alteração do tipo de instância por defeito de t3a.micro para t3a.small para melhor desempenho.
  • Atualização dos preços spot em variables.tf para refletir os custos atuais.

Trecho atualizado de variables.tf :

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

Porque é que esta atualização é importante

Ao fixar a versão do LibreChat, corrigir problemas relacionados com as configurações do Nginx e do Mistral, e oferecer a possibilidade de escolher entre instâncias On-Demand e Spot, esta atualização reforça a fiabilidade e a flexibilidade do projeto. Com o modo On-Demand por defeito, mesmo os iniciantes podem implantar o LibreChat sem pré-requisitos complexos.

Recapitulativo

  • Suporte à versão v0.7.6 do LibreChat : Clone da tag correta para evitar problemas relacionados com mudanças não controladas.
  • Gestão das instâncias : Escolha entre On-Demand e Spot, com On-Demand por defeito para simplificar a experiência do utilizador.
  • Versão do Terraform : Atualização para a versão 1.10.3 para beneficiar das melhorias mais recentes.
  • Mistral AI : Gestão automática das chaves de API e dos modelos, adaptada ao novo formato.
  • READMEs multilíngues : Documentação acessível em várias línguas.
  • Nginx : Configuração SSL corrigida e adaptada às novas diretivas.
  • Terraform : Ajustes para melhor desempenho e custos precisos.

Descubra o projeto completo

Pode consultar e usar este projeto no repositório GitLab.

Não hesite em partilhar os seus comentários ou em contribuir para o projeto!

Este documento foi traduzido da versão fr para a língua pt usando o modelo gpt-5-mini. Para mais informações sobre o processo de tradução, consulte https://gitlab.com/jls42/ai-powered-markdown-translator