Skip to main content

quick_start

model_list: 
- model_name: gpt-3.5-turbo # 用户面对的模型别名
litellm_params: # 所有被 litellm.completion() 接受的参数 - https://docs.litellm.ai/docs/completion/input
model: azure/<your-deployment-name>
api_base: <your-azure-api-endpoint>
api_key: <your-azure-api-key>
- model_name: gpt-3.5-turbo
litellm_params:
model: azure/gpt-turbo-small-ca
api_base: https://my-endpoint-canada-berri992.openai.azure.com/
api_key: <your-azure-api-key>
- model_name: vllm-model
litellm_params:
model: openai/<your-model-name>
api_base: <your-vllm-api-base> # 例如 http://0.0.0.0:3000/v1
api_key: <your-vllm-api-key|none>

使用配置文件运行代理

litellm --config your_config.yaml

使用 LiteLLM 代理 - Curl 请求、OpenAI 包、Langchain

info

LiteLLM 兼容多个 SDK - 包括 OpenAI SDK、Anthropic SDK、Mistral SDK、LLamaIndex、Langchain(Js、Python)

更多示例请参见此处

curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--data ' {
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "你是什么类型的 llm"
}
]
}
'
import openai
client = openai.OpenAI(
api_key="anything",
base_url="http://0.0.0.0:4000"
)

# 发送到 litellm 代理上设置的模型的请求,`litellm --model`
response = client.chat.completions.create(model="gpt-3.5-turbo", messages = [
{
"role": "user",
"content": "这是一个测试请求,写一首短诗"
}
])

print(response)

from langchain.chat_models import ChatOpenAI
from langchain.prompts.chat import (
ChatPromptTemplate,
HumanMessagePromptTemplate,
SystemMessagePromptTemplate,
)
from langchain.schema import HumanMessage, SystemMessage

chat = ChatOpenAI(
openai_api_base="http://0.0.0.0:4000", # 将 openai_api_base 设置为 LiteLLM 代理
model = "gpt-3.5-turbo",
temperature=0.1
)

messages = [
SystemMessage(
content="你是一个有用的助手,我用它来发送测试请求。"
),
HumanMessage(
content="来自 litellm 的测试。告诉我为什么它很棒,用一句话"
),
]
response = chat(messages)

print(response)
from langchain.embeddings import OpenAIEmbeddings

embeddings = OpenAIEmbeddings(model="sagemaker-embeddings", openai_api_base="http://0.0.0.0:4000", openai_api_key="temp-key")


text = "这是一个测试文档。"

query_result = embeddings.embed_query(text)

print(f"SAGEMAKER 嵌入")
print(query_result[:5])

embeddings = OpenAIEmbeddings(model="bedrock-embeddings", openai_api_base="http://0.0.0.0:4000", openai_api_key="temp-key")

text = "这是一个测试文档。"

query_result = embeddings.embed_query(text)

print(f"BEDROCK 嵌入")
print(query_result[:5])

embeddings = OpenAIEmbeddings(model="bedrock-titan-embeddings", openai_api_base="http://0.0.0.0:4000", openai_api_key="temp-key")

text = "这是一个测试文档。"

query_result = embeddings.embed_query(text)

print(f"TITAN 嵌入")
print(query_result[:5])

不推荐。由于代理也使用了 SDK,这可能会导致重复逻辑,从而引发意外错误。

from litellm import completion 

response = completion(
model="openai/gpt-3.5-turbo",
messages = [
{
"role": "user",
"content": "这是一个测试请求,写一首短诗"
}
],
api_key="anything",
base_url="http://0.0.0.0:4000"
)

print(response)

import os

from anthropic import Anthropic

client = Anthropic(
base_url="http://localhost:4000", # 代理端点
api_key="sk-s4xN1IiLTCytwtZFJaYQrA", # litellm 代理虚拟密钥
)

message = client.messages.create(
max_tokens=1024,
messages=[
{
"role": "user",
"content": "你好,Claude",
}
],
model="claude-3-opus-20240229",
)
print(message.content)

更多信息

📖 代理端点 - Swagger 文档

  • POST /chat/completions - 用于调用 100 多个 LLM 的聊天补全端点
  • POST /completions - 补全端点
  • POST /embeddings - 嵌入端点,用于 Azure、OpenAI、Huggingface 端点
  • GET /models - 服务器上可用的模型
  • POST /key/generate - 生成用于访问代理的密钥

调试代理

正常操作期间发生的事件

litellm --model gpt-3.5-turbo --debug

详细信息

### 使用环境变量设置调试级别

正常操作期间发生的事件
```shell
export LITELLM_LOG=INFO

详细信息

export LITELLM_LOG=DEBUG

无日志

export LITELLM_LOG=None