Skip to content

如何配置 CC-Switch 用量查询

CC-Switch 支持自定义用量查询,配置后可在界面上实时查看 CodexZH 的额度消耗,包括今日用量、本周用量、消费金额等。

效果图

cc-switch-usage-4

步骤 1:打开用量查询设置

在 CC-Switch 中找到用量查询入口,点击进入设置页面。

打开用量查询设置

步骤 2:填写请求地址和访问令牌

  • 请求地址:留空,图中内容已过时
  • 访问令牌:留空,图中内容已过时,API 令牌直接填写到代码中,注意看请求地址上的参数

填写请求地址和访问令牌

步骤 3:填写提取器代码

将下方代码完整粘贴到提取器输入框中:

填写提取器代码

javascript
({
  request: {
    url: "https://codexzh.com/api/v1/usage/stats?key=把你自己的 apikey,sk-开头的粘贴到这里,注意删除中括号",
    method: "GET",
    headers: {
      "Content-Type": "application/json",
    },
  },
  extractor: function (response) {
    const data = response?.success ? response.data : null;

    if (!data) {
      return {
        isValid: false,
        invalidMessage: response?.message || response?.error || "查询失败",
      };
    }

    const TOKEN_PER_USD = 500000;

    const toNumberOrNull = (value) => {
      if (value === null || value === undefined || value === "") return null;
      if (typeof value === "number") return Number.isFinite(value) ? value : null;
      if (typeof value === "string") {
        const normalized = value.replace(/[$,\s]/g, "");
        if (!normalized) return null;
        const parsed = Number(normalized);
        return Number.isFinite(parsed) ? parsed : null;
      }
      return null;
    };

    const toNumber = (value, fallback = 0) => {
      const parsed = toNumberOrNull(value);
      return parsed === null ? fallback : parsed;
    };

    const quotaPointsToUsd = (points) => toNumber(points) / TOKEN_PER_USD;
    const formatUsd = (value) => `$${toNumber(value).toFixed(2)}`;
    const formatUsdFromApi = (formattedValue, rawValue) => {
      if (typeof formattedValue === "string" && formattedValue.trim()) {
        return formattedValue.trim().startsWith("$")
          ? formattedValue.trim()
          : `$${formattedValue.trim()}`;
      }
      return formatUsd(rawValue);
    };
    const formatCount = (value) => Math.round(toNumber(value)).toLocaleString("zh-CN");

    const dailyBudgetUsd = toNumberOrNull(data.dailyBudget) ?? quotaPointsToUsd(data.dailyQuota);
    const weeklyBudgetUsd = toNumberOrNull(data.weeklyBudget) ?? quotaPointsToUsd(data.weeklyQuota);

    const todayUsedUsd = toNumber(data.todayUsed);
    const weekUsedUsd = toNumber(data.weekUsed);
    const totalUsedUsd = toNumberOrNull(data.analyticsTotalUsed) ?? toNumber(data.totalUsed);

    const todayRemainingUsd = Math.max(dailyBudgetUsd - todayUsedUsd, 0);
    const realtimeRemainingUsd = toNumberOrNull(data.remainQuota);
    const weekRemainingUsd = realtimeRemainingUsd ?? Math.max(weeklyBudgetUsd - weekUsedUsd, 0);

    return {
      isValid: true,
      planName: "Usage Stats",
      unit: "USD",

      // 主指标改为本周口径:周限额度 / 本周消费 / 实时剩余
      total: weeklyBudgetUsd,
      used: weekUsedUsd,
      remaining: weekRemainingUsd,

      extra: [
        `今日调用:${formatCount(data.todayCalls)}`,
        `今日消费:${formatUsdFromApi(data.todayUsedFormatted, todayUsedUsd)}`,
        `今日 Token:${formatCount(data.todayTokens)}`,
        `日限额度:${formatUsd(dailyBudgetUsd)}`,
        `今日剩余:${formatUsd(todayRemainingUsd)}`,
        `本周调用:${formatCount(data.weekCalls ?? data.totalCalls)}`,
        `本周消费:${formatUsdFromApi(data.weekUsedFormatted, weekUsedUsd)}`,
        `周限额度:${formatUsd(weeklyBudgetUsd)}`,
        `实时剩余:${formatUsd(weekRemainingUsd)}`,
        `总请求次数:${formatCount(data.totalRequests ?? data.totalCalls)}`,
        `总使用额度:${formatUsdFromApi(data.analyticsTotalUsedFormatted ?? data.totalUsedFormatted, totalUsedUsd)}`,
        `总使用 Token:${formatCount(data.totalTokens)}`,
        `RPM:${formatCount(data.rpm)}`,
        `TPM:${formatCount(data.tpm)}`,
        `订阅开始:${data.subscriptionStart ?? "-"}`,
        `订阅到期:${data.subscriptionEnd ?? "-"}`,
      ].join("\n"),
    };
  },
});

步骤 4:保存配置

点击右下角"保存"按钮,配置立即生效。

配置成功后,CC-Switch 会自动查询并展示:

  • 今日/本周调用次数
  • 今日/本周/总消费金额
  • 今日剩余额度、本周剩余额度
  • 当前 RPM / TPM 限速情况
  • 订阅有效期