快速上手AI网关——LiteLLM

背景

最近国内的大模型百花齐放,DeepSeek V4系列,Mimo 2.5系列,Kimi2.6,Qwen3.6,Hy3.0...不在一一列举;

为了雨露均沾,充分薅...啊不,充分利用各个模型的优势能力,我们可以在自己的AI助手(OpenClaw,CC,CodeX等),甚至业务系统里一些正在开发或者测试的AI类功能,轮番使用这些国产模型作为基座。注意,我们这样做,不仅仅是为了薅xx,还能测试出哪个国产模型更适配我们的使用场景,毕竟兴趣驱动阶段,一切都是非常高效的。

那为了实现实现这个目的,除了一次次在项目或者AI助手里修改模型配置参数,能不能更自动化的来做这个事?

哎,这就是我们要聊到的AI网关要做的事情了,目前社区内,AI网关类的产品里,LiteLLM绝对是当红炸子鸡,影响力极大。

介绍

关于LiteLLM,还是先给出文档地址;

官方文档:docs.litellm.ai/docs/

中文文档:docs.litellm.com.cn/docs/

简单来说,LiteLLM 的核心价值在于:它把上百种不同的 LLM API 统一封装成了 OpenAI 的格式,有以下几点优势;

  • 统一接口: 无论你使用的是 GPT系列、Claude系列、Gemini还是DeepSeek等,你只需要写一套 OpenAI SDK 风格的代码,剩下的桥接工作全部由 LiteLLM 完成
  • 代理服务 :这是它最强大的功能之一。你可以启动一个本地服务器,将所有模型挂载在它后面。你的应用程序只需要连接到这个本地 Proxy,就能实现负载均衡、自动重试和备选方案。比如,我们可以配置策略,优先用DeepSeek,如果响应慢或者崩了,自动切换到Qwen等其他模型,实现高可用。(文档传送门:docs.litellm.com.cn/docs/routin...)。
  • **# 背景

最近国内的大模型百花齐放,DeepSeek V4系列,Mimo 2.5系列,Kimi2.6,Qwen3.6,Hy3.0...不在一一列举;

为了雨露均沾,充分薅...啊不,充分利用各个模型的优势能力,我们可以在自己的AI助手(OpenClaw,CC,CodeX等),甚至业务系统里一些正在开发或者测试的AI类功能,轮番使用这些国产模型作为基座。注意,我们这样做,不仅仅是为了薅xx,还能测试出哪个国产模型更适配我们的使用场景,毕竟兴趣驱动阶段,一切都是非常高效的。

那为了实现这个目的,除了一次次在项目或者AI助手里修改模型配置参数,能不能更自动化的来做这个事?

哎,这就是我们要聊到的AI网关要做的事情了,目前社区内,AI网关类的产品里,LiteLLM绝对是当红炸子鸡,影响力极大。

介绍

关于LiteLLM,还是先给出文档地址;

官方文档:docs.litellm.ai/docs/

中文文档:docs.litellm.com.cn/docs/

简单来说,LiteLLM 的核心价值在于:它把上百种不同的 LLM API 统一封装成了 OpenAI 的格式,有以下几点优势;

  • 统一接口: 无论你使用的是 GPT系列、Claude系列、Gemini还是DeepSeek等,你只需要写一套 OpenAI SDK 风格的代码,剩下的桥接工作全部由 LiteLLM 完成
  • 代理服务 :这是它最强大的功能之一。你可以启动一个本地服务器,将所有模型挂载在它后面。你的应用程序只需要连接到这个本地 Proxy,就能实现负载均衡、自动重试和备选方案。比如,我们可以配置策略,优先用DeepSeek,如果响应慢或者崩了,自动切换到Qwen等其他模型,实现高可用。(文档传送门:docs.litellm.com.cn/docs/routin...)。
  • 成本跟踪 :它内置了消费统计功能,可以记录每个 API Key 的 Token 使用情况,并支持设置预算上限,非常适合团队开发使用(传送门:docs.litellm.com.cn/docs/proxy/...)。
  • 轻量化:正如其名,它非常轻量,技术门槛也很低,只要懂点配置就能跑起来。
  • ...

