跳到主内容

输入参数

通用参数

LiteLLM 接受并将 OpenAI Chat Completion 参数翻译应用于所有提供商。

用法

import litellm

# set env variables
os.environ["OPENAI_API_KEY"] = "your-openai-key"

## SET MAX TOKENS - via completion()
response = litellm.completion(
model="gpt-3.5-turbo",
messages=[{ "content": "Hello, how are you?","role": "user"}],
max_tokens=10
)

print(response)

已翻译的 OpenAI 参数

使用此函数获取任何模型 + 提供商支持的最新 OpenAI 参数列表。

from litellm import get_supported_openai_params

response = get_supported_openai_params(model="anthropic.claude-3", custom_llm_provider="bedrock")

print(response) # ["max_tokens", "tools", "tool_choice", "stream"]

这是我们在所有提供商之间翻译的 OpenAI 参数列表。

使用 litellm.get_supported_openai_params() 获取每个模型 + 提供商的更新参数列表

提供商temperaturemax_completion_tokensmax_tokenstop_pstreamstream_optionsstopnpresence_penaltyfrequency_penaltyfunctionsfunction_calllogit_biasuserresponse_formatseedtoolstool_choicelogprobstop_logprobsextra_headers
Anthropic
OpenAI
Azure OpenAI
xAI
Replicate
Anyscale
Cohere
Huggingface
Openrouter
AI21
VertexAI
Bedrock✅ (取决于模型)
Sagemaker
TogetherAI
Sambanova
AlephAlpha
NLP Cloud
Petals
Ollama
Databricks
ClarifAI
Github✅ (取决于模型)✅ (取决于模型)
Novita AI
注意

默认情况下,如果传入的 OpenAI 参数不受支持,LiteLLM 将引发异常。

若要改为丢弃该参数,请设置 litellm.drop_params = Truecompletion(..drop_params=True)

仅丢弃不受支持的 OPENAI 参数

LiteLLM 假设任何非 OpenAI 参数都是提供商特定的,并将其作为 kwarg 传递到请求正文中

输入参数

def completion(
model: str,
messages: List = [],
# Optional OpenAI params
timeout: Optional[Union[float, int]] = None,
temperature: Optional[float] = None,
top_p: Optional[float] = None,
n: Optional[int] = None,
stream: Optional[bool] = None,
stream_options: Optional[dict] = None,
stop=None,
max_completion_tokens: Optional[int] = None,
max_tokens: Optional[int] = None,
presence_penalty: Optional[float] = None,
frequency_penalty: Optional[float] = None,
logit_bias: Optional[dict] = None,
user: Optional[str] = None,
# openai v1.0+ new params
response_format: Optional[dict] = None,
seed: Optional[int] = None,
tools: Optional[List] = None,
tool_choice: Optional[str] = None,
parallel_tool_calls: Optional[bool] = None,
logprobs: Optional[bool] = None,
top_logprobs: Optional[int] = None,
deployment_id=None,
# soon to be deprecated params by OpenAI
functions: Optional[List] = None,
function_call: Optional[str] = None,
# set api_base, api_version, api_key
base_url: Optional[str] = None,
api_version: Optional[str] = None,
api_key: Optional[str] = None,
model_list: Optional[list] = None, # pass in a list of api_base,keys, etc.
# Optional liteLLM function params
**kwargs,

) -> ModelResponse:

必填字段

  • model: string - 要使用的模型 ID。请参阅模型端点兼容性表,了解哪些模型适用于 Chat API 的详细信息。
  • messages: array - 包含对话至今的消息列表。

messages 的属性

注意 - 数组中的每条消息包含以下属性

  • role: string - 消息作者的角色。角色可以是:system, user, assistant, function 或 tool。

  • content: string 或 list[dict] 或 null - 消息内容。所有消息都需要此字段,但对于带有函数调用的 assistant 消息,此字段可能为 null。

  • name: string (可选) - 消息作者的名称。如果角色是 "function",则需要此字段。名称应与内容中表示的函数名称匹配。它可以包含字符 (a-z, A-Z, 0-9) 和下划线,最大长度为 64 个字符。

  • function_call: object (可选) - 应调用的函数的名称和参数,由模型生成。

  • tool_call_id: str (可选) - 此消息响应的工具调用。

查看所有消息值

