Latitude-LLM自托管部署完全指南:在生产环境中运行您的AI平台
Latitude-LLM是一款开源的提示工程平台,可帮助您构建、评估和优化AI提示。本指南将详细介绍如何在生产环境中自托管部署Latitude-LLM,让您拥有一个功能完备的AI平台。## 基础设施组件在开始部署之前,了解Latitude-LLM的基础设施组件至关重要。一个典型的生产部署包括以下关键服务:1. **Web应用**:主要的Next.js前端(例如`app`服务)2. *
Latitude-LLM自托管部署完全指南:在生产环境中运行您的AI平台
Latitude-LLM是一款开源的提示工程平台,可帮助您构建、评估和优化AI提示。本指南将详细介绍如何在生产环境中自托管部署Latitude-LLM,让您拥有一个功能完备的AI平台。
基础设施组件
在开始部署之前,了解Latitude-LLM的基础设施组件至关重要。一个典型的生产部署包括以下关键服务:
- Web应用:主要的Next.js前端(例如
app服务) - API网关:处理传入的API请求(例如
gateway服务) - 工作节点:处理后台任务,如评估和数据集生成(例如
worker服务) - WebSockets:管理实时连接(例如
websockets服务) - 数据库:PostgreSQL用于存储持久数据
- 缓存/队列:Redis用于缓存和消息队列
- 反向代理/负载均衡器:(如Traefik、Nginx、Caddy、云负载均衡器)处理传入流量、SSL终止和服务路由
- 对象存储(推荐):S3兼容存储,用于上传的数据集或图像等文件
Latitude-LLM架构示意图,展示了Orchestrator如何协调多个LLM调用并将结果合成输出
安装方法
虽然可以在单台机器上使用docker compose运行Latitude,但生产部署通常受益于更健壮的方法:
Docker Compose(单服务器)
- 优点:对于小型部署或初始测试,设置简单
- 缺点:可扩展性和容错能力有限
- 设置:按照Docker Compose说明操作,确保
.env文件中配置了生产就绪的设置(强密码、S3存储、通过Traefik或其他代理的正确域名/SSL设置)
# 确保.env为生产环境配置
git clone https://gitcode.com/gh_mirrors/la/latitude-llm
cd latitude-llm
cp .env.example .env
# 编辑.env文件,设置生产环境值(数据库凭据、S3、Traefik电子邮件、域名等)
docker network create web # 如果使用Traefik默认配置
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
注意:我们只提供amd64镜像,如果您使用的是搭载Apple Silicon的Mac OS,需要启用amd64模拟并下载amd64镜像。
容器编排(Kubernetes、ECS等)
- 优点:可扩展性、高可用性、自动化管理
- 缺点:初始设置较为复杂
- 设置:需要为每个Latitude服务(web、gateway、worker、websockets)创建部署清单(如Kubernetes YAML、ECS任务定义)。需要单独管理数据库和Redis实例(如使用托管云服务如RDS/ElastiCache或在编排器内部署)
Helm Chart(OCI)
图表通过工作流.github/workflows/publish-helm-chart.yml自动发布到GitHub容器注册表,标签匹配helm-chart-v*。安装命令如下:
helm install latitude oci://ghcr.io/<owner>/latitude \
--version <version> \
-n latitude --create-namespace \
-f charts/latitude/values.yaml \
-f charts/latitude/values.secrets.yaml
生产环境配置
无论采用哪种方法,都需确保正确配置以下内容:
.env文件:设置强POSTGRES_PASSWORD,配置APP_DOMAIN和APP_URL,设置MAIL_TRANSPORT(如SMTP、Mailgun)并提供有效凭据,配置DRIVE_DISK(推荐s3)- 存储:使用S3兼容的对象存储(
DRIVE_DISK=s3)以实现可扩展性和持久性。安全配置存储桶名称和IAM角色或访问密钥 - 数据库和Redis:使用托管服务(RDS、ElastiCache、Memorystore)或确保自托管实例针对性能、备份和安全性进行了适当配置
- Latitude分析:我们收集匿名使用数据以改进产品。您可以通过在
.env文件中设置OPT_OUT_ANALYTICS=true来选择退出 - 反向代理/SSL:配置反向代理(Traefik、Nginx等)以处理SSL终止(如使用Let's Encrypt)并将流量正确路由到Latitude服务
- 资源分配:确保每个服务有足够的CPU、内存和磁盘空间,尤其是数据库和工作节点
连接提供程序API密钥
在自托管设置中,Latitude需要访问您的AI提供程序API密钥(OpenAI、Anthropic等)才能正常运行。
- 配置方法:将这些密钥安全地添加到Latitude服务(特别是网关以及可能的工作节点/API)运行的环境中
- Docker Compose:将它们添加到
.env文件中(例如OPENAI_API_KEY=sk-...) - Kubernetes:将它们存储为Kubernetes Secrets,并作为环境变量挂载到部署中
- ECS:使用AWS Secrets Manager或Parameter Store与任务定义集成
- Docker Compose:将它们添加到
- Latitude UI:一旦在环境中配置,您可能仍需要在Latitude管理UI(设置>提供程序)中"注册"提供程序,但如果密钥在环境中可用,通常不需要直接将密钥粘贴到UI中
扩展和更新
- 扩展:使用编排器,您可以通过增加副本数量(特别是
web、gateway、worker、websockets)来水平扩展服务。垂直扩展数据库和Redis资源,或使用可扩展的托管服务 - 更新:从Latitude GitHub容器注册表拉取最新的官方Docker镜像(或从最新源代码构建自己的镜像)并更新部署(例如
docker compose pull && docker compose up -d、kubectl rollout restart deployment、更新ECS服务) - 迁移:确保数据库迁移在启动时自动运行(默认
docker-compose.yml包含迁移服务)或在更新应用服务之前手动运行(cd packages/core && pnpm db:migrate)
Latitude-LLM实验结果界面,展示了提示性能指标和评估结果
安全和备份
- 安全:限制对数据库和Redis端口的访问,使用强密码,保持依赖项更新,配置防火墙规则,保护API密钥和机密
- 备份:为PostgreSQL数据库实施定期备份。如果使用本地存储(
DRIVE_DISK=local),确保存储卷已备份
监控和日志记录
- 日志记录:配置Docker日志驱动程序或编排器日志记录,以聚合所有服务(web、gateway、worker等)的日志
- 监控:使用Prometheus/Grafana、Datadog或云提供商监控服务等工具跟踪资源使用情况(CPU、内存)、错误率、请求延迟和队列长度
- 健康检查:在负载均衡器或编排器中配置健康检查端点,以监控服务可用性
- 可选集成:在
.env中配置Sentry(SENTRY_DSN)或PostHog以增强错误跟踪和分析
自托管MCP集成
如果使用通过MCP的第三方集成,您还需要在基础设施内部署和管理这些MCP服务器。
总结
通过本指南,您应该已经了解了如何在生产环境中自托管部署Latitude-LLM。无论您选择Docker Compose、Kubernetes还是其他部署方法,关键是确保正确配置安全设置、存储和监控,以确保系统的稳定运行。
Latitude-LLM提供了强大的提示工程能力,自托管部署让您可以完全控制您的AI平台,保护敏感数据并根据需要定制系统。现在,您可以开始构建、评估和优化您的AI提示,为您的应用程序提供强大的语言模型能力。
祝您部署顺利!如有任何问题,请查阅官方文档或社区支持资源。
更多推荐




所有评论(0)