帮你快速理解、总结文档立即下载

配置参数转换

最近更新时间:2026-10-19 17:54:30
我的收藏
本文介绍如何在模型路由 CMR 实例中,配置参数转换文件。参数转换用于在网关入口处改写客户端请求参数,将进入标准协议链路的参数整理为统一形态,使您能够通过统一的网关调用不同协议的大模型,简化多模型接入的开发工作。

前提条件

已创建模型路由实例,详情请参见 操作指导。
已在实例中关联待调用的模型,并确认客户端使用的端点及请求中的 model 值。
配置前已了解上游模型支持的参数及类型。策略通过校验不代表上游模型一定接受改写后的参数。

配置说明

一个模型路由 CMR 实例共用一份参数转换策略文件。
参数转换策略以 JSON 格式为基础。策略文件必须是合法的 JSON 对象,不支持 JSON 注释或未登记的字段,请参见 JSON POINTER 标准协议。
参数转换支持的策略类型有:放通、丢弃、设置默认值、强制覆盖、字段改写。
产品提供内置默认放通规则。用户不能通过此配置文件编辑或删除内置规则本身,但可以通过用户规则改变字段的处理结果,例如使用 deny 丢弃一个默认放通字段,详见 全局默认放通规则列表。

策略定义

顶层结构

推荐显式填写以下四个字段:
{
"version": "1.0",
"default_effect": "passthrough",
"statement": [],
"enabled": true
}
字段
类型
是否必填
定义
version
string
是
策略 schema 版本,当前固定为 "1.0"
default_effect
string
否,建议显式填写
默认 "passthrough";可选 "passthrough"、"deny",决定请求体中未被放通规则覆盖的字段如何处理。其中:
passthrough:未被放通规则覆盖的顶层字段进入 custom 旁路,随后合回请求体
deny:未被放通规则覆盖的字段不进入输出请求体;不表示拒绝整个请求
statement
array
否,建议显式填写
策略语句数组,省略时为 []
enabled
boolean
否,建议显式填写
提交策略时默认 true,控制文本协议转换是否启用;不等同于删除配置
注意:
顶层 enabled 仅作用于 chat_completions、responses、anthropic_messages 三个文本端点;不控制 embeddings、videos_* 和 rerank 的参数改写。
如需停用某条 embeddings 规则时,则设置该语句的 enabled: false 或在全量配置中移除。
不建议使用顶层 enabled: false 推断全部端点均已停止转换。
该设置是实例级的,只作用于请求体,不对请求头执行默认丢弃。它也不是“保留原始请求”的保证:显式 deny、set、rewrite 等规则仍会执行。
注意:
旁路兜底以放通规则占用的顶层字段为边界。如果仅放通 /extra/a,不能依靠 passthrough 自动保留 /extra/b。需要保留整个对象时,可放通 /extra,或为需要保留的子字段分别配置规则。

单条语句字段

字段
类型
是否
必填
说明
effect
string
是
对目标字段执行的操作。取值范围:allow、deny、set_if_absent、set 和 rewrite,其中:
allow:放通,将现存目标字段送入指定链路,不会自动补字段或设置默认值。
deny:丢弃,从转换结果中删除指定字段,字段不存在时不操作。
set_if_absent:设置默认值,仅目标字段不存在时写入设置的值。
set:强制覆盖,目标存在时覆盖,目标不存在时写入设置的值。
rewrite:字段改写,读取 source,命中 map 后将映射值写入 target。
说明:
“不存在”不等于空值: null、false、0、空字符串、空对象、空数组都表示字段已存在,不触发 set_if_absent。嵌套对象父级缺失时可以创建对象分支,但父级类型不兼容或现有数组索引越界时不写入。
rewrite 不自动删除源字段: 成功改写时默认保留 source。若不希望源字段送往上游,可另配 deny,或通过 default_effect: "deny" 和放通清单控制输出。源不存在、类型不适合映射或没有命中 map 时,目标保持原样。
设值与放通是两个阶段: 向一个非标准字段 set 或 rewrite,并不自动为它增加放通规则。如果使用 default_effect: "deny",新写入的非标准字段也需要显式 allow 才能保留到输出。
action
string 或 string[]
建议显式填写
端点标识符或端点列表。"*" 表示全部支持的端点。实现兼容省略该字段,含义同 "*"。当前支持的取值如下:
chat_completions:表示客户的请求路径为POST /v1/chat/completions。
responses:表示客户的请求路径为POST /v1/responses。
anthropic_messages:表示客户的请求路径为POST /v1/messages。
embeddings:表示客户的请求路径为POST /v1/embeddings。
videos_create:表示客户的请求路径为POST /v1/videos。
videos_list:表示客户的请求路径为GET /v1/videos。
videos_retrieve:表示客户的请求路径为GET /v1/videos/{video_id}。
videos_delete:表示客户的请求路径为DELETE /v1/videos/{video_id}。
rerank:表示客户的请求路径为POST /v1/rerank,也支持 /v2/rerank、/rerank。
说明:
这里填写的是端点标识符,不填写路径或页面展示名。例如,应填写 chat_completions,不能填写 /v1/chat/completions、chat_completion 或 OpenAI/chat。
target
string 或 string[]
是
操作的目标位置。body 空间使用 JSON Pointer;header 空间使用 HTTP 头名
resource
string 或 string[]
否
客户端原始 model 名或模型名列表;省略或单独设置为 "*" 表示全部模型
说明:
resource 匹配客户端实际发送的原始模型名,不是路由解析后的上游模型名。
模型名按精确值匹配,不支持 qwen* 这样的部分通配;
不校验模型是否已存在。
全部模型请直接写 "resource": "*",不要写成列表中的 "*"。
space
string
否
默认 "body",也可设置为 "header"
source
string
rewrite 必填
从原始请求体读取值的 JSON Pointer
value
任意 JSON 值
按 effect 要求
要写入的字面量,不作为内核表达式解析
value_from
object
按 effect 要求
从原始请求体或请求头取值;只用于 set、set_if_absent,与 value 必须二选一
map
array
rewrite 必填
非空映射表,每项为 {"key": 标量, "value": 任意 JSON 值}
condition
object
否
单条语句的生效条件,见“条件定义”

