ELB+ECS低成本高可靠部署LiteLLM代理,实现messages和responses接口

举报
Xiao_Chuan 发表于 2026/07/27 14:39:25 2026/07/27
【摘要】 在多台ECS内以docker容器部署LiteLLM软件,为仅支持/chat/completions接口的模型代理支持/v1/messages和/v1/responses接口。再由ELB为多台ECS提供负载均衡能力,提升可靠性。

LiteLLM介绍

 

LiteLLM 是一个开源的大模型统一接口与网关,它的核心价值在于,让你能用一套标准化的 OpenAI API 格式,去调用全球超过 100 种不同的大语言模型

  • 作为统一的 API 接口 (Python SDK & 代理)
  • 作为企业级的 AI 网关 (治理与可观测性)

 详细介绍可以参考官方文档:https://docs.litellm.ai/docs?trk=public_post_comment-text

方案架构

在多台(成本考虑推荐2台)ECS内以docker容器部署LiteLLM软件,为仅支持/chat/completions接口的模型代理支持/v1/messages和/v1/responses接口。再由ELB为多台ECS提供负载均衡能力,提升可靠性。

 

总配置规格:

云服务

规格推荐

数量

实例推荐

ECS

不低于4U8G,系统盘不低于40GB

2

c7.xlarge.2 + 通用SSD 80GB

ELB

共享,EIP带宽不低于10Mbps

1

共享ELB

VPC

提前创建好,或复用已有VPC

1

NA

 注意:

1)该方案是成本最低的高可靠部署方案,未提供数据库、redis缓存、k8s集群管理等能力对接,如果需要这类部署,请参考官方指导:https://docs.litellm.ai/docs/proxy/deploy

2)上面的配置规格,请以实际业务需要配置,例如ECS规格、ELB的EIP带宽等。

3)后续命令全部采用root权限执行,未考虑普通用户账号。

部署教程

创建配置ECS

1、购买2台XXX规格的ECS,镜像推荐使用ubuntu 24.04。配套EIP用于从LiteLLM官方下载docker镜像和更新安装配套的依赖软件。

注意:

① 保证2台ECS在同一个VPC内

② 为可靠性考虑,2台ECS部署在不同的AZ内

③ 安全组添加策略,将100.125.0.0/16网段添加到入方向规则中,确保ELB可以对ECS中的LiteLLM做健康检测

④ 为简化部署,可以考虑先部署配置好一台ECS,基于该ECS创建私有镜像,另一台再基于该私有镜像部署,避免重复1-8步骤。

 

2、部署配置docker

执行命令安装docker,并将docker服务配置为开机自启动。

curl -fsSL https://get.docker.com -o get-docker.sh

sh get-docker.sh

systemctl enable docker

systemctl start docker

 

3、获取模型API的地址和API KEY,以华为云MaaS上的deepseek-v4-flash为例

 

 

4、登录ECS,创建config.yaml配置文件,将写入如下内容作为模板,并修改对应的参数配置。

model_list:

  - model_name: dsv4

    litellm_params:

      model: openai/deepseek-v4-flash

      api_base: https://api.modelarts-maas.com/v2/

      api_key: <your API KEY>

      use_chat_completions_api: true

 

  - model_name: glm4.7  #多个模型可以按这个继续添加,否则可以删除本段

    litellm_params:

      model: openai/glm-4.7-flash

      api_base: https://open.bigmodel.cn/api/paas/v4/

      api_key: <your API KEY>

      use_chat_completions_api: true

 

litellm_settings:

  drop_params: True

  use_chat_completions_url_for_anthropic_messages: true

 

general_settings:

  disable_auth: true

 

关键参数说明:

参数

功能说明

配置值参考

Model_name

LiteLLM代理的模型名称,可以自定义,不强制要求和原始模型名称一致

Dsv4

Model

后端模型的名称,因为主要openai风格的chat/completions接口,所以格式必须要是:

Openai/<模型名称>

Openai/deepseek-v4-flash

Api_base

后端模型的API地址。

注意:litellm会在base_url的基础上增加/chat/completions,所以如果官方接口有/chat/completions需要删除掉,例如华为云官网MaaS的API:https://api.modelarts-maas.com/v2/chat/completions就需要填写为参考值。

https://api.modelarts-maas.com/v2/

Api_key

你的模型API KEY

Sk-1234

use_chat_completions_api

允许将模型的/chat/completions接口转换为/v1/responses接口,必须配置true。不配置或配置为false将不支持/v1/responses接口

