:bullet_train: LiteLLM


LiteLLM 是一个统一的接口层,支持调用100+种大语言模型(LLM),包括Bedrock、Huggingface、VertexAI、TogetherAI、Azure、OpenAI、Groq等。

核心功能

  • 统一API格式:所有模型调用使用OpenAI兼容格式
  • 多模型支持:100+种LLM模型的一站式调用
  • 智能路由:自动重试和回退机制
  • 代理服务器:内置LLM网关,支持预算、速率限制和认证
  • 高级特性:函数调用、流式响应、缓存和可观测性
  • 企业级功能:团队管理、支出监控、审计日志

️ 安装指南

# 通过pip安装
pip install litellm # 安装开发环境依赖
make install-dev # 安装代理服务器完整功能
make install-proxy-dev

快速开始

基本使用示例

from litellm import completion

response = completion(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "你好,LiteLLM是什么?"}]
) print(response.choices[0].message.content)

启动代理服务器

litellm --model gpt-3.5-turbo --api-key your_openai_key

核心代码示例

多模型路由

from litellm import Router

model_list = [
{
"model_name": "gpt-3.5-turbo",
"litellm_params": {
"model": "azure/chatgpt-v-2",
"api_key": "your_azure_key",
"api_base": "https://your-endpoint.openai.azure.com/"
},
"tpm": 240000,
"rpm": 1800
},
{
"model_name": "claude-2",
"litellm_params": {
"model": "claude-2",
"api_key": "your_anthropic_key"
}
}
] router = Router(model_list=model_list)
response = await router.acompletion(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Hello!"}]
)

代理服务器API

from fastapi import FastAPI
import litellm
from litellm.proxy.proxy_server import initialize app = FastAPI()
initialize(app) # 启动服务
# uvicorn app:app --host 0.0.0.0 --port 8000

项目架构

litellm/
├── llms/ # 各厂商模型实现
├── proxy/ # 代理服务器实现
├── router_utils/ # 负载均衡和回退逻辑
├── types/ # 类型定义
├── integrations/ # 第三方集成
└── caching/ # 缓存后端实现

:chart_increasing: 企业功能

  • 自定义管理仪表盘
  • 细粒度访问控制
  • 高级监控和告警
  • 专属支持

贡献指南

我们欢迎各种形式的贡献!请先签署贡献者协议

# 开发环境设置
git clone https://github.com/BerriAI/litellm.git
cd litellm
make install-dev

联系我们

