10d3c7f88c
LiteLLM 的 VolcEngineChatConfig.get_supported_openai_params() 白名单不含 reasoning_effort,客户端一传就抛 UnsupportedParamsError;叠加 drop_params 后更糟 —— Router._deployment_params_with_request_reasoning_override 会先剥掉 部署侧 extra_body/thinking,drop_params 再把客户端参数丢掉,两者同归于尽, 上游 body 皆无该字段,方舟回落默认 high(静默失效)。 改动:17 个 volcengine 条目全部加 allowed_openai_params: [reasoning_effort]。 - 透传组(huoshan/deepseek-v4-*、doubao-seed-2-1-*、glm-5.2):客户端显式指定生效 - 档位别名组(doubao-seed-nothink/-minimal/-low/-medium/-high、fanyi): extra_body 钉死值为默认档位,客户端显式传参可覆盖;不传则走钉死档位 语义为「默认档位 + 客户端可覆盖」,非硬锁:LiteLLM 无纯配置手段实现强制覆盖。 实测依据见 config.yaml 注释(本地 echo 抓上游请求体)。
348 lines
12 KiB
YAML
348 lines
12 KiB
YAML
##yaml锚点方便配置。手动设定价格,方便ui中查看
|
||
x-definitions: &token_pricing
|
||
input_cost_per_token: 1
|
||
output_cost_per_token: 1
|
||
|
||
model_list:
|
||
# ======================= 监控模型维护入口 =======================
|
||
# 1. 这里的火山模型条目,就是“纳入监控模型”的主入口。
|
||
# 2. 常规版本号模型(如 xxx-260215)会由 volc_limit_sync.py 自动推导成监控别名 xxx。
|
||
# 3. 只有“资源包名与上游模型名不一致”或“一包多模型”时,才需要再改
|
||
# volc_limit_sync.py 里的 MANUAL_MONITORED_MODEL_ALIASES。
|
||
# 4. 改完后运行 `python generate_keys.py`,检查监控别名和 HARD_DAILY_LIMITS 的限额来源。
|
||
|
||
|
||
#=======================newapi
|
||
# ⚠️ 单向依赖约定:litellm → newapi(OpenAI 兼容网关,必须用 openai/ 前缀)。
|
||
# ⚠️ 严禁在 newapi 后台添加任何回指本 litellm (192.168.1.238:23003) 的渠道,
|
||
# 否则请求会在 litellm ↔ newapi 之间无限循环(循环风暴)。
|
||
|
||
- model_name: deepseek-v4-flash
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: openai/deepseek-v4-flash
|
||
api_base: os.environ/NEWAPI_BASE_URL
|
||
api_key: os.environ/NEWAPI_API_KEY
|
||
|
||
- model_name: deepseek-v4-pro
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: openai/deepseek-v4-pro
|
||
api_base: os.environ/NEWAPI_BASE_URL
|
||
api_key: os.environ/NEWAPI_API_KEY
|
||
|
||
|
||
#=======================火山平台,限时免费
|
||
|
||
|
||
|
||
|
||
|
||
- model_name: huoshan/deepseek-v4-flash
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/deepseek-v4-flash-ga-260731
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
|
||
- model_name: huoshan/deepseek-v4-pro
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/deepseek-v4-pro-ga-260813
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
|
||
|
||
|
||
|
||
- model_name: doubao-seed-2-1-turbo
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/doubao-seed-2-1-turbo-260628
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
extra_headers:
|
||
Connection: "close"
|
||
model_info:
|
||
max_input_tokens: 256000 # 允许的最大输入长度(单位:token)
|
||
max_context_length: 256000 # 上下文窗口上限
|
||
|
||
- model_name: doubao-seed-2-1-pro
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/doubao-seed-2-1-pro-260628
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
extra_headers:
|
||
Connection: "close"
|
||
model_info:
|
||
max_input_tokens: 256000 # 允许的最大输入长度(单位:token)
|
||
max_context_length: 256000 # 上下文窗口上限
|
||
|
||
|
||
- model_name: glm-5.2
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/glm-5-2-260617
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
# 方舟 glm-5-2-260617 支持 reasoning_effort(none/minimal/high/max,默认 high;
|
||
# 官方参数页 + 实测 curl 均确认),但 LiteLLM 的 VolcEngineChatConfig
|
||
# get_supported_openai_params() 白名单里没有它 —— 它是 openai-like 的固定
|
||
# 参数表,不含 reasoning_effort —— 客户端一传就抛 UnsupportedParamsError。
|
||
# allowed_openai_params 是官方逃生口:get_optional_params 用它在校验前
|
||
# extend supported_params,随后 _apply_openai_param_overrides 把该参数从
|
||
# non_default_params 原样写回 optional_params,最终透传到请求体。
|
||
# 不用 drop_params:那是把该模型所有不支持参数静默丢弃,会掩盖其它真错。
|
||
# 注意 thinking.type 无需此项,VolcEngineChatConfig 已原生白名单。
|
||
allowed_openai_params:
|
||
- reasoning_effort
|
||
extra_headers:
|
||
Connection: "close"
|
||
model_info:
|
||
max_input_tokens: 1024000 # 允许的最大输入长度(单位:token)
|
||
max_context_length: 1024000 # 上下文窗口上限
|
||
|
||
#=======================豆包汇总nothink
|
||
# 【思考档位别名组】doubao-seed-nothink / -minimal / -low / -medium / -high / fanyi
|
||
# 语义:别名后缀即【默认】档位,非硬锁。
|
||
# - 客户端不传 reasoning_effort:按 extra_body 钉的档位发给方舟。
|
||
# - 客户端显式传 reasoning_effort:以客户端为准(覆盖默认档位)。
|
||
# 为什么钉不成硬锁(实测,本地 echo 抓上游 body):
|
||
# 请求带 reasoning_effort 时,Router._deployment_params_with_request_reasoning_override
|
||
# 会【无条件】剥掉部署侧 extra_body.reasoning_effort / thinking;
|
||
# 此时若没有 allowed_openai_params 放行,drop_params 又把客户端这个参数丢掉,
|
||
# 两者同归于尽 ⇒ 上游 body 两者都没有 ⇒ 方舟回落默认 high(静默失效)。
|
||
# 故必须加 allowed_openai_params:让客户端值能通过校验,使结果至少是
|
||
# 「客户端说了算」而不是「悄悄变回 high」。
|
||
# LiteLLM 当前无纯配置手段做到「不论客户端传什么一律覆盖」;要硬锁只能加
|
||
# pre-call hook(本仓库当前不采用)。
|
||
# 注:方舟 doubao 上 minimal 等价于关闭思考(实测 reasoning_tokens=0),
|
||
# 故 nothink/minimal/fanyi 三个别名默认档位统一用 minimal。
|
||
|
||
|
||
- model_name: doubao-seed-nothink
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/doubao-seed-2-1-pro-260628
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
extra_headers:
|
||
Connection: "close"
|
||
extra_body:
|
||
reasoning_effort: "minimal"
|
||
|
||
- model_name: doubao-seed-nothink
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/doubao-seed-2-1-turbo-260628
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
extra_headers:
|
||
Connection: "close"
|
||
extra_body:
|
||
reasoning_effort: "minimal"
|
||
|
||
|
||
|
||
#=======================豆包汇总思考等级minimal
|
||
|
||
|
||
- model_name: doubao-seed-minimal
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/doubao-seed-2-1-pro-260628
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
extra_headers:
|
||
Connection: "close"
|
||
extra_body:
|
||
reasoning_effort: "minimal"
|
||
|
||
- model_name: doubao-seed-minimal
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/doubao-seed-2-1-turbo-260628
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
extra_headers:
|
||
Connection: "close"
|
||
extra_body:
|
||
reasoning_effort: "minimal"
|
||
|
||
|
||
#=======================豆包汇总思考等级low
|
||
|
||
|
||
|
||
- model_name: doubao-seed-low
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/doubao-seed-2-1-pro-260628
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
extra_headers:
|
||
Connection: "close"
|
||
extra_body:
|
||
reasoning_effort: "low"
|
||
|
||
- model_name: doubao-seed-low
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/doubao-seed-2-1-turbo-260628
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
extra_headers:
|
||
Connection: "close"
|
||
extra_body:
|
||
reasoning_effort: "low"
|
||
|
||
|
||
#=======================豆包汇总思考等级medium
|
||
|
||
|
||
- model_name: doubao-seed-medium
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/doubao-seed-2-1-pro-260628
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
extra_headers:
|
||
Connection: "close"
|
||
extra_body:
|
||
reasoning_effort: "medium"
|
||
|
||
- model_name: doubao-seed-medium
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/doubao-seed-2-1-turbo-260628
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
extra_headers:
|
||
Connection: "close"
|
||
extra_body:
|
||
reasoning_effort: "medium"
|
||
|
||
|
||
#=======================豆包汇总思考等级high
|
||
|
||
|
||
|
||
- model_name: doubao-seed-high
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/doubao-seed-2-1-pro-260628
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
extra_headers:
|
||
Connection: "close"
|
||
extra_body:
|
||
reasoning_effort: "high"
|
||
|
||
- model_name: doubao-seed-high
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/doubao-seed-2-1-turbo-260628
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
extra_headers:
|
||
Connection: "close"
|
||
extra_body:
|
||
reasoning_effort: "high"
|
||
|
||
|
||
#=======================fanyi
|
||
|
||
- model_name: fanyi
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/doubao-seed-2-1-pro-260628
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
extra_headers:
|
||
Connection: "close"
|
||
extra_body:
|
||
reasoning_effort: "minimal"
|
||
|
||
- model_name: fanyi
|
||
litellm_params:
|
||
<<: *token_pricing
|
||
model: volcengine/doubao-seed-2-1-turbo-260628
|
||
api_base: os.environ/HUOSHAN_BASE_URL
|
||
api_key: os.environ/HUOSHAN_API_KEY
|
||
allowed_openai_params: ["reasoning_effort"]
|
||
drop_params: true
|
||
extra_headers:
|
||
Connection: "close"
|
||
extra_body:
|
||
reasoning_effort: "minimal"
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
litellm_settings:
|
||
#drop_params: true #启用drop_params,这样LiteLLM会忽略不支持的参数,但参数仍然会传递给后端API
|
||
num_retries: 3 # retry call 3 times on each model_name (e.g. zephyr-beta)
|
||
fallbacks: [
|
||
#{"doubao-seed-high": ["deepseek-v4-pro"]}
|
||
]
|
||
#default_fallbacks: ["deepseek-v4-flash"]
|
||
request_timeout: 120 # raise Timeout error if call takes longer than 10s. Sets litellm.request_timeout
|
||
cache: False # 开启缓存
|
||
# cache_params:
|
||
# type: "redis" # 指定使用 Redis
|
||
# supported_call_types: ["completion", "embedding", "acompletion"] # 支持的类型
|
||
allowed_fails: 3 # cooldown model if it fails > 1 call in a minute.
|
||
# 当前生效入口:volc_limit_sync.py
|
||
# 监控模型发现、监控别名推导、资源包同步、HARD_DAILY_LIMITS 都在这个脚本里。
|
||
# 旧脚本 archive/daily_limit.py.deprecated 当前未启用,仅保留作历史参考。
|
||
callbacks: ["volc_limit_sync.proxy_handler_instance"]
|
||
|
||
router_settings: # router_settings are optional
|
||
routing_strategy: simple-shuffle
|
||
#model_group_alias: {"gpt-4": "gpt-4o"} # all requests with `gpt-4` will be routed to models with `gpt-4o`
|
||
num_retries: 3
|
||
timeout: 300 # 30 seconds
|
||
#cooldown_time: 60
|
||
|
||
general_settings:
|
||
store_model_in_db: false
|
||
store_prompts_in_spend_logs: false # <--- 这是最关键的一行
|
||
|
||
|
||
|