网站首页 > 技术文章 正文
代码蜂巢X
探索编程的无限可能
编辑:嘉禾
如果每次切换大模型都要重写接口、改参数、调格式,你会不会抓狂?
LiteLLM 把 OpenAI、Anthropic、Bedrock、Vertex……统统变成「OpenAI 格式」,只需两行代码,模型想换就换。
项目概述
LiteLLM 是 BerriAI 开源的「万能 LLM 适配器」,同时提供
- 1. Python SDK(litellm)
- 2. Proxy Server(LLM Gateway)
两者都能用 OpenAI 的输入/输出格式 调用 100+ 大模型,并内置重试、负载均衡、成本追踪与速率限制。
问题背景
- o 供应商碎片化:每接入一家模型,就要研究一套鉴权、请求/响应格式、错误码。
- o 高可用难做:单点故障、限流、预算控制,都得自己写调度逻辑。
- o 可观测性缺失:想知道「谁调用了哪个模型、花了多少钱、耗时多久」得自己埋点。
LiteLLM 把上述痛点一次性打包解决。
功能亮点
能力说明100+ 模型统一调用openai/gpt-4o、anthropic/claude-3-5-sonnet、bedrock/anthropic.claude-v2……全部用同一套参数。零改造迁移现有 OpenAI 代码只需把 client = OpenAI() 换成 from litellm import completion,接口不变。企业级网关Proxy Server 支持 多租户、预算、速率、日志、缓存、回调,可一键部署成内部 LLM Gateway。流式/异步/重试流式输出、async/await、自动 fallback、指数退避重试,一行参数即可开启。成本&可观测内置回调可直推 Langfuse、Helicone、MLflow、Slack 等,实时查看 token 消耗。
技术细节
- o 统一 I/Ofrom litellm import completion
completion(model="groq/llama3-70b-8192", messages=[...]) - 无论底层是 Groq、Bedrock 还是自托管 vLLM,返回结构永远是 OpenAI 的 choices[0].message.content。
- o Router 负载均衡from litellm import Router
router = Router(model_list=[
{"model_name": "gpt-4", "litellm_params": {"model": "azure/gpt-4", "api_base": "..."}},
{"model_name": "gpt-4", "litellm_params": {"model": "openai/gpt-4"}}
])
router.completion(model="gpt-4", messages=[...]) - 自带熔断、重试、按权重/延迟选择节点。
- o Proxy Server 架构
- o 网关层(Go)负责鉴权、速率、缓存
- o 后端(Python)负责模型路由、计费
- o 前端(React)提供 /ui 面板,可在线发 key、看报表
安装与使用
Python SDK(3 步搞定)
pip install litellm
export OPENAI_API_KEY="sk-xxx"
export ANTHROPIC_API_KEY="sk-ant-xxx"
from litellm import completion
completion(
model="anthropic/claude-3-sonnet-20240229",
messages=[{"role": "user", "content": "写一首五言绝句"}]
)
Proxy Server(5 分钟上线)
pip install 'litellm[proxy]'
litellm --model openai/gpt-4o
# 服务已跑在 http://0.0.0.0:4000
用任何 OpenAI 客户端即可访问:
import openai
client = openai.OpenAI(api_key="anything", base_url="http://localhost:4000")
client.chat.completions.create(model="gpt-4o", messages=[...])
应用案例
- o SaaS 多租户:每个用户一把 Proxy Key,独立预算、速率、模型白名单。
- o A/B 测试:Router 同时把 10% 流量切到 Claude,90% 留 GPT-4,对比效果。
- o 本地离线模型:同一代码既能在云端 Bedrock 跑,也能在内网 Ollama 跑,方便合规场景。
项目地址
GitHub: https://github.com/BerriAI/litellm
文档: https://docs.litellm.ai/docs/
猜你喜欢
- 2025-09-18 GPU集群扩展:Ray Serve与Celery的技术选型与应用场景分析
- 2025-09-18 【不背八股】2.操作系统-进程、线程、协程的基本理解
- 2025-09-18 两张图看透Android Handler使用与机制
- 2025-09-18 Spring Boot 3.x 日志配置与 Logback 集成指南
- 2025-09-18 解锁C++异步之力:高效并发编程指南
- 2025-09-18 Flutter框架分析(八)-Platform Channel
- 2025-09-18 原来你是这样打印日志的,怪不得天天背锅……
- 2025-09-18 .NET Aspire 9.4 发布了 CLI GA、交互式仪表板和高级部署功能
- 2025-09-18 Rust异步编程神器:用Tokio轻松创建定时任务
- 2025-09-18 C++ 回调革命:C 风格适配 Lambda 捕获指南
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)