好了,更多的特性,大家可以翻看官方文档,或者自行GPT

上手

好了,接下来我们在本地环境实际部署一个LiteLLM网关,测试一下

我这里的环境还是WSL,其他的依赖就是docker,其他环境,或者你只是验证一下效果,可以直接使用python脚本来安装,这个官方文档有说明,很简单,我这里不在赘述;

准备环境

进入wsl环境后,创建个临时目录,写入以下配置文件

  1. litellm-config.yaml

这个文件是litellm的大脑,定义模型如何映射

yaml 复制代码
model_list:
  # 1. DeepSeek
  - model_name: deepseek
    litellm_params:
      model: deepseek/deepseek-chat
      api_key: "os.environ/DEEPSEEK_API_KEY"

  # 2. 通义千问 (Qwen)
  - model_name: qwen
    litellm_params:
      model: dashscope/qwen-max
      api_key: "os.environ/DASHSCOPE_API_KEY"
      
# 核心策略:如果 DeepSeek 挂了,自动切到 Qwen
router_settings:
  routing_strategy: simple-shuffle
  enable_fallbacks: true
  fallbacks: [{"deepseek": ["qwen"]}]

general_settings:
  master_key: sk-admin-123456  # 你的网关管理密钥
  1. docker-compose.yaml

这个就是部署文件,常用docker的小伙伴都熟悉了

yaml 复制代码
services:
  litellm:
    image: ghcr.io/berriai/litellm:main-latest
    ports:
      - "4000:4000"
    volumes:
      - ./litellm-config.yaml:/app/config.yaml
    environment:
      # 替换为你真实的 API Key
      - DEEPSEEK_API_KEY=sk-your-deepseek-key
      - DASHSCOPE_API_KEY=sk-your-qwen-key
    command: [ "--config", "/app/config.yaml", "--detailed_debug" ]
    restart: always

好了,快速上手的话,需要准备的文件就这些

一键启动

进入当前路径,一键执行即可

bash 复制代码
docker-compose up -d

不出意外的话会看到一下输出

然后,我们可以使用LiteLLM的健康检查接口

bash 复制代码
curl http://localhost:4000/health/readiness

输出如下

json 复制代码
{
    "status": "healthy",
    "db": "Not connected",
    "cache": null,
    "litellm_version": "1.82.6",
    "success_callbacks": [
        "sync_deployment_callback_on_success",
        "SkillsInjectionHook",
        "_PROXY_VirtualKeyModelMaxBudgetLimiter",
        "_PROXY_MaxBudgetLimiter",
        "_PROXY_MaxParallelRequestsHandler_v3",
        "_PROXY_CacheControlCheck",
        "ResponsesIDSecurity",
        "_PROXY_MaxIterationsHandler",
        "_PROXY_MaxBudgetPerSessionHandler",
        "_PROXY_LiteLLMManagedFiles",
        "_PROXY_LiteLLMManagedVectorStores",
        "ServiceLogging"
    ],
    "use_aiohttp_transport": true,
    "log_level": "DEBUG",
    "is_detailed_debug": true
}

看到status: healthy,表示部署完成;

测试接入

部署完成后,可以直接在Windows宿主机上使用curl或任何API测试工具(如Postman)发送请求

bash 复制代码
curl --request POST \
  --url http://localhost:4000/v1/chat/completions \
  --header 'Authorization: Bearer sk-admin-123456' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "deepseek",
    "messages": [{"role": "user", "content": "你好"}]
  }'

不出意外的话,相应内容如下

同理,测试其他模型,只需将数据包中的"model": "deepseek"改为"model": "qwen"即可,接入层逻辑完全一致(如下图所示,qwen的响应过于丰富了些。。)。

项目接入

项目里接入的话,就和平常接入大模型接口是一样的,改一下网关地址就好了,伪代码如下

csharp 复制代码
var client = new OpenAIClient(
    new OpenAIClientOptions {
        Endpoint = new Uri("http://localhost:4000/v1")
    },
    new ApiKeyCredential("sk-admin-123456")
);

