使用“全局路由”,设置“规则类型”为脚本,脚本源代码如下(需要根据实际情况修改 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;

标签: AI, Claude Code Router, 智谱

添加新评论