Files
higress/plugins/wasm-cpp/extensions/model_router/README.md

3.2 KiB
Raw Blame History

功能说明

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 参数进行路由

需要做如下配置:

modelToHeader: x-higress-llm-model

插件会将请求中 model 参数提取出来,设置到 x-higress-llm-model 这个请求 header 中,用于后续路由,举例来说,原生的 LLM 请求体是:

{
    "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

需要做如下配置:

addProviderHeader: x-higress-llm-provider

插件会将请求中 model 参数的 provider 部分(如果有)提取出来,设置到 x-higress-llm-provider 这个请求 header 中,用于后续路由,并将 model 参数重写为模型名称部分。举例来说,原生的 LLM 请求体是:

{
    "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 请求体将被改成:

{
    "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
}