搜索

infrastructureblogia

更新:LibreChat v0.7.6 版本并支持在 AWS EC2 上自动部署

更新:LibreChat v0.7.6 版本并支持在 AWS EC2 上自动部署

我很高兴地宣布,我的在 LibreChat 自动部署到 AWS EC2 的项目已更新,用以修复与近期安装方式变化相关的问题,同时现在支持 v0.7.6 版本。本次更新还增加了在按需实例(On-Demand)和 Spot 实例之间选择的功能,并对使用流程进行了简化改进,即使是初学者也能更容易上手。

此次更新有哪些新内容?

支持 LibreChat v0.7.6 版本

本项目直接克隆 LibreChat 的标签 v0.7.6,确保所有部署都使用经验证和测试过的版本。这可以避免主仓库中意外变更带来的问题。

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

按需实例(On-Demand)与 Spot 实例的管理

我在 Terraform 中新增了变量 spot_enabled,用于动态选择部署时使用 Spot 实例还是按需实例。默认启用按需模式,以便为初学者提供更友好的体验,避免必须配置 spot 价格的复杂性。这样可以保证项目对所有人来说都能立即可用。

更新的 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
    }
  }
}

variables.tf 的片段:

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

Terraform 版本更新

项目中使用的 Terraform 版本已从 1.5.7 更新为 1.10.3。这能保证与 Terraform 的最新功能和改进兼容。

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

修复 Mistral 模型的配置

librechat.yaml 中的 Mistral 配置已更新,以支持最新版本中格式的变化。API 密钥仍然从 AWS Systems Manager (SSM) 获取,与其它模型的做法一致,默认模型现在包含 mistral-large-latest

更新的代码:

# 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

添加多语言 README 文件

为了让更多全球用户能够使用该项目,我使用了我的 基于 AI 的 Markdown 文件翻译脚本,由 GPT-4o 模型驱动,生成了多语言的 README 文件。支持的语言包括英语、德语、西班牙语、日语、韩语和中文。

已添加的文件:

  • 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

更新 Nginx 配置

默认提供的用于 SSL 的 Nginx 配置在此版本中已被弃用。我通过调整指令并添加使用 sed 的证书支持来修复此问题,以确保兼容性。

更新的代码:

# 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 改进

  • 将默认实例类型从 t3a.micro 更改为 t3a.small 以提升性能。
  • 更新 variables.tf 中的 Spot 价格以反映当前成本。

更新的 variables.tf 片段:

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

为什么这个更新很重要

通过固定 LibreChat 的版本、修复与 Nginx 和 Mistral 配置相关的问题,并提供按需实例与 Spot 实例之间的选择,这次更新增强了项目的可靠性和灵活性。默认启用按需模式后,即使是初学者也能在没有复杂前置条件的情况下部署 LibreChat。

概要

  • 支持 LibreChat v0.7.6:克隆正确的标签以避免因未受控变更带来的问题。
  • 实例管理:可在按需与 Spot 之间选择,默认启用按需以简化用户体验。
  • Terraform 版本:已更新到 1.10.3 以利用最新改进。
  • Mistral AI:自动管理 API 密钥与模型,适配新格式。
  • 多语言 README:文档支持多种语言,便于更多用户使用。
  • Nginx:SSL 配置已修正并适配新指令。
  • Terraform:针对性能和成本做出调整。

查看完整项目

你可以在该 GitLab 仓库 中查看并使用此项目。

欢迎分享你的反馈或为该项目贡献!

本文件已使用模型 gpt-5-mini 将法语(fr)版本翻译为中文(zh)。有关翻译过程的更多信息,请参见 https://gitlab.com/jls42/ai-powered-markdown-translator