可选字段

  • temperature: number 或 null (可选) - 要使用的采样温度,介于 0 和 2 之间。值越高(如 0.8)会产生更随机的输出,而值越低(如 0.2)会使输出更集中和确定。

  • top_p: number 或 null (可选) - 温度采样的一种替代方案。它指示模型考虑具有 top_p 概率的 token 结果。例如,0.1 表示仅考虑构成前 10% 概率质量的 token。

  • n: integer 或 null (可选) - 为每个输入消息生成的聊天补全选项数量。

  • stream: boolean 或 null (可选) - 如果设置为 true,则发送部分消息增量。Token 将在可用时发送,流将由一个[DONE]消息终止。

  • stream_options dict 或 null (可选) - 流式响应的选项。仅在设置 stream: true 时设置此项

    • include_usage boolean (可选) - 如果设置,将在数据之前流式传输额外的块[DONE]消息。此块上的 usage 字段显示整个请求的 token 使用统计信息,choices 字段将始终是一个空数组。所有其他块也将包含 usage 字段,但其值为 null。
  • stop: string/ array/ null (可选) - API 将停止生成更多 token 的最多 4 个序列。

  • max_completion_tokens: integer (可选) - 为补全可生成的 token 数量的上限,包括可见的输出 token 和推理 token。

  • max_tokens: integer (可选) - 在聊天补全中生成的最大 token 数量。

  • presence_penalty: number 或 null (可选) - 用于根据新 token 在迄今为止文本中的存在来惩罚它们。

  • response_format: object (可选) - 一个对象,指定模型必须输出的格式。

    • 设置为 { "type": "json_object" } 将启用 JSON 模式,保证模型生成的消息是有效的 JSON。
    • 重要提示:使用 JSON 模式时,您还必须通过系统或用户消息指示模型生成 JSON。否则,模型可能会生成无休止的空白流,直到生成达到 token 限制,从而导致长时间运行且看似“卡住”的请求。另请注意,如果 finish_reason="length"(表示生成超出 max_tokens 或对话超出最大上下文长度),则消息内容可能会被部分截断。
  • seed: integer 或 null (可选) - 此功能处于 Beta 阶段。如果指定,我们的系统将尽最大努力进行确定性采样,以便具有相同种子和参数的重复请求应返回相同的结果。不保证确定性,您应参考 system_fingerprint 响应参数以监控后端的更改。

  • tools: array (可选) - 模型可能调用的工具列表。目前,只支持函数作为工具。使用此参数提供模型可能为其生成 JSON 输入的函数列表。

    • type: string - 工具的类型。目前,只支持 function。

    • function: object - 必需。

  • tool_choice: string 或 object (可选) - 控制模型调用哪个(如果有)函数。none 表示模型不会调用函数,而是生成一条消息。auto 表示模型可以在生成消息或调用函数之间进行选择。通过 {"type: "function", "function": {"name": "my_function"}} 指定特定函数会强制模型调用该函数。

    • 当不存在函数时,none 是默认值。如果存在函数,则 auto 是默认值。
  • parallel_tool_calls: boolean (可选) - 是否在工具使用期间启用并行函数调用。OpenAI 默认值为 true。

  • frequency_penalty: number 或 null (可选) - 用于根据新 token 在迄今为止文本中的频率来惩罚它们。

  • logit_bias: map (可选) - 用于修改特定 token 出现在补全中的概率。

  • user: string (可选) - 表示您的最终用户的唯一标识符。这有助于 OpenAI 监控和检测滥用行为。

  • timeout: int (可选) - 补全请求的超时时间(以秒为单位)(默认为 600 秒)

  • logprobs: bool (可选) - 是否返回输出 token 的对数概率。如果为 true,则返回消息内容中返回的每个输出 token 的对数概率

  • top_logprobs: int (可选) - 一个介于 0 到 5 之间的整数,指定在每个 token 位置返回的最有可能的 token 数量,每个 token 都具有关联的对数概率。如果使用此参数,必须将 logprobs 设置为 true。

  • headers: dict (可选) - 要随请求发送的 headers 字典。

  • extra_headers: dict (可选) - headers 的替代项,用于在 LLM API 请求中发送额外的 headers。

已弃用参数

  • functions: array - 模型可能用于生成 JSON 输入的函数列表。每个函数应具有以下属性

    • name: string - 要调用的函数名称。它应包含 a-z, A-Z, 0-9、下划线和破折号,最大长度为 64 个字符。
    • description: string (可选) - 解释函数功能的描述。它有助于模型决定何时以及如何调用函数。
    • parameters: object - 函数接受的参数,描述为 JSON Schema 对象。
  • function_call: string 或 object (可选) - 控制模型如何响应函数调用。

litellm 特定参数

  • api_base: string (可选) - 您要调用模型的 API 端点

  • api_version: string (可选) - (Azure 特有) 调用的 API 版本

  • num_retries: int (可选) - 如果发生 APIError、TimeoutError 或 ServiceUnavailableError,重试 API 调用的次数

  • context_window_fallback_dict: dict (可选) - 如果由于上下文窗口错误导致调用失败,则使用的模型映射

  • fallbacks: list (可选) - 初始调用失败时使用的模型名称 + 参数列表

  • metadata: dict (可选) - 调用时要记录的任何附加数据(发送到日志集成,例如 promptlayer,并通过自定义回调函数访问)

自定义模型成本

  • input_cost_per_token: float (可选) - 补全调用的每输入 token 成本

  • output_cost_per_token: float (可选) - 补全调用的每输出 token 成本

自定义提示模板(详见提示格式化

  • initial_prompt_value: string (可选) - 应用于输入消息开头的初始字符串

  • roles: dict (可选) - 指定如何根据通过 messages 传入的角色 + 消息来格式化提示的字典。

  • final_prompt_value: string (可选) - 应用于输入消息末尾的最终字符串

  • bos_token: string (可选) - 应用于序列开头的初始字符串

  • eos_token: string (可选) - 应用于序列末尾的初始字符串

  • hf_model_name: string (可选) -[仅限 Sagemaker]模型对应的 huggingface 名称,用于拉取正确的模型聊天模板。