JSON Pointer 与值类型

写法
指向
/max_tokens
顶层字段 max_tokens
/chat_template_kwargs/enable_thinking
嵌套字段 enable_thinking
/messages/0/role
已存在数组的第 0 个元素的 role
说明:
JSON 字面量决定类型:2048 是数字,"2048" 是字符串,true 是布尔值,"true" 是字符串。map.key 只能是字符串、数字、布尔值或 null,按“类型 + 值”匹配;true、"true"、1 是不同的键,数值 1 与 1.0 视为同一键。

条件定义

条件读取原始请求体,不读取其他语句改写后的中间结果。
操作符
形态
含义
exists
{"exists": "/thinking"}
字段存在即成立,值为 null、false 也成立
string_equal
{"string_equal": {"/mode": ["fast"]}}
字符串相等
number_equal
{"number_equal": {"/n": [1]}}
数字相等,不将布尔值当数字
bool_equal
{"bool_equal": {"/stream": [true]}}
布尔值相等
null_equal
{"null_equal": {"/metadata": [null]}}
字段存在且值为 null
说明:
每条语句最多配置一个条件操作符;比较类只能包含一个路径和一个值。不支持 and、or、大于、小于或不存在判断。不能用 /model 作为条件路径,按模型区分请使用 resource。

策略示例

以下示例均为独立的完整策略,不是让您依次提交的增量片段。
替换示例模型名并合并到现有配置后再提交。
请求和结果仅展示参数转换阶段,省略其他参数时不表示它们可从真实模型调用中省略;
预览通过不表示上游调用验证通过。

示例 1:放通私有参数并丢弃未声明参数

仅放通 qwen3-demo 的私有参数 chat_template_kwargs,保留内置标准字段,丢弃其他未放通字段。
{
"version": "1.0",
"enabled": true,
"default_effect": "deny",
"statement": [
{
"effect": "allow",
"action": "chat_completions",
"resource": "qwen3-demo",
"target": "/chat_template_kwargs",
"destination": "custom"
}
]
}
转换结果:
model、messages 由内置规则放通。debug_mode 不在放通范围内,因此被丢弃。
{
"model": "qwen3-demo",
"messages": [{"role": "user", "content": "Hello"}],
"chat_template_kwargs": {"enable_thinking": true}
}

示例 2:丢弃不支持的字段

同时对 Chat Completions 和 Responses 丢弃两个参数,一条语句展开为 4 条规则。
{
"version": "1.0",
"enabled": true,
"default_effect": "passthrough",
"statement": [
{
"effect": "deny",
"action": ["chat_completions", "responses"],
"target": ["/frequency_penalty", "/presence_penalty"]
}
]
}
请求字段片段
结果字段片段
{"temperature": 0.7, "frequency_penalty": 0.5, "presence_penalty": 0.2}
{"temperature": 0.7}
即使 frequency_penalty 位于 Chat Completions 的默认放通清单中,也会被显式 deny 删除

