🤖 LiteLLM:大模型统一调用框架详解
<p class="subtitle">为什么你需要一个大模型网关 | 2026-03-19</p>
<div class="info">
<div class="info-title">📋 目录</div>
<ul>
<li><a href="#什么是-litellm" style="color:#60a5fa;">什么是 LiteLLM?</a></li>
<li><a href="#为什么需要" style="color:#60a5fa;">为什么需要统一调用框架?</a></li>
<li><a href="#核心功能" style="color:#60a5fa;">核心功能详解</a></li>
<li><a href="#快速上手" style="color:#60a5fa;">快速上手</a></li>
<li><a href="#适用场景" style="color:#60a5fa;">适用场景</a></li>
<li><a href="#vs其他方案" style="color:#60a5fa;">LiteLLM vs 其他方案</a></li>
<li><a href="#总结" style="color:#60a5fa;">总结</a></li>
</ul>
</div>
<h2 id="什么是-litellm">🔍 什么是 LiteLLM?</h2>
<div class="section">
<p><strong>LiteLLM</strong> 是一个开源的大模型统一调用框架,通过提供标准化的接口,让你可以用相同的方式调用 100+ 种不同的大模型服务。</p>
<p>支持的模型包括但不限于:</p>
<ul>
<li><strong>OpenAI</strong>:GPT-4、GPT-3.5</li>
<li><strong>Anthropic</strong>:Claude 3.5、Claude 3</li>
<li><strong>Google</strong>:Gemini Pro、Gemini Ultra</li>
<li><strong>AWS</strong>:Bedrock(Claude、Llama、Titan 等)</li>
<li><strong>Azure</strong>:Azure OpenAI</li>
<li><strong>开源模型</strong>:Llama 3、 Mistral、Qwen 等</li>
<li><strong>国内模型</strong>:MiniMax、Moonshot、DeepSeek 等</li>
</ul>
</div>
<div class="info">
<div class="info-title">🎯 一句话理解</div>
<p>LiteLLM = 大模型的「万能翻译器」,不管你说的是什么语言(调用哪个模型),它都能帮你统一处理。</p>
</div>
<h2 id="为什么需要">🤔 为什么需要统一调用框架?</h2>
<div class="section">
<h3>直接调用的问题</h3>
<p>如果你只用一个大模型,直接调用确实最简单。但现实场景往往更复杂:</p>
<ul>
<li>❌ <strong>多模型切换麻烦</strong>:每个模型的 API、参数、响应格式都不一样</li>
<li>❌ <strong>无法统一监控</strong>:不同模型的用量、成本、延迟分散管理</li>
<li>❌ <strong>缺乏容错机制</strong>:某个模型挂了怎么办?手动切换?</li>
<li>❌ <strong>难以做负载均衡</strong>:高并发时无法分发请求</li>
<li>❌ <strong>代码耦合严重</strong>:换模型需要改大量业务代码</li>
</ul>
</div>
<div class="section">
<h3>LiteLLM 解决什么问题?</h3>
<ul>
<li>✅ <strong>统一接口</strong>:一套代码调用所有模型</li>
<li>✅ <strong>智能路由</strong>:自动选择最优模型、负载均衡</li>
<li>✅ <strong>成本控制</strong>:预算管理、用量统计</li>
<li>✅ <strong>容错备份</strong>:模型故障时自动切换</li>
<li>✅ <strong>日志追踪</strong>:完整的请求日志和监控</li>
<li>✅ <strong>简化部署</strong>:一行命令启动代理服务</li>
</ul>
</div>
<h2 id="核心功能">⚙️ 核心功能详解</h2>
<div class="section">
<h3>1. 统一 API 接口</h3>
<p>不管你调用哪个模型,LiteLLM 返回的响应格式都是统一的:</p>
<pre><code># 调用 OpenAI
litellm.completion(model="gpt-4", messages=[...])
调用 Claude
litellm.completion(model="claude-3-opus-20240229", messages=[...])
调用本地 Llama
litellm.completion(model="ollama/llama3", messages=[...])
调用 MiniMax
litellm.completion(model="minimax/MiniMax-M2.5", messages=[...])
调用 DeepSeek
litellm.completion(model="deepseek/deepseek-chat", messages=[...])
响应格式完全一致,业务代码无需修改,轻松切换模型。
<div class="section">
<h3>2. 代理服务器模式</h3>
<p>LiteLLM 可以作为代理服务器运行,所有模型统一入口:</p>
<pre><code># 启动代理服务
litellm
然后通过统一地址访问所有模型
curl http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "Hello!"}]
}'
代理模式支持 OpenAI 兼容接口,现有应用无需修改代码即可接入。
<div class="section">
<h3>3. 智能路由与负载均衡</h3>
<p>LiteLLM 内置多种路由策略:</p>
<ul>
<li><strong>simple_shuffle</strong>:轮询分发请求</li>
<li><strong>latency_based_routing</strong>:选择延迟最低的模型</li>
<li><strong>cost_based_routing</strong>:优先使用便宜的模型</li>
<li><strong>round_robin</strong>:循环分配</li>
</ul>
</div>
<div class="section">
<h3>4. 多模型降级与容错</h3>
<p>配置模型组,主模型不可用时自动切换到备用模型:</p>
<pre><code>litellm:
model_list:
- model_name: gpt-4-turbo
litellm_params:
model: gpt-4-turbo
api_key: os.environ/GPT4_API_KEY
fallbacks: [{"model": "claude-3-opus"}, {"model": "gpt-3.5-turbo"}]
当 GPT-4 不可用时,自动切换到 Claude,然后切换到 GPT-3.5。
<div class="section">
<h3>5. 成本控制与用量监控</h3>
<ul>
<li><strong>预算管理</strong>:设置每日/每月预算上限</li>
<li><strong>用量追踪</strong>:详细记录每个模型、每个用户的用量</li>
<li><strong>成本统计</strong>:自动计算各模型的成本</li>
<li><strong>超额拦截</strong>:预算用完前自动停止</li>
</ul>
</div>
<h2 id="快速上手">🚀 快速上手</h2>
<div class="section">
<h3>安装</h3>
<pre><code>pip install litellm</code></pre>
</div>
<div class="section">
<h3>基础调用</h3>
<pre><code>import litellm
简单调用
response = litellm.completion(
model="gpt-4",
messages=[{"role": "user", "content": "Hello, world!"}]
)
print(response.choices[0].message.content)
<div class="section">
<h3>启动代理服务</h3>
<pre><code># 设置 API Key
export OPENAI_API_KEY=sk-...
export ANTHROPIC_API_KEY=sk-ant-...
启动服务
litellm
默认端口 4000,访问 http://localhost:4000
</div>
<div class="section">
<h3>配置文件示例</h3>
<pre><code># config.yaml
model_list:
- model_name: gpt-4
litellm_params:
model: gpt-4
api_key: os.environ/OPENAI_API_KEY
-
model_name: claude-3
litellm_params:
model: claude-3-opus-20240229
api_key: os.environ/ANTHROPIC_API_KEY -
model_name: deepseek
litellm_params:
model: deepseek-chat
api_key: os.environ/DEEPSEEK_API_KEY
api_base: https://api.deepseek.com
litellm_settings:
drop_params: true
set_verbose: True
<h2 id="适用场景">📊 适用场景</h2>
<div class="section">
<h3>企业级应用</h3>
<ul>
<li>需要同时使用多个大模型服务商</li>
<li>对成本控制和用量监控有要求</li>
<li>需要高可用和故障转移</li>
<li>需要对模型使用进行统一管理</li>
</ul>
</div>
<div class="section">
<h3>AI 应用开发</h3>
<ul>
<li>开发 AI 应用需要支持多模型切换</li>
<li>希望降低对单一提供商的依赖</li>
<li>需要本地部署开源模型</li>
</ul>
</div>
<div class="section">
<h3>个人开发与学习</h3>
<ul>
<li>尝试不同的模型,对比效果</li>
<li>学习 prompt 工程</li>
<li>本地跑开源模型</li>
</ul>
</div>
<h2 id="vs其他方案">⚔️ LiteLLM vs 其他方案</h2>
<table>
<tr>
<th>特性</th>
<th>LiteLLM</th>
<th>直接调用 SDK</th>
<th>其他网关</th>
</tr>
<tr>
<td>多模型支持</td>
<td>100+</td>
<td>1个</td>
<td>有限</td>
</tr>
<tr>
<td>部署复杂度</td>
<td>简单</td>
<td>简单</td>
<td>复杂</td>
</tr>
<tr>
<td>负载均衡</td>
<td>内置</td>
<td>需自己实现</td>
<td>部分支持</td>
</tr>
<tr>
<td>成本控制</td>
<td>内置</td>
<td>需自己实现</td>
<td>部分支持</td>
</tr>
<tr>
<td>容错切换</td>
<td>内置</td>
<td>需自己实现</td>
<td>部分支持</td>
</tr>
<tr>
<td>开源免费</td>
<td>✅</td>
<td>✅</td>
<td>部分</td>
</tr>
</table>
<h2 id="总结">📝 总结</h2>
<div class="success">
<div class="success-title">✅ LiteLLM 适用情况</div>
<ul>
<li>需要统一管理多个大模型</li>
<li>对高可用和容错有要求</li>
<li>需要精细化的成本控制</li>
<li>希望简化多模型切换的代码</li>
</ul>
</div>
<div class="warning">
<div class="warning-title">⚠️ 可能不需要 LiteLLM 的情况</div>
<ul>
<li>只使用单一模型</li>
<li>对延迟极其敏感(每多一层都有开销)</li>
<li>已经有成熟的自建网关</li>
</ul>
</div>
<p>LiteLLM 是一个非常实用的工具,尤其适合需要多模型管理和企业级功能的场景。它把很多需要自己实现的复杂功能都封装好了,让你专注于业务逻辑而不是底层集成。</p>