一、操作场景
·参数注入:为所有请求自动添加必要的参数(如固定的 temperature、max_tokens)
·参数覆盖:覆盖客户端传入的参数值,统一控制模型行为
·参数清理:删除敏感或不必要的参数,防止参数泄露
·协议适配:适配不同供应商的参数差异(如将 top_p 改写为 topP)
·多版本兼容:支持不同 API 版本的参数格式转换
注意:说明:
注意:参数改写发生在请求路由之后、转发给后端模型服务之前,仅影响转发的请求,不影响客户端收到的响应。
二、前置条件
1. 已创建 AI 网关实例且处于运行中状态。
2. 已创建模型 API。
3. 了解后端模型服务支持的参数格式和要求。
三、步骤 1:进入模型 API 详情页
1. 登录 微服务平台控制台,左侧导航栏选择 AI 网关,进入实例列表页面。
2. 在实例列表页面,单击需要配置的网关实例的“ID”,进入该网关实例的基本信息页面。
3. 在左侧导航栏单击模型管理,然后单击模型 API 页签。
4. 单击目标模型 API 名称,进入 API 详情页。
5. 切换到参数改写页签。
四、步骤 2:参数改写配置
1. 在参数改写页签中,查看当前配置状态。
2. 单击配置参数改写规则进入配置页面。
3. 在配置页面中,开启是否启用开关。
4. 选择需要改写的参数,配置参数改写规则。
5. 单击添加按钮,可配置多条参数改写规则。规则按配置顺序依次执行。
操作类型说明:
| 操作类型 | 说明 | 使用场景 |
| 新增 | 添加新的参数键值对 | 注入默认参数如 temperature: 0.7 |
| 编辑 | 修改已有参数的值 | 覆盖客户端传入的参数 |
| 删除 | 删除指定的参数 | 清理敏感或不必要的参数 |
| 重命名 | 修改已有参数名 | 将原有参数名改为新参数名,参数的值不变 |
五、步骤 3:保存配置
单击确定保存参数改写规则,配置立即生效。
六、示例 1:统一温度参数
·场景:统一控制所有请求的 temperature 参数,避免客户端随意设置。
·配置:
| 阶段 | 操作类型 | 参数键 | 参数值 |
| Body 参数 | 编辑 | temperature | 0.7 |
·效果:无论客户端传入什么 temperature 值,最终都使用 0.7。
七、示例 2: 改写模型 body 参数字段
·场景:对模型请求/响应字段做重命名映射(如将 reasoning 统一映射为 reasoning_content),屏蔽不同推理框架之间的字段差异。
·配置:
| 阶段 | 操作类型 | 参数键 | 参数值 |
| Body 参数 | 编辑 | reasoning | reasoning_ content |
·效果:配置后,上游业务无需改造代码即可兼容不同模型服务返回的字段结构。
八、示例 3:清理敏感信息
·场景:删除请求中的用户标识信息,保护用户隐私。
·配置:
| 阶段 | 操作类型 | 参数键 | 参数值 |
| Body 参数 | 删除 | user | – |
| Body 参数 | 删除 | metadata.user_id | – |
·效果:请求中的用户标识字段被删除,不会转发给后端模型服务。
九、示例 4:适配 Azure OpenAI
·场景:适配 Azure OpenAI 的 api-version Query 参数要求。
·配置:
| 阶段 | 操作类型 | 参数键 | 参数值 |
| Query 参数 | 新增 | api-version | 2024-02-01 |
·效果:所有请求自动添加 ?api-version=2024-02-01。
十、注意事项
1. 执行时机:参数改写发生在请求路由之后、转发给后端模型服务之前。
2. 执行顺序:多条规则按配置顺序依次执行,建议将依赖性的规则按正确顺序排列。
3. Body 参数限制:仅支持对 JSON 格式的请求 Body 进行参数改写。
4. 参数键路径:支持简单的参数键名(如 temperature),暂不支持嵌套路径(如 messages[0].content)。
5. 与缓存的配合:参数改写发生在缓存查询之后,缓存的 Key 基于原始请求计算。
6. 与日志的关系:LLM Log 记录的是改写后的请求包体(如已开启包体采集)。
7. 参数值类型:当前版本参数值统一作为字符串处理,暂不支持数字、布尔等类型标记。