自定义路由器
使用 JavaScript 编写自己的路由逻辑。
创建自定义路由器
创建一个导出路由函数的 JavaScript 文件:
// custom-router.js
module.exports = async function(req, config) {
// 获取用户消息
const userMessage = req.body.messages.find(m => m.role === 'user')?.content;
// 自定义逻辑
if (userMessage && userMessage.includes('解释代码')) {
return 'openrouter,anthropic/claude-3.5-sonnet';
}
// 返回 null 以使用默认路由
return null;
};
参数说明
路由函数接收以下参数:
| 参数 | 类型 | 说明 |
|---|---|---|
req | object | 来自 Claude Code 的请求对象,包含请求体 |
config | object | 应用程序的配置对象 |
配置
在 config.json 中设置 CUSTOM_ROUTER_PATH 以使用您的自定义路由器 :
{
"CUSTOM_ROUTER_PATH": "/path/to/custom-router.js"
}
返回格式
路由函数应返回以下格式的字符串:
{provider-name},{model-name}
示例:
deepseek,deepseek-chat
如果返回 null,则回退到默认路由配置。
错误处理
如果路由函数抛出错误或返回无效格式,路由器将回退到默认路由配置。
示例:基于时间的路由
module.exports = async function(req, config) {
const hour = new Date().getHours();
// 工作时间使用更快的模型
if (hour >= 9 && hour <= 18) {
return 'groq,llama-3.3-70b-versatile';
}
// 非工作时间使用更强大的模型
return 'deepseek,deepseek-chat';
};