这个,不再过多赘述。

*选型

AI网关类的产品,社区影响力大的还有Higress(higress.cn/),OneAPI(github.com/songquanpen...)等。其实AI发展到今天,网关的角色变的越来越重要,如果是业务系统做集成,这几乎是必选项。

那在选项阶段的话,我觉得还是看实际场景吧,像Higress这种,阿里出品,有大厂背书,底层好像是依赖的老牌网关产品Envoy,主打的slogan是云原生AI网关,功能强大,特性覆盖面也十分广泛。

当然,这是亮点,也是门槛,对团队的技术能力,运维能力还是有要求的。同理,OneAPI也一样,他们和LiteLLM对比,侧重点各有不同,所以选型阶段还是根据团队能力,业务场景等实际情况综合决定。

LiteLLM最大的优势就是上手容易,且功能强大,很适合小微团队。

结语

好了,至此接入LiteLLM的网关一个简单的流程就结束了。因为是基于docker部署的,后续可以快速的由演转战,迁移到正式平台,也可以做一些扩展,比如可观测性等等,这些我自己也还没试,大家可以根据文档的说明自行尝试一下。

总的来说,LiteLLM不光是让你省了写一堆适配代码的功夫,更重要的是,它让你在面对未来层出不穷的新模型时,有了一种从容感。不管是现在的 DeepSeek 还是以后的别的什么模型,只要挂到这个网关后面,你的业务代码一行都不用改,就可以体验新模型带来的效率提升。 **:它内置了消费统计功能,可以记录每个 API Key 的 Token 使用情况,并支持设置预算上限,非常适合团队开发使用(传送门:docs.litellm.com.cn/docs/proxy/...)。

  • 轻化:正如其名,它非常轻量,技术门槛也很低,只要懂点配置就能跑起来。
  • ...

好了,更多的特性,大家可以翻看官方文档,或者自行GPT

上手

好了,接下来我们在本地环境实际部署一个LiteLLM网关,测试一下

我这里的环境还是WSL,其他的依赖就是docker,其他环境,或者你只是验证一下效果,可以直接使用python脚本来安装,这个官方文档有说明,很简单,我这里不在赘述;

准备环境

进入wsl环境后,创建个临时目录,写入以下配置文件

  1. litellm-config.yaml

这个文件是litellm的大脑,定义模型如何映射

yaml 复制代码
model_list:
  # 1. DeepSeek
  - model_name: deepseek
    litellm_params:
      model: deepseek/deepseek-chat
      api_key: "os.environ/DEEPSEEK_API_KEY"

  # 2. 通义千问 (Qwen)
  - model_name: qwen
    litellm_params:
      model: dashscope/qwen-max
      api_key: "os.environ/DASHSCOPE_API_KEY"
      
# 核心策略:如果 DeepSeek 挂了,自动切到 Qwen
router_settings:
  routing_strategy: simple-shuffle
  enable_fallbacks: true
  fallbacks: [{"deepseek": ["qwen"]}]

general_settings:
  master_key: sk-admin-123456  # 你的网关管理密钥
  1. docker-compose.yaml

这个就是部署文件,常用docker的小伙伴都熟悉了

yaml 复制代码
services:
  litellm:
    image: ghcr.io/berriai/litellm:main-latest
    ports:
      - "4000:4000"
    volumes:
      - ./litellm-config.yaml:/app/config.yaml
    environment:
      # 替换为你真实的 API Key
      - DEEPSEEK_API_KEY=sk-your-deepseek-key
      - DASHSCOPE_API_KEY=sk-your-qwen-key
    command: [ "--config", "/app/config.yaml", "--detailed_debug" ]
    restart: always

好了,快速上手的话,需要准备的文件就这些

一键启动

进入当前路径,一键执行即可

bash 复制代码
docker-compose up -d

不出意外的话会看到一下输出

然后,我们可以使用LiteLLM的健康检查接口

bash 复制代码
curl http://localhost:4000/health/readiness

输出如下

