正值AI飞速发展的阶段,涌现出了多种多样的LLM模型,现在很多开源工具接入的都是OpenAI API,要求别人把所有模型都兼容一遍也不太可能,想用开源工具和指定的模型该怎么办呢?那么就要了解一下Litellm了,Litellm和前面我们了解的OpenRouter有类似的功能,都实现了OpenAI的代理服务功能。
优势
Litellm是Python的一个终端命令行,安装简便,可本地部署管理
简介
LiteLLM 是一个强大的LLM(大型语言模型)API调用工具,旨在简化开发者与各种LLM提供商API的交互过程。简单来说就是使用 OpenAI 格式调用所有LLM API,LiteLLM 是一个Python依赖包,安装简单,一键启动代理。
官网
文档地址:docs.litellm.ai
Github地址:github.com/BerriAI/lit…
支持LLM
LiteLLM 支持了 anthropic、openai、azure、ollama、google AI Studio - gemini、Deepseek等主流厂商,以及其他厂商模型。
安装
// 安装litellm,只使用代理模式可以不用安装
pip install litellm
// 安装litellm代理
pip install 'litellm[proxy]'
如果安装过程比较缓慢,可以使用国内镜像
pip install litellm -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip install 'litellm[proxy]' -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
使用LiteLLM
使用限制
使用LiteLLM调用模型时,某些模型调用需要科学上网环境
在代码中使用
以 Gemini 为例,Gemini 对应LiteLLM文档:docs.litellm.ai/docs/provid…
from litellm import completion
import os
## set ENV variables
os.environ["GEMINI_API_KEY"] = "你的Gemini API Key"
messages = [{ "content": "Hello, how are you?","role": "user"}]
# openai call
response = completion(model="gemini/gemini-2.0-flash-exp", messages=messages)
print(response)
OpenAI 格式响应
异步
from litellm import acompletion
import os
import asyncio
## set ENV variables
os.environ["GEMINI_API_KEY"] = "你的Gemini API Key"
async def test_get_response():
user_message = "Hello, how are you?"
messages = [{"content": user_message, "role": "user"}]
response = await acompletion(model="gemini/gemini-2.0-flash-exp", messages=messages)
return response
response = asyncio.run(test_get_response())
print(response)
流式处理
from litellm import completion
import os
## set ENV variables
os.environ["GEMINI_API_KEY"] = "你的Gemini API Key"
messages = [{ "content": "Hello, how are you?","role": "user"}]
# openai call
response = completion(model="gemini/gemini-2.0-flash-exp", messages=messages, stream=True)
for part in response:
print(part.choices[0].delta.content or "")
使用LiteLLM代理
LiteLLM代理是一个终端命令行工具,提供了一系列参数配置。
优势
直接在代理服务器上配置科学上网环境,无需在本地配置
查看帮助
$ litellm --help
设置端口号
LiteLLM默认端口号为 4000,如需更改可以使用host参数配置
litellm --model gemini/gemini-2.0-flash-exp --port 5000
自定义配置
自定义配置可以同时对多模型进行配置,首先创建一个 config.yaml 文件
model_list:
- model_name: gemini-2.0-flash-exp
litellm_params:
model: gemini/gemini-2.0-flash-exp
api_key: YOUR_GEMINI_API_KEY
temperature: 0.2
- model_name: gemini-1.5-flash
litellm_params:
model: gemini/gemini-1.5-flash
api_key: YOUR_GEMINI_API_KEY
终端设置API Key
启动LiteLLM代理前,设置API Key就无需在调用时传入了
export GEMINI_API_KEY=你的Google Gemini API Key
启动代理服务
export GEMINI_API_KEY=你的Google Gemini API Key
使用代理服务
官方文档:docs.litellm.ai/docs/proxy/…
curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini/gemini-2.0-flash-exp",
"messages": [
{
"role": "user",
"content": "what llm are you"
}
],
"metadata": {
"generation_name": "ishaan-test-generation",
"generation_id": "gen-id22",
"trace_id": "trace-id22",
"trace_user_id": "user-id2"
}
}'
在VS Code中使用代理服务
进入Cline配置页面,【API Provider】选择【OpenAI Compatible】,【Base URL】填写代理服务地址“http://127.0.0.1:4000”,【Model ID】填写“gemini/gemini-2.0-flash-exp”,点击【Done】完成配置
配置完成后即可使用代理服务聊天了。
常用模型名称及变量
OpenAI
export OPENAI_API_KEY=
litellm --model openai/gpt-4o
Gemini
export GEMINI_API_KEY=
litellm --model gemini/gemini-1.5-flash
litellm --model gemini/gemini-2.0-flash-exp
Anthropic
export ANTHROPIC_API_KEY=
litellm --model anthropic/claude-3-sonnet-20240229
Azure
export AZURE_API_KEY=
litellm --model azure/gpt-3.5-turbo
Huggingface
export HUGGINGFACE_API_KEY=
litellm --model huggingface/meta-llama/Meta-Llama-3.1-8B-Instruct
OpenRouter
export OPENROUTER_API_KEY=
litellm --model openrouter/google/palm-2-chat-bison
Deepseek
export DEEPSEEK_API_KEY=
litellm --model deepseek/deepseek-chat
Mistral
export MISTRAL_API_KEY=
// 聊天和代码补全 API Key
export CODESTRAL_API_KEY=
litellm --model mistral/mistral-tiny
litellm --model mistral/mistral-large-latest
// 聊天和代码补全模型
litellm --model codestral/codestral-latest
LiteLLM Swagger
LiteLLM提供了一套Swagger API,服务查看地址:http://127.0.0.1:4000,可以基于API调用测试或者二开
查看模型列表信息
常见问题
Please set 'XX_API_Key'
没有设置API Key变量,解决方案,导出变量后重新启动代理服务
$ export GEMINI_API_KEY=
$ litellm --model gemini/gemini-2.0-flash-exp
友情提示
本文同步自微信公众号 "程序员小溪" ,这里只是同步,想看及时消息请移步我的公众号,不定时更新我的学习经验。