兼容OpenAI的端点
信息
选择 openai
作为提供商会将您的请求通过上游路由到兼容OpenAI的端点
官方OpenAI Python API库.
此库要求所有请求都提供API密钥,可以通过 api_key
参数或 OPENAI_API_KEY
环境变量提供。
如果您不想在每个请求中提供一个虚假的API密钥,请考虑使用直接匹配您兼容OpenAI端点的提供商,例如 hosted_vllm
或 llamafile
。
要调用托管在openai代理后面的模型,需要进行2处更改
对于
/chat/completions
: 在您的模型名称前加上openai/
,这样litellm就知道您正在尝试调用openai的/chat/completions
端点。对于
/completions
: 在您的模型名称前加上text-completion-openai/
,这样litellm就知道您正在尝试调用openai的/completions
端点。[通过/v1/completions
路由调用openai/
端点时,此项非必需].不要在基本url中添加任何额外内容,例如
/v1/embedding
。LiteLLM使用openai客户端进行这些调用,并且客户端会自动添加相关的端点。
用法 - 补全
import litellm
import os
response = litellm.completion(
model="openai/mistral", # add `openai/` prefix to model so litellm knows to route to OpenAI
api_key="sk-1234", # api key to your openai compatible endpoint
api_base="http://0.0.0.0:4000", # set API Base of your Custom OpenAI Endpoint
messages=[
{
"role": "user",
"content": "Hey, how's it going?",
}
],
)
print(response)
用法 - 嵌入
import litellm
import os
response = litellm.embedding(
model="openai/GPT-J", # add `openai/` prefix to model so litellm knows to route to OpenAI
api_key="sk-1234", # api key to your openai compatible endpoint
api_base="http://0.0.0.0:4000", # set API Base of your Custom OpenAI Endpoint
input=["good morning from litellm"]
)
print(response)
与LiteLLM代理服务器一起使用
以下是使用LiteLLM代理服务器调用兼容OpenAI端点的方法
修改 config.yaml
model_list:
- model_name: my-model
litellm_params:
model: openai/<your-model-name> # add openai/ prefix to route as OpenAI provider
api_base: <model-api-base> # add api base for OpenAI compatible provider
api_key: api-key # api key to send your model信息如果在测试时看到
Not Found Error
错误,请确保您的api_base
带有/v1
后缀示例:
http://vllm-endpoint.xyz/v1
启动代理
$ litellm --config /path/to/config.yaml
向LiteLLM代理服务器发送请求
- OpenAI Python v1.0.0+
- curl
import openai
client = openai.OpenAI(
api_key="sk-1234", # pass litellm proxy key, if you're using virtual keys
base_url="http://0.0.0.0:4000" # litellm-proxy-base url
)
response = client.chat.completions.create(
model="my-model",
messages = [
{
"role": "user",
"content": "what llm are you"
}
],
)
print(response)curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{
"model": "my-model",
"messages": [
{
"role": "user",
"content": "what llm are you"
}
],
}'
高级 - 禁用系统消息
一些VLLM模型(例如 gemma)不支持系统消息。要将这些请求映射到'user'消息,请使用 supports_system_message
标志。
model_list:
- model_name: my-custom-model
litellm_params:
model: openai/google/gemma
api_base: http://my-custom-base
api_key: ""
supports_system_message: False # 👈 KEY CHANGE