LiteLLM - 统一接口调用100+ LLM模型的更多相关文章

  1. tensorflow C++接口调用图像分类pb模型代码

    #include <fstream> #include <utility> #include <Eigen/Core> #include <Eigen/Den ...

  2. Python-通过实例方法调用-统一接口的实现-getter methodcaller

    某项目中,我们的代码使用的2个不同库中的图形类: Circle,Triangle 这两个类中都有一个获取面积的方法接口,但是接口的名字不一样 统一这些接口,不关心具体的接口,只要我调用统一的接口,对应 ...

  3. .Net 如何模拟会话级别的信号量,对http接口调用频率进行限制(有demo)

    现在,因为种种因素,你必须对一个请求或者方法进行频率上的访问限制. 比如, 你对外提供了一个API接口,注册用户每秒钟最多可以调用100次,非注册用户每秒钟最多可以调用10次. 比如, 有一个非常吃服 ...

  4. Opencv调用深度学习模型

    https://blog.csdn.net/lovelyaiq/article/details/79929393 https://blog.csdn.net/qq_29462849/article/d ...

  5. 聊一聊声明式接口调用与Nacos的结合使用

    背景 对于公司内部的 API 接口,在引入注册中心之后,免不了会用上服务发现这个东西. 现在比较流行的接口调用方式应该是基于声明式接口的调用,它使得开发变得更加简化和快捷. .NET 在声明式接口调用 ...

  6. PHP 使用 curl_* 系列函数和 curl_multi_* 系列函数进行多接口调用时的性能对比

    在页面中调用的服务较多时,使用并行方式,即使用 curl_multi_* 系列函数耗时要小于 curl_* 系列函数. 测试环境 操作系统:Windows x64 Server:Apache PHP: ...

  7. 云极知客开放平台接口调用方法(C#)

    云极知客为企业提供基于SAAS的智能问答服务.支持企业个性化知识库的快速导入,借助语义模型的理解和分析,使企业客户立即就拥有本行业的24小时客服小专家.其SAAS模式实现零成本投入下的实时客服数据的可 ...

  8. 微信公众号开发C#系列-4、获取接口调用凭证

    概述 获取接口调用凭证实质就是获取access_token.在微信接口开发中,许多服务的使用都离不开Access Token,Access Token相当于打开这些服务的钥匙,正常情况下会在7200秒 ...

  9. Vue+axios统一接口管理

    通过axios请求接口已经很简单了,但最近在做一个vue项目,想着把axios请求再封装一下,这样api就可以只在一处配置成方法,在使用的时候直接调用这个方法. 但咱们不用每个接口都定义成一个啰嗦的a ...

  10. Angular4+NodeJs+MySQL 入门-04 接口调用类

    上一篇文章说一下,后台接口的创建,这篇说一下如果调用接口. 创建一个目录helpers 此目录下有三个文件分别是 ApiClient.ts.clientMiddleware.ts.Core.ts,前面 ...

随机推荐

  1. 物理机Jenkins接入K8s环境

    前言 本次记录物理机部署Jenkins,k8s弹性伸缩agent节点供部署项目. 安装 K8S 插件 登录 Jenkins,系统管理→ 插件管理 → 搜索 kubernetes,选择第二个 Kuber ...

  2. 终于有人把ROS机器人操作系统讲明白了

    终于有人把ROS机器人操作系统讲明白了 导读:机器人是多专业知识交叉的学科,通常涉及传感器.驱动程序.多机通信.机械结构.算法等,为了更高效地进行机器人的研究和开发,选择一个通用的开发框架非常必要,R ...

  3. 康谋方案 | BEV感知技术:多相机数据采集与高精度时间同步方案

    随着自动驾驶技术的快速发展,车辆准确感知周围环境的能力变得至关重要.BEV(Bird's-Eye-View,鸟瞰图)感知技术,以其独特的视角和强大的数据处理能力,正成为自动驾驶领域的一大研究热点. 一 ...

  4. 通过IP计算分析归属地

    在产品中可能存在不同客户端,请求同一个服务端接口的场景. 例如小程序和App或者浏览器中,如果需要对请求的归属地进行分析,前提是需要先获取请求所在的国家或城市,这种定位通常需要主动授权,而用户一般是不 ...

  5. 【记录】Truenas Scale|中危漏洞,需要SMB签名

    部分内容参考:等保测试问题--需要SMB签名(SMB Signing not Required) 以及 ChatGPT. Truenas常用SMB服务,但默认并不开启SMB签名.这样具有中间人攻击的风 ...

  6. Python3 + selenium 获取疫情中高风险区数据

    背景: 需要动态将疫情风险区数据和区域业务动作想结合, 赋能销售业务, 内部使用非商用哈 环境: Python3 + selenium 自动化测试软件中 Chrome 驱动 exe 文件 输出: 以 ...

  7. C++右值和移动

    值分左右 C++表达式的值类别: 这些名词的字面含义: 一个lvalue是通常可以放在等号左边的表达式,左值 一个rvalue是通常只能放在等号右边的表达式,右值 一个glvalue是generali ...

  8. 一种基于偏移流和纯字符串流来存储和读取字符串列表的方法【C#】

    字符串的存储长度是可变的,在C#中,BinaryWriter和BinaryReader在Write,ReadStirng的时候,都在单个流中字符串的二进制数组前面加了一个二进制数组的长度信息,方便读取 ...

  9. C#配置系统

    读取JSON文件 NuGet两个包:Microsoft.Extensions.Configuration,Mircosoft.Extensions.Configuration.Json. { &quo ...

  10. 异步之舞:FastAPI与MongoDB的深度协奏

    title: 异步之舞:FastAPI与MongoDB的深度协奏 date: 2025/05/18 19:09:08 updated: 2025/05/18 19:09:08 author: cmdr ...