json 复制代码
{
    "status": "healthy",
    "db": "Not connected",
    "cache": null,
    "litellm_version": "1.82.6",
    "success_callbacks": [
        "sync_deployment_callback_on_success",
        "SkillsInjectionHook",
        "_PROXY_VirtualKeyModelMaxBudgetLimiter",
        "_PROXY_MaxBudgetLimiter",
        "_PROXY_MaxParallelRequestsHandler_v3",
        "_PROXY_CacheControlCheck",
        "ResponsesIDSecurity",
        "_PROXY_MaxIterationsHandler",
        "_PROXY_MaxBudgetPerSessionHandler",
        "_PROXY_LiteLLMManagedFiles",
        "_PROXY_LiteLLMManagedVectorStores",
        "ServiceLogging"
    ],
    "use_aiohttp_transport": true,
    "log_level": "DEBUG",
    "is_detailed_debug": true
}

看到status: healthy,表示部署完成;

测试接入

部署完成后,可以直接在Windows宿主机上使用curl或任何API测试工具(如Postman)发送请求

bash 复制代码
curl --request POST \
  --url http://localhost:4000/v1/chat/completions \
  --header 'Authorization: Bearer sk-admin-123456' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "deepseek",
    "messages": [{"role": "user", "content": "你好"}]
  }'

不出意外的话,相应内容如下

同理,测试其他模型,只需将数据包中的"model": "deepseek"改为"model": "qwen"即可,接入层逻辑完全一致(如下图所示,qwen的响应过于丰富了些。。)。

项目接入

项目里接入的话,就和平常接入大模型接口是一样的,改一下网关地址就好了,伪代码如下

csharp 复制代码
var client = new OpenAIClient(
    new OpenAIClientOptions {
        Endpoint = new Uri("http://localhost:4000/v1")
    },
    new ApiKeyCredential("sk-admin-123456")
);

这个,不再过多赘述。

*选型

AI网关类的产品,社区影响力大的还有Higress(higress.cn/),OneAPI(github.com/songquanpen...)等。其实AI发展到今天,网关的角色变的越来越重要,如果是业务系统做集成,这几乎是必选项。

那在选项阶段的话,我觉得还是看实际场景吧,像Higress这种,阿里出品,有大厂背书,底层好像是依赖的老牌网关产品Envoy,主打的slogan是云原生AI网关,功能强大,特性覆盖面也十分广泛。

当然,这是亮点,也是门槛,对团队的技术能力,运维能力还是有要求的。同理,OneAPI也一样,他们和LiteLLM对比,侧重点各有不同,所以选型阶段还是根据团队能力,业务场景等实际情况综合决定。

LiteLLM最大的优势就是上手容易,且功能强大,很适合小微团队。

结语

好了,至此接入LiteLLM的网关一个简单的流程就结束了。因为是基于docker部署的,后续可以快速的由演转战,迁移到正式平台,也可以做一些扩展,比如可观测性等等,这些我自己也还没试,大家可以根据文档的说明自行尝试一下。

总的来说,LiteLLM不光是让你省了写一堆适配代码的功夫,更重要的是,它让你在面对未来层出不穷的新模型时,有了一种从容感。不管是现在的 DeepSeek 还是以后的别的什么模型,只要挂到这个网关后面,你的业务代码一行都不用改,就可以体验新模型带来的效率提升。

相关推荐
苏三说技术1 小时前
Claude Code从失控到起飞,只用了这些技巧
后端
长栎2 小时前
写 for 循环写了十年,你却从没用过迭代器模式最狠的那一面
后端
LiaCode2 小时前
Redis 在生产项目的使用
前端·后端
用户559822481222 小时前
Docker Compose Down 导致容器数据误删——ext4 日志恢复全记录
后端
LiaCode2 小时前
一天学完 redis 的爽翻版核心知识总结
前端·后端
大刚测试开发实战2 小时前
如何内网穿透访问本地私有化部署的TestHub
前端·后端·github
xiaodaoluanzha3 小时前
迄今為止,最簡單的編程語言 Nolang
前端·后端
Csvn3 小时前
Docker 容器管理入门 — 从镜像到容器编排
后端
用户762352425913 小时前
ShardingJDBC
后端
行者全栈架构师3 小时前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端