mirror of
https://github.com/alibaba/higress.git
synced 2026-02-20 05:50:49 +08:00
99 lines
3.2 KiB
Markdown
99 lines
3.2 KiB
Markdown
## 功能说明
|
||
`model-router`插件实现了基于LLM协议中的model参数路由的功能
|
||
|
||
## 配置字段
|
||
|
||
| 名称 | 数据类型 | 填写要求 | 默认值 | 描述 |
|
||
| ----------- | --------------- | ----------------------- | ------ | ------------------------------------------- |
|
||
| `modelKey` | string | 选填 | model | 请求body中model参数的位置 |
|
||
| `addProviderHeader` | string | 选填 | - | 从model参数中解析出的provider名字放到哪个请求header中 |
|
||
| `modelToHeader` | string | 选填 | - | 直接将model参数放到哪个请求header中 |
|
||
| `enableOnPathSuffix` | array of string | 选填 | ["/completions","/embeddings","/images/generations","/audio/speech","/fine_tuning/jobs","/moderations","/image-synthesis","/video-synthesis"] | 只对这些特定路径后缀的请求生效,可以配置为 "*" 以匹配所有路径 |
|
||
|
||
## 运行属性
|
||
|
||
插件执行阶段:认证阶段
|
||
插件执行优先级:900
|
||
|
||
## 效果说明
|
||
|
||
### 基于 model 参数进行路由
|
||
|
||
需要做如下配置:
|
||
|
||
```yaml
|
||
modelToHeader: x-higress-llm-model
|
||
```
|
||
|
||
插件会将请求中 model 参数提取出来,设置到 x-higress-llm-model 这个请求 header 中,用于后续路由,举例来说,原生的 LLM 请求体是:
|
||
|
||
```json
|
||
{
|
||
"model": "qwen-long",
|
||
"frequency_penalty": 0,
|
||
"max_tokens": 800,
|
||
"stream": false,
|
||
"messages": [{
|
||
"role": "user",
|
||
"content": "higress项目主仓库的github地址是什么"
|
||
}],
|
||
"presence_penalty": 0,
|
||
"temperature": 0.7,
|
||
"top_p": 0.95
|
||
}
|
||
```
|
||
|
||
经过这个插件后,将添加下面这个请求头(可以用于路由匹配):
|
||
|
||
x-higress-llm-model: qwen-long
|
||
|
||
### 提取 model 参数中的 provider 字段用于路由
|
||
|
||
> 注意这种模式需要客户端在 model 参数中通过`/`分隔的方式,来指定 provider
|
||
|
||
需要做如下配置:
|
||
|
||
```yaml
|
||
addProviderHeader: x-higress-llm-provider
|
||
```
|
||
|
||
插件会将请求中 model 参数的 provider 部分(如果有)提取出来,设置到 x-higress-llm-provider 这个请求 header 中,用于后续路由,并将 model 参数重写为模型名称部分。举例来说,原生的 LLM 请求体是:
|
||
|
||
```json
|
||
{
|
||
"model": "dashscope/qwen-long",
|
||
"frequency_penalty": 0,
|
||
"max_tokens": 800,
|
||
"stream": false,
|
||
"messages": [{
|
||
"role": "user",
|
||
"content": "higress项目主仓库的github地址是什么"
|
||
}],
|
||
"presence_penalty": 0,
|
||
"temperature": 0.7,
|
||
"top_p": 0.95
|
||
}
|
||
```
|
||
|
||
经过这个插件后,将添加下面这个请求头(可以用于路由匹配):
|
||
|
||
x-higress-llm-provider: dashscope
|
||
|
||
原始的 LLM 请求体将被改成:
|
||
|
||
```json
|
||
{
|
||
"model": "qwen-long",
|
||
"frequency_penalty": 0,
|
||
"max_tokens": 800,
|
||
"stream": false,
|
||
"messages": [{
|
||
"role": "user",
|
||
"content": "higress项目主仓库的github地址是什么"
|
||
}],
|
||
"presence_penalty": 0,
|
||
"temperature": 0.7,
|
||
"top_p": 0.95
|
||
}
|
||
```
|