使用Claude Code Router自动在智谱大模型高峰期将glm-5.3更换为glm-5.3-flash
使用“全局路由”,设置“规则类型”为脚本,脚本源代码如下(需要根据实际情况修改 TARGET_MODEL 和 FLASH_MODEL):
// Claude Code Router — Node.js 路由脚本
// 规则类型:Node.js 脚本
// 功能:工作日(周一~周五)北京时间下午 14:00~18:00 范围内,
// 若请求模型为 "智谱/glm-5.3",则改写为 "智谱/glm-5.3-flash"。
//
// 说明:
// - 脚本在 CCR Worker 中以异步函数体执行,已注入 input / api / return。
// - 返回 null / undefined / false 表示「不命中」,继续下一条规则。
// - 返回 { model: "..." } 表示「命中」并使用该目标模型(必须是已配置模型)。
// - 时间窗口按中国标准时间(GMT+8)计算,避免服务器时区不同导致错位。
// - 14:00~18:00 解释为 [14:00, 18:00)(含 14:00,不含 18:00)。
// 如需包含 18:00 整点,把下方 inWindow 改为:hour >= 14 && hour <= 18。
const TARGET_MODEL = "智谱/glm-5.3";
const FLASH_MODEL = "智谱/glm-5.3-flash";
// 1. 仅处理目标模型,其余请求交给后续规则。
if (input.model !== TARGET_MODEL) {
return null;
}
// 2. 取北京时间(Asia/Shanghai)的星期与小时。
const parts = new Intl.DateTimeFormat("en-US", {
timeZone: "Asia/Shanghai",
weekday: "short", // Mon / Tue / ... / Sun
hour: "2-digit",
hour12: false,
}).formatToParts(new Date());
const map = Object.fromEntries(parts.map((p) => [p.type, p.value]));
const weekday = map.weekday; // e.g. "Mon"
const hour = Number(map.hour); // 00–23
// 3. 判断是否为工作日(周一~周五)且在下午窗口内。
const isWeekday = !["Sat", "Sun"].includes(weekday);
const inWindow = hour >= 14 && hour < 18;
// 4. 命中则改写模型,否则交由后续规则。
if (isWeekday && inWindow) {
return {
model: FLASH_MODEL,
};
}
return null;