跳转至

01 - OpenAI 标准字段

LiteLLM 的 OPENAI_CHAT_COMPLETION_PARAMS 定义了「完全按 OpenAI 协议接受」的字段白名单。下游传入这些字段不需要做任何特殊配置,LiteLLM 会按 provider 能力做转译。

源码:litellm/constants.py:561completion() 签名 litellm/main.py:1055


必填

字段 类型 说明
model string 模型名。可填 LiteLLM 侧配置的 model_name(虚拟模型名),或 provider/model 形式(如 openai/gpt-4oanthropic/claude-3-5-sonnetbedrock/anthropic.claude-3-5-sonnet-20240620-v1:0)。启用 model_alias_map 后也可以走别名。
messages array 对话消息列表,至少 1 条。结构详见 02-messages-and-content-blocks

采样 / 生成控制

字段 类型 含义 备注
temperature float 0-2 采样温度,值越高越随机 绝大多数 provider 支持
top_p float 0-1 nucleus sampling temperature 二选一即可
n int 为同一 prompt 返回几个 completion 多数 provider 只支持 1,Anthropic/Bedrock 不支持;注意 n=1 是默认值,不会触发校验
max_tokens int 单次响应的最大输出 token 数(含可见输出)。部分厂商已逐步用 max_completion_tokens 替代 开启全局 modify_params=true 时会被自动裁剪
max_completion_tokens int max_tokens 的新别名,OpenAI o1/o3/gpt-5 系列推荐用这个(含推理 token 在内的上限)
stop string / array[string] 遇到这些子串就停止生成,最多 4 个 传空 list/dict 会被过滤掉
seed int 固定随机种子,提升可复现性 OpenAI / Gemini 支持;多数 provider 忽略
presence_penalty float -2~2 对已出现过 token 做惩罚,鼓励新话题 Anthropic/Bedrock 不支持
frequency_penalty float -2~2 对高频 token 做惩罚 Anthropic/Bedrock 不支持
logit_bias dict[int,int] token_id → bias(-100~100)的映射,精确控制某些 token 的概率 主要 OpenAI、Azure 支持
logprobs bool 返回输出 token 的 logprob
top_logprobs int 0-5 每个 token 位置返回多少个候选 logprob;需要 logprobs=true

流式

字段 类型 含义
stream bool 开启 SSE 流式输出。LiteLLM 会把 provider 的流包装成 OpenAI 风格的 data: {...}\n\n 事件
stream_options dict 目前主要是 {"include_usage": true},在流最后一条事件里返回 usage。
代理开启 general_settings.always_include_stream_usage: true 后,没传这个字段也会自动补上

工具 / 函数调用

详见 03-tools-and-structured-output。这里只列字段名:

字段 替代关系
tools ✅ 推荐
tool_choice 配合 tools
parallel_tool_calls OpenAI 并行工具调用开关
functions ⚠️ 已弃用,用 tools
function_call ⚠️ 已弃用,用 tool_choice

结构化输出

字段 类型 含义
response_format dict {"type": "json_object"}{"type": "json_schema", "json_schema": {...}};可用 Pydantic class 传 SDK 层,代理侧必须是序列化后的 dict

多模态 / 新模态

字段 类型 含义 支持面
modalities array[string] 期望输出的模态。如 ["text", "audio"] 只 OpenAI gpt-audio / Gemini audio 支持
audio object 音频输出参数,modalities"audio" 时必填;字段如 {"voice": "...", "format": "..."} OpenAI gpt-audio / Gemini
prediction object Predicted outputs,大段可预知内容时可显著降延迟;{"type": "content", "content": "..."} OpenAI 专有
web_search_options object 开启网页检索。字段:search_context_sizelow/medium/high)、user_location(近似位置) OpenAI gpt-4o-search / Gemini / Anthropic(部分)/ Bedrock(部分)

推理模型(o1 / o3 / gpt-5 / claude sonnet 3.7+ / gemini thinking)

字段 类型 含义
reasoning_effort "none" / "minimal" / "low" / "medium" / "high" / "xhigh" / "default" 通用的「推理深度」开关,LiteLLM 会按 provider 映射(如 Anthropic 的 thinking.budget_tokens
thinking dict Anthropic 原生风格:{"type": "enabled", "budget_tokens": 1024}。传给 Anthropic/Bedrock 会原样透传;传给其它 provider 会按 drop_params 处理
verbosity "low" / "medium" / "high" gpt-5 系列控制输出冗长度

OpenAI 新增治理字段

字段 类型 含义
user string 端用户标识,OpenAI 用来做滥用检测。LiteLLM 还会把它回写到 end_user_id 做限流 / 预算
safety_identifier string 新增的 user 替代品,做 abuse tracking
service_tier "auto" / "default" / "flex" / "priority" 计算资源层级
prompt_cache_key string OpenAI 提示缓存 key
prompt_cache_retention string 缓存保留策略
store bool 是否在 OpenAI 侧持久化该请求,用于之后走 Evals / 回放

路由级覆盖(请求级动态连接 provider)

这些字段严格来说不是 OpenAI 协议的一部分,但 completion() 的显式参数里接受,放在 body 里也会被识别:

字段 类型 含义
api_base / base_url string 临时覆盖模型的上游 endpoint
api_key string 临时覆盖上游 key(慎用,暴露凭证给下游)
api_version string Azure OpenAI 的 api-version
deployment_id string Azure deployment 名(可选,一般走 model 就够了)
extra_headers dict 追加到 provider HTTP 请求的自定义头;在 OpenAI SDK 场景下也会被原样带出
timeout float 请求级超时(秒)
max_retries int 请求级重试次数

⚠️ 生产环境的代理一般不应该允许下游覆盖 api_base / api_key。建议在网关层过滤掉这些字段,或者在 key 级别通过 configurable_clientside_auth_params 收敛。


OpenAI 字段在 provider 间的支持矩阵(摘录)

下表只列若干常用 provider 的 get_supported_openai_params() 差异,完整列表请看各 provider 的 transformation.py

字段 openai anthropic bedrock(converse) vertex_ai / gemini
temperature / top_p / max_tokens / stop / stream
n
presence_penalty / frequency_penalty / logit_bias ✅(仅非 preview)
seed
logprobs / top_logprobs
tools / tool_choice / parallel_tool_calls ✅(非 ARN)
response_format
reasoning_effort / thinking gpt-5/o1 claude 3.7+/4.x claude ARN gemini thinking
web_search_options gpt-4o-search ✅(部分) nova(部分)
user ✅(metadata.user_id) ✅(requestMetadata) ❌(被 drop)
modalities / audio gpt-audio gemini audio

❌ 表示当前 provider 不在 get_supported_openai_params() 里。不开 drop_params 会抛 UnsupportedParamsError;开了就静默丢。