GPT 国内开通指南

Codex 额度为什么还没恢复?用 Python 分开核验窗口与北京时间

AIXiamo 整理 · 2026 年 9 月 11 日(北京时间)

排查额度时,要把每个窗口分开看:一个窗口还有余额,不能推出其他窗口也可用;记录中的重置时间已到,也需要刷新 Usage 才能知道新状态。本例用 Python 标准库演示百分比校验、Unix 秒转北京时间,以及缺失和过期记录的处理。

先核对使用入口

使用 ChatGPT 登录与使用 API key 登录,对应不同的访问及计费方式。官方用量页面或 Codex CLI 的 /status 可用于核对当前限额。先确认账号、工作区及登录方式,再记录实际展示的窗口名称、百分比含义和重置时间。OpenAI:Authentication、OpenAI:Pricing

运行三个合成案例

需要 Python 3.8 或更高版本。在本目录运行:

python3 usage_windows.py --as-of '2026-09-11T15:00:00+08:00'
python3 -m unittest -v test_usage_windows.py

省略 --as-of 也使用上述固定时间,便于复现;程序不会自动读取当前时间。三个案例均为构造数据,不对应任何真实账号或订单。

案例 窗口 已用 重置时间(北京时间) 预期判定
A 5 小时 100% 9 月 11 日 17:00 已用完
A 周窗口 40% 9 月 14 日 10:00 当前未用完
B 5 小时 20% 9 月 11 日 17:00 当前未用完
B 周窗口 100% 9 月 14 日 10:00 已用完
C 旧窗口 100% 9 月 11 日 14:59:59 到重置时间,需刷新
C 缺失记录 未记录 9 月 11 日 17:00 信息缺失
C 毫秒误填 40% 误把 13 位毫秒填为秒 数据异常

“5 小时”和“周窗口”是案例标签,程序不会依据名称生成周期,也不假定所有账号和模型都有相同窗口。A 和 B 分别显示为什么不能只看一条进度条;C 显示为什么空值不等于零、过点不等于已恢复。

人工记录格式

也可直接传入一个构造的 JSON 数组:

python3 usage_windows.py \
  --as-of '2026-09-11T15:00:00+08:00' \
  --records '[{"name":"示例窗口","usedPercent":80,"resetsAt":1789117200}]'

输出中的北京时间为 2026-09-11T17:00:00+08:00,判定为“当前未用完”,该窗口剩余 20%。

字段 本例约定
name 人工填写的窗口名称;应能区分实际窗口和模型范围
usedPercent 已使用的百分比,必须是 0–100 的有限数字;若界面显示“剩余”,先确认语义再转换
resetsAt 人工填写的整数 Unix 时间戳,单位为秒;不接受毫秒或无时区字符串
--as-of 核验时刻,必须包含时区,例如 +08:00 或 Z;所有输出统一为固定 UTC+08:00

这些字段是本示例的数据格式,不是官方接口。人工记录应对应 --as-of 所述时刻的观察;旧截图、估算百分比或缺少重置时间时,先重新核对,不把推测补成真实数值。程序仅解释传入记录,不能验证其真实性或实时性,也不代表账号诊断。

判断顺序与边界

  1. 数据异常优先。 NaN、无穷、布尔值、数字字符串、负数及超过 100 的百分比均拒绝;重置时间限定为 1–9999999999 的整数 Unix 秒,这是本例的输入边界,用来排除常见的 13 位毫秒误填,不是 OpenAI 的接口要求。
  2. 缺失保留缺失。 没有名称、百分比或重置时间,输出“信息缺失”;null 不转成 0,0 本身是合法的已用百分比。
  3. 到点必须刷新。 当 as_of >= resetsAt,输出“到重置时间,需刷新”,不计算新窗口余额,不自动把旧的 100% 改为 0%。
  4. 有效记录逐条判断。 未到重置时间时,100% 为“已用完”,其他合法数值为“当前未用完”,剩余按 100 - usedPercent 计算。

程序不相加、平均或合并不同窗口的百分比;“当前未用完”仅指这条记录,不保证任务一定能继续,还需要核对其他适用窗口、实际错误与账号状态。

文件与验证

程序只处理内置数据或 --records 参数中的人工数据;不读取账号文件、环境变量或本地凭据,不请求网络。示例沿用本仓库的 MIT 许可。