功能说明
按模型名称路由会根据客户端请求中的
model字段自动匹配对应的模型服务。这种路由策略适用于以下场景:同一个 API 需要支持多个不同的模型(如
gpt-4o、gpt-4o-mini、claude-3-5-sonnet)不同模型由不同的供应商或服务实例提供
需要精确控制每个模型的路由目标
需要使用通配符匹配一组模型(如
gpt-4-*匹配所有 gpt-4系列模型)配置步骤
步骤1:创建模型服务
在配置路由策略前,需要先创建模型服务:
1. 登录微服务平台控制台,在左侧导航栏单击云原生智能网关 > 实例列表;
2. 在实例列表页面,单击需要配置的网关实例的“ID”,进入该网关实例的基本信息页面;
3. 在左侧导航栏单击模型管理,然后单击模型服务页签;
4. 在服务列表中单击新建,配置供应商、访问凭证等信息;
5. 保存模型服务。
步骤2:在模型 API 中配置模型名称路由
1. 在模型管理 > 模型 API 页签单击新建;
2. 完成基本信息配置后,在第二步:选择模型服务 页面,配置服务类型和路由策略;
3. 选择服务类型为多模型服务;
4. 选择路由策略为模型名称路由;
5. 在模型服务表格中添加服务并配置路由规则。
配置参数说明:
参数 | 说明 | 示例 | 是否必填 |
模型服务 | 从已创建的模型服务列表中选择 | gpt-4o-openai | 是 |
匹配模型名 | 客户端请求的 model 参数匹配规则,支持精确匹配和通配符匹配( *) | gpt-4o 或 gpt-4-* | 是 |
重写模型名 | 转发到后端服务时,将请求中的 model 参数重写为指定值。留空则透传原始值 | gpt-4o 或留空 | 否 |
步骤3:保存并发布
配置完成后,单击 确定 保存配置。路由规则会立即生效。
配置示例
示例1:精确匹配多个模型
场景:单个 API 需要支持3个不同的模型,分别由不同的服务提供
配置:
模型服务 | 匹配模型名 | 重写模型名 |
gpt-4o-openai | gpt-4o | (留空) |
gpt-4o-mini-openai | gpt-4o-mini | (留空) |
claude-3-5-sonnet-anthropic | claude-3-5-sonnet | (留空) |
测试请求:
# 请求1:路由到 gpt-4o-openaicurl -X POST https://{网关域名}/ai/llm/v1/chat/completions \\-H "Authorization:Bearer {API_Key}" \\-H "Content-Type:application/json" \\-d '{"model":"gpt-4o", "messages":[{"role":"user", "content":"你好"}]}'# 请求2:路由到 claude-3-5-sonnet-anthropiccurl -X POST https://{网关域名}/ai/llm/v1/chat/completions \\-H "Authorization:Bearer {API_Key}" \\-H "Content-Type:application/json" \\-d '{"model":"claude-3-5-sonnet", "messages": [{"role": "user", "content": "你好"}]}'
示例2:通配符匹配模型系列
场景:希望所有
gpt-4-*系列的模型都路由到同一个服务配置:
模型服务 | 匹配模型名 | 重写模型名 |
gpt-4-family-openai | gpt-4-* | (留空) |
gpt-3.5-turbo-openai | gpt-3.5-turbo | (留空) |
测试请求:
# 请求1:匹配通配符规则,路由到 gpt-4-family-openai,透传model=gpt-4ocurl -X POST https://{网关域名}/ai/llm/v1/chat/completions \\-H "Authorization: Bearer {API_Key}" \\-H "Content-Type: application/json" \\-d '{"model": "gpt-4o", "messages": [{"role": "user", "content": "你好"}]}'# 请求2:匹配通配符规则,路由到 gpt-4-family-openai,透传model=gpt-4-turbocurl -X POST https://{网关域名}/ai/llm/v1/chat/completions \\-H "Authorization: Bearer {API_Key}" \\-H "Content-Type: application/json" \\-d '{"model": "gpt-4-turbo", "messages": [{"role": "user", "content": "你好"}]}'# 请求3:精确匹配,路由到 gpt-3.5-turbo-openaicurl -X POST https://{网关域名}/ai/llm/v1/chat/completions \\-H "Authorization: Bearer {API_Key}" \\-H "Content-Type: application/json" \\-d '{"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "你好"}]}'
示例3:模型名称重写
场景:客户端使用自定义模型名称,但后端服务只识别标准模型名
配置:
模型服务 | 匹配模型名 | 重写模型名 |
gpt-4o-openai | my-custom-gpt4 | gpt-4o |
claude-3-5-sonnet-anthropic | my-custom-claude | claude-3-5-sonnet-20241022 |
测试请求:
# 客户端请求model=my-custom-gpt4,网关转发时重写为model=gpt-4ocurl -X POST https://{网关域名}/ai/llm/v1/chat/completions \\-H "Authorization: Bearer {API_Key}" \\-H "Content-Type: application/json" \\-d '{"model": "my-custom-gpt4", "messages": [{"role": "user", "content": "你好"}]}'# 转发到后端OpenAI服务的请求body:# {"model": "gpt-4o", "messages": [{"role": "user", "content": "你好"}]}
路由匹配规则
匹配优先级
当同一个请求可以匹配多个路由规则时,按以下优先级匹配:
1. 精确匹配优先于通配符匹配
如果配置了
gpt-4o(精确)和gpt-4-*(通配符),请求model=gpt-4o会匹配精确规则2. 匹配顺序按配置顺序
当多个通配符规则都匹配时,选择配置表格中最先添加的规则
3. 未匹配时返回404
如果请求的 model 参数无法匹配任何规则,返回错误响应
通配符规则
支持的通配符:
通配符 | 说明 | 示例 | 匹配结果 |
* | 匹配任意字符(0个或多个) | gpt-4-* | 匹配 gpt-4-turbo、gpt-4o、gpt-4-0125-preview |
gpt-* | 前缀匹配 | gpt-* | 匹配所有以 gpt-开头的模型 |
注意事项:
通配符
*只能在匹配模型名字段使用,不支持在重写模型名字段使用单个匹配规则只能包含一个通配符
*通配符大小写敏感,
GPT-*不会匹配gpt-4o模型名称重写逻辑
重写时机:
网关在转发请求到后端模型服务之前,会将请求 body 中的
model字段替换为"重写模型名"配置的值如果"重写模型名"留空,则透传客户端请求中的原始 model 值
典型场景:
场景 | 匹配模型名 | 重写模型名 | 客户端请求 model | 转发到后端的 model |
透传原始 model | gpt-4o | (留空) | gpt-4o | gpt-4o |
统一模型标识 | gpt-4-* | gpt-4-turbo-2024-04-09 | gpt-4-turbo | gpt-4-turbo-2024-04-09 |
自定义别名 | my-gpt4 | gpt-4o | my-gpt4 | gpt-4o |
未匹配处理
如果请求的模型名称无法匹配任何路由规则,网关会返回:
{"error": {"code": "model_not_found","message": "模型 'gpt-5' 不存在,请检查模型名称是否正确。可用模型: gpt-4o, gpt-4-*, claude-3-5-sonnet","type": "invalid_request_error"}}
错误信息中会列出当前 API 支持的所有匹配规则,方便客户端排查问题。