丢弃不受支持的参数
丢弃您的 LLM 提供商不支持的 OpenAI 参数。
快速开始
import litellm
import os
# set keys
os.environ["COHERE_API_KEY"] = "co-.."
litellm.drop_params = True # 👈 KEY CHANGE
response = litellm.completion(
model="command-r",
messages=[{"role": "user", "content": "Hey, how's it going?"}],
response_format={"key": "value"},
)
LiteLLM 映射了所有由提供商 + 模型支持的 openai 参数(例如,Anthropic 在 Bedrock 上支持函数调用,但在 Titan 上不支持)。
查看 litellm.get_supported_openai_params("command-r")
代码
如果提供商/模型不支持特定参数,您可以将其丢弃。
OpenAI 代理用法
litellm_settings:
drop_params: true
在 completion(..)
中传递 drop_params
仅在调用特定模型时丢弃参数
- SDK
- 代理
import litellm
import os
# set keys
os.environ["COHERE_API_KEY"] = "co-.."
response = litellm.completion(
model="command-r",
messages=[{"role": "user", "content": "Hey, how's it going?"}],
response_format={"key": "value"},
drop_params=True
)
- litellm_params:
api_base: my-base
model: openai/my-model
drop_params: true # 👈 KEY CHANGE
model_name: my-model
指定要丢弃的参数
在调用提供商时丢弃特定参数(例如,vllm 的 'logit_bias')
使用 additional_drop_params
- SDK
- 代理
import litellm
import os
# set keys
os.environ["COHERE_API_KEY"] = "co-.."
response = litellm.completion(
model="command-r",
messages=[{"role": "user", "content": "Hey, how's it going?"}],
response_format={"key": "value"},
additional_drop_params=["response_format"]
)
- litellm_params:
api_base: my-base
model: openai/my-model
additional_drop_params: ["response_format"] # 👈 KEY CHANGE
model_name: my-model
additional_drop_params: 列表或 null - 是一个列表,包含您在调用模型时希望丢弃的 openai 参数。
在请求中指定允许的 openai 参数
告知 litellm 在请求中允许特定的 openai 参数。如果您收到 litellm.UnsupportedParamsError
并希望允许某个参数,请使用此选项。LiteLLM 会将该参数原样传递给模型。
- LiteLLM Python SDK
- LiteLLM 代理
在此示例中,我们传递 allowed_openai_params=["tools"]
来允许 tools
参数。
将 allowed_openai_params 传递给 LiteLLM Python SDK
await litellm.acompletion(
model="azure/o_series/<my-deployment-name>",
api_key="xxxxx",
api_base=api_base,
messages=[{"role": "user", "content": "Hello! return a json object"}],
tools=[{"type": "function", "function": {"name": "get_current_time", "description": "Get the current time in a given location.", "parameters": {"type": "object", "properties": {"location": {"type": "string", "description": "The city name, e.g. San Francisco"}}, "required": ["location"]}}}]
allowed_openai_params=["tools"],
)
使用 litellm 代理时,您可以通过两种方式传递 allowed_openai_params
- 在请求中动态传递
allowed_openai_params
- 在 config.yaml 文件中为特定模型设置
allowed_openai_params
在请求中动态传递 allowed_openai_params
在此示例中,我们传递 allowed_openai_params=["tools"]
,以允许发送到代理上设置的模型接收 tools
参数的请求。
在请求中动态传递 allowed_openai_params
import openai
from openai import AsyncAzureOpenAI
import openai
client = openai.OpenAI(
api_key="anything",
base_url="http://0.0.0.0:4000"
)
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages = [
{
"role": "user",
"content": "this is a test request, write a short poem"
}
],
extra_body={
"allowed_openai_params": ["tools"]
}
)
在 config.yaml 中设置 allowed_openai_params
您还可以在 config.yaml 文件中为特定模型设置 allowed_openai_params
。这意味着对该部署的所有请求都允许传递 tools
参数。
在 config.yaml 中设置 allowed_openai_params
model_list:
- model_name: azure-o1-preview
litellm_params:
model: azure/o_series/<my-deployment-name>
api_key: xxxxx
api_base: https://openai-prod-test.openai.azure.com/openai/deployments/o1/chat/completions?api-version=2025-01-01-preview
allowed_openai_params: ["tools"]