示例 3:为缺失参数设置默认值

{
"version": "1.0",
"enabled": true,
"default_effect": "passthrough",
"statement": [
{
"effect": "set_if_absent",
"action": "chat_completions",
"target": "/max_tokens",
"value": 2048
}
]
}
请求字段片段
结果字段片段
原因
{}
{"max_tokens": 2048}
字段缺失,补默认值
{"max_tokens": 512}
{"max_tokens": 512}
已存在,保持原值
{"max_tokens": null}
{"max_tokens": null}
null 仍表示字段存在;上游是否接受需另行验证

示例 4:Header 改写,将会话标识归一到请求头

目标头不存在时,优先读取请求体的 /session_id,否则读取 x-conversation-id。
{
"version": "1.0",
"enabled": true,
"default_effect": "passthrough",
"statement": [
{
"effect": "set_if_absent",
"action": "chat_completions",
"space": "header",
"target": "X-CMR-Session-Id",
"value_from": {
"first_available": [
{"from": "body", "path": "/session_id"},
{"from": "header", "name": "x-conversation-id"}
]
}
}
]
}
原始请求
网关内部可见的会话头
body 含 "session_id": "session-001",无目标头
X-CMR-Session-Id: session-001
body 无 session_id,含 x-conversation-id: session-002
X-CMR-Session-Id: session-002
已有 x-cmr-session-id: session-original
保留原目标头,大小写不影响“已存在”判断
两个来源均不存在,且无目标头
不写入目标头
注意:
改写的会话头用于网关内部会话处理。
first_available 选择第一个读取成功的来源,不是“第一个通过会话 ID 校验的来源”。body 中存在 session_id: null 或空字符串时,不会继续尝试备用头,而会在会话值校验时导致请求失败。
会话 ID 必须是 1~128 个可见 ASCII 字符,不含空格或中文。使用真实业务 ID 预览验证。
本例不会删除 body 中的 session_id;需要删除时可另配 body 空间的 deny。

操作步骤

2. 在左侧导航栏选择实例管理,单击目标实例 ID 进入实例详情页。
3. 切换至模型调度管理页签。
4. 单击页面顶部参数转换提示横幅中的去配置,打开参数转换配置面板。

5. 在 JSON 编辑框输入参数。
6. 选择协议,并单击预览,查看预览效果。
7. 确认无误后,单击提交配置,完成参数转换策略文件的配置。
说明:
初次配置可使用“顶层结构”中的骨架,将所需规则加入 statement。
编辑时,不要直接用单个示例覆盖全部内容,以免删除原有规则。建议先复制当前配置,再确认修改。

全局默认放通规则列表

以下列表与网关默认规则文件一致,所有字段的默认配置均为 primary。列表中的名称是顶层 JSON 字段,对应 target 为 /<字段名>。这些是系统内置规则,无需复制进 statement。

Chat Completions:chat_completions

共 37 个字段:
messages, model, audio, frequency_penalty, function_call, functions,
logit_bias, logprobs, max_completion_tokens, max_tokens, metadata,
modalities, moderation, n, parallel_tool_calls, prediction,
presence_penalty, prompt_cache_key, prompt_cache_options,
prompt_cache_retention, reasoning_effort, response_format,
safety_identifier, seed, service_tier, stop, store, stream,
stream_options, temperature, tool_choice, tools, top_logprobs,
top_p, user, verbosity, web_search_options

Anthropic Messages:anthropic_messages

共 18 个字段:
max_tokens, messages, model, cache_control, container, inference_geo,metadata, output_config, service_tier, stop_sequences, stream, system,temperature, thinking, tool_choice, tools, top_k, top_p

Responses:responses

共 31 个字段:
background, context_management, conversation, include, input,instructions, max_output_tokens, max_tool_calls, metadata, model,moderation, parallel_tool_calls, previous_response_id, prompt,prompt_cache_key, prompt_cache_options, prompt_cache_retention,reasoning, safety_identifier, service_tier, store, stream,stream_options, temperature, text, tool_choice, tools, top_logprobs,top_p, truncation, user

Embeddings:embeddings

共 5 个字段:
model, input, dimensions, encoding_format, user

创建视频:videos_create

共 10 个字段:
model, contents, task_type, duration, resolution, aspect_ratio,audio, seed, watermark, negative_prompt

查询视频列表:videos_list

共 4 个字段:
status, model, offset, limit

查询视频任务:videos_retrieve

共 1 个字段:
video_id

删除视频任务:videos_delete

共 1 个字段:
video_id

重排序:rerank

共 6 个字段:
model, query, documents, top_n, return_documents, instruct

相关操作