true

use_chat_completions_url_for_anthropic_messages

允许将模型的/chat/completions接口转换为/v1/messages接口,必须配置为true。不配置或配置为false将不支持/v1/messages接口

true

 

 5、进入config.yaml所在的目录,执行下面命令从官网下载最新litellm镜像,创建并启动容器实例。

docker run -d \

  -v $(pwd)/config.yaml:/app/config.yaml \

  -e LITELLM_MASTER_KEY=<Your API KEY,默认sk-1234>  \

  -p 4000:4000 \

--restart=unless-stopped \

   docker.litellm.ai/berriai/litellm:latest \

  --config /app/config.yaml

说明:

1)首次执行下载镜像会耗费一段时间,请耐心等待,同时注意修改LITELLM_MASTER_KEY。

2)unless-stopped参数如果手动停止容器下次开机不会随系统自动启动,如果需要永远自动启动,可以替换为always参数。

 

6、执行docker ps命令,查看创建启动成功的litellm实例。

root@ecs-litellm:~# docker ps

CONTAINER ID   IMAGE                                      COMMAND                  CREATED       STATUS       PORTS                                         NAMES

f0a9418c5519   docker.litellm.ai/berriai/litellm:1.87.0   "docker/prod_entrypo"   8 hours ago   Up 3 hours   0.0.0.0:4000->4000/tcp, [::]:4000->4000/tcp   festive_moser

 

 

7、执行下面curl命令,确保litellm接口功能正常。注意修改apikey和model名称

curl -X POST "http://127.0.0.1:4000/v1/messages" \

  -H "x-api-key: <your API KEY>" \

  -H "anthropic-version: 2023-06-01" -H "Content-Type: application/json" \

  -d "{\"model\": \"dsv4\",\"max_tokens\": 1024,\"messages\": [{\"role\": \"user\", \"content\": \"hi\"}]}"

 

root@ecs-litellm:~# sh post_msg.sh

{"id":"7856c20f30884cb288ade2f8cbd7f205","type":"message","role":"assistant","model":"dsv4","stop_sequence":null,"usage":{"input_tokens":5,"output_tokens":135,"total_tokens":140},"content":[{"type":"thinking","thinking":"好的,用户只发了一个“hi”,这是一个非常简单的问候。这可能是初次接触,想打个招呼,或者是在测试我是否在线。深层需求应该是开启对话,建立联系。\n\n我需要用一个友好、热情的回应来打招呼,并主动提供一个开放式的邀请,让用户能轻松地提出后续问题或说明意图。可以用一些常见的问候语,比如“你好”、“很高兴见到你”,然后明确表示“有什么可以帮你的”,用一个轻松的语气鼓励用户继续交流。","signature":null},{"type":"text","text":"你好!很高兴见到你!�� 有什么我可以帮你的吗?无论是聊天、解答问题,还是需要帮忙处理文档、整理信息之类的任务,尽管说!"}],"stop_reason":"end_turn"}r

 

8、删除EIP(视情况):如果ECS不需要EIP与外面通信,到这里可以解绑删除EIP,提升安全并减少费用消耗。

创建配置ELB

1、创建1个共享ELB实例,选择和ECS相同的VPC,购买EIP,具体带宽根据代理API的总体TPM计算,例如4.2M TPM可考虑使用10Mbps带宽。

 

 

2、添加监听器:

(1) 根据需要选择HTTP或HTTP协议,注意HTTPS协议需要配置认证证书

(2) 端口配置为4000

(3) 访问控制根据实际网络访问需求配置,确保安全,例如通过白名单做限制

(4) 配置后端分配策略,后端协议选择HTTP,使用默认“加权轮询算法”

(5) 添加云服务器,将2台ECS加入,业务端口配置4000,权重默认都为1,并启用健康检测

3、修改监听器后端服务器组健康检查策略,使用HTTP协议,将检查路径配置为/health/liveness,其余保持默认值

4、等待30秒,观察ELB的监听器策略的健康检查状态是否恢复“正常”。

测试验收

1、执行test_litellm_api.py脚本(参考附件,将txt重命名为py后缀),脚本会自动评估chat/completions、/v1/messages、/v1/responses接口功能,注意使用ELB的EIP访问调用。

  

 

2、将ELB代理的地址配置给Claude Code,测试基本功能。

 

Claude Code部署和配置自定义模型参考:https://zhuanlan.zhihu.com/p/2024261343172129732

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。