Skip to main content

模型路由

Firefly Router 提供了丰富的模型路由功能,您可以按照您的需要选择合适的路由策略来优化您的模型调用。

模型ID

在 Firefly Router 中,能够唯一表示某个供应商提供的某个模型的是模型ID,它是由供应商代码和模型代码组合而成的,格式是:providerCode/modelCode,例如zhipu/glm-5.3-flash,所有支持的模型ID请至模型广场查看。

故障转移(Failover)

无论哪一家厂商的模型API,都可能存在报错、限流、无法响应等情况,特别是在使用高峰的时候,因此在需要稳定性的应用场景下,模型故障转移就变得尤为重要。好在您不需要自己实现这样的逻辑,我们提供了内置的支持。您只需要通过模型路由表达式来实现。

启用模型故障转移在 Firefly Router 很简单,只需要在API调用传递 model 参数时使用模型路由表达式来实现即可

显式故障转移

使用逗号 , 分隔多个明确的模型 ID(可跨厂商、跨模型)。请求将优先调用第一个模型;发生故障时,按书写顺序依次重试。例如:

deepseek/deepseek-v4-flash-0731,bailian/deepseek-v4-flash-0731

当 DeepSeek 官方的 deepseek-v4-flash-0731 模型不可用时,会自动切换到阿里百炼的同款模型。 模型ID可以不相同。

请求示例:

{
"model": "deepseek/deepseek-v4-flash-0731,bailian/deepseek-v4-flash-0731",
"messages": [
{
"role": "user",
"content": "你好, 我是Firefly Router"
}
]
}

同名模型自动故障转移

通过供应商通配符 * 匹配所有提供该模型的厂商。系统会自动优先调用最合适的模型,并将其余供应商依次作为备用线路。例如:

*/deepseek-v4-flash-0731

注:表达式直接写 deepseek-v4-flash-0731 得到的也是相同的效果,但不建议这么做,因为不直观而容易造成疏忽。

智能路由

如果您想在某几个模型范围内,选择价格便宜的模型优先调用,只需要使用 $() 符号包裹多个明确的模型ID,中间用逗号 , 或竖线符号 | 分隔。与单纯的显式故障转移模式不同,模型ID列出的先后顺序无关紧要,因为最终会按照价格重排,例如:

$(deepseek/deepseek-v4-flash-0731,zhipu/glm-5.3-flash)

这个例子选择表达式列出的范围内价格最便宜的模型调用,其余的作为故障转移 因为 deepseek-v4-flash-0731 存在分时价格,所以当谷价是,这个表达式会根据实时价格选择 deepseek-v4-flash-0731 作为优先调用;当峰价时,会选择 zhipu/glm-5.3-flash 调用,所以它是动态的。

也可以写成:

$(deepseek/deepseek-v4-flash-0731|zhipu/glm-5.3-flash)

表示选择表达式范围内价格最便宜的模型调用,故障发生时其余的模型不会被调用(注:这种路由模式只有在模型存在分时计费的情况下才有意义,一般情况下用上面的逗号分隔模式)

注:价格判断是动态的,如果有分时价格会按照当前时间的实际价格排序;模型价格调整也会影响模型的自动选择。

使用通配符

使用供应商通配符 * 不仅可以实现故障转移,同样它也是智能路由,

这个模型表达式中 */deepseek-v4-flash-0731 中供应商通配符*表示在所有支持 deepseek-v4-flash-0731 供应商中自动选择当前综合价格最低的供应商,并将其余供应商按价格由低到高排列作为备用线路。

当然,这种模式会可能调用任一支持该模型的供应商,如果你不希望调用某个供应商,那需要您仍然使用以上显式声明的方式一一列出。

随机路由

用竖线符号 | 分隔模型ID可以随机的选择一个模型调用(没有故障转移),用处不大但是万一你需要呢。例子:

deepseek/deepseek-v4-flash-0731|zhipu/glm-5.3-flash

模型别名

当您的模型路由表达式比较复杂时,可能看起来并不是很直观,您可以通过创建模型别名来简化,例如:

可以给上面的表达式 $(deepseek/deepseek-v4-flash-0731,bailian/deepseek-v4-flash-0731) 创建一个简短且容易理解的别名 cheap-deepseek-v4-flash

进入控制台的 别名管理 页面,点击右上角的 创建别名,输入别名名称和表达式,保存之后即可使用。

Create Model Alias

请求示例:

{
"model": "cheap-deepseek-v4-flash",
"messages": [
{
"role": "user",
"content": "你好, 我是Firefly Router"
}
]
}

对于非编程实现大模型调用的情况也是一样的,例如对于配置 Claude Code 使用,只需要把原来填写的模型ID,改为填写您自己创建的模型别名即可。

声明

  • 模型自动路由中的价格排序是按照模型的输入、缓存命中和输出价格综合了一般使用场景综合计算得出的。而您的实际使用场景下的Token消耗或者不同模型之间Token的消耗情况可能存在较大差异,所以我们不能保证价格排序一定能够完全符合您的实际情况下的最优的Token费用,但我们会致力于优化排序的准确性。