# LiteLLM：大模型统一调用框架详解

> 作者: Elaine
> 日期: 2026-03-19
> 标签: 大模型

---

<h1>🤖 LiteLLM：大模型统一调用框架详解</h1>
        <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=[...])</code></pre>
            <p>响应格式完全一致，业务代码无需修改，轻松切换模型。</p>
        </div>

        <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!"}]
  }'</code></pre>
            <p>代理模式支持 OpenAI 兼容接口，现有应用无需修改代码即可接入。</p>
        </div>

        <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"}]</code></pre>
            <p>当 GPT-4 不可用时，自动切换到 Claude，然后切换到 GPT-3.5。</p>
        </div>

        <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)</code></pre>
        </div>

        <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</code></pre>
        </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</code></pre>
        </div>

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