Codex 额度悄悄在掉?用 API 方式接管 OpenAI Codex,彻底搞清楚它在干什么
Codex 额度悄悄在掉?用 API 方式接管 OpenAI Codex,彻底搞清楚它在干什么
你有没有遇到过这种情况:打开 Codex 控制台,什么任务都没跑,额度却在一点一点往下掉。
不是幻觉。V2EX 上已经有不少人反映这个问题,有人甚至一觉醒来发现额度少了好几美元,后台日志里空空如也。
问题出在哪?Codex 的 Web 界面对你实际消耗了什么模型、发了多少 token,几乎是黑盒的。你看不到原始请求,看不到计费明细,只能干瞪眼。
解法很简单:绕开 Web 界面,用 API 方式直接调用,把每一笔消耗都打印出来。
先搞清楚一件事:Codex Plus 和 ChatGPT Plus 是一回事吗?
不完全是。
- ChatGPT Plus 订阅给你的是 ChatGPT 网页/App 的使用权,包含 GPT-4o、GPT-4.5(即最近被叫做 gpt-5.5 的那个)等模型的对话额度。
- Codex 是 OpenAI 推出的编程 Agent,底层跑的是
codex-mini或o3系列模型,有独立的额度池。 - 两者共享同一个 OpenAI 账号,但额度是分开计算的。
所以 Codex 额度在掉,不代表你的 ChatGPT Plus 对话额度有问题,反之亦然。
另外,Codex 的 API 登录方式目前不支持在任务执行中弹出浏览器操作,这是设计限制,不是 bug。如果你的任务需要人工介入(比如 OAuth 授权),只能走 Web 界面。
实战:用 Python 监控你的 Codex / GPT API 实际消耗
下面这段代码做三件事:
1. 发一个真实的代码审查请求给模型
2. 把返回的 usage 字段完整打印出来
3. 按当前官方定价估算这次调用花了多少钱
import os
import json
from openai import OpenAI
# 换成无量Api的 base_url,价格比官方便宜约 60%
# 注册地址:https://api2everything.xyz
client = OpenAI(
api_key=os.environ.get("WULIANG_API_KEY"), # 填你的无量Api Key
base_url="https://api2everything.xyz/v1",
)
# 模拟一段需要审查的代码
CODE_TO_REVIEW = """
def get_user(user_id):
query = "SELECT * FROM users WHERE id = " + user_id
return db.execute(query)
"""
def review_code(code: str, model: str = "gpt-4.1") -> dict:
"""
调用模型做代码审查,返回结果和用量信息
"""
response = client.chat.completions.create(
model=model,
messages=[
{
"role": "system",
"content": (
"你是一个资深代码审查工程师。"
"请指出代码中的安全漏洞、性能问题和可读性问题,"
"每条问题给出修复建议和修复后的代码片段。"
"用中文回答。"
),
},
{
"role": "user",
"content": f"请审查以下代码:\n\n```python\n{code}\n```",
},
],
temperature=0.2,
)
# 提取用量数据
usage = response.usage
result = {
"model": response.model,
"content": response.choices[0].message.content,
"usage": {
"prompt_tokens": usage.prompt_tokens,
"completion_tokens": usage.completion_tokens,
"total_tokens": usage.total_tokens,
},
}
return result
def estimate_cost(usage: dict, model: str) -> float:
"""
按官方定价粗略估算费用(USD)
实际使用无量Api约便宜60%
"""
# 官方参考价格(每百万 token)
pricing = {
"gpt-4.1": {"input": 2.0, "output": 8.0},
"gpt-4o": {"input": 2.5, "output": 10.0},
"gpt-4o-mini": {"input": 0.15, "output": 0.60},
"o3-mini": {"input": 1.1, "output": 4.4},
}
price = pricing.get(model, {"input": 2.0, "output": 8.0})
input_cost = usage["prompt_tokens"] / 1_000_000 * price["input"]
output_cost = usage["completion_tokens"] / 1_000_000 * price["output"]
return input_cost + output_cost
if __name__ == "__main__":
print("=== 开始代码审查 ===\n")
result = review_code(CODE_TO_REVIEW, model="gpt-4.1")
print(f"模型:{result['model']}")
print(f"\n审查结果:\n{result['content']}")
print("\n=== Token 用量明细 ===")
for k, v in result["usage"].items():
print(f" {k}: {v}")
official_cost = estimate_cost(result["usage"], result["model"])
wuliang_cost = official_cost * 0.4 # 无量Api约为官方价格的40%
print(f"\n=== 费用估算 ===")
print(f" 官方价格约:${official_cost:.6f}")
print(f" 无量Api约: ${wuliang_cost:.6f} (省约60%)")
跑起来之后,你会看到类似这样的输出:
=== Token 用量明细 ===
prompt_tokens: 187
completion_tokens: 312
total_tokens: 499
=== 费用估算 ===
官方价格约:$0.002870
无量Api约: $0.001148 (省约60%)
每一笔消耗都清清楚楚,再也不会莫名其妙掉额度了。
顺手解决"额度悄悄在掉"的排查思路
如果你用的是官方 API Key,额度还在掉但没有请求记录,大概率是以下几种情况:
1. 有其他应用在后台轮询:检查你的 .env 文件有没有泄露,或者有没有定时任务在跑。
2. Codex Agent 的"思考"也计费:o3 系列模型有 reasoning token,这部分在 Web 界面不显示,但实际计费。用 API 调用时 usage 里会有 reasoning_tokens 字段。
3. Key 被共享或泄露:去 OpenAI 后台的 Usage 页面,按 API Key 筛选,看看是不是有陌生 IP 在调用。
关于无量Api
上面代码里的 base_url 换成 https://api2everything.xyz/v1 就能直接用,Key 格式和 OpenAI 完全一样,改一行代码的事。
支持 GPT-4.1、GPT-4o、Claude 4、Gemini 2.5、DeepSeek 等 300+ 模型,国内直连不需要梯子,价格比官方便宜约 65%,注册就送 ¥1 余额,余额永久不过期。
如果你在用 Codex 或者跑批量代码审查任务,成本差距会很明显。
👉 https://api2everything.xyz/?utm_source=v2ex&utm_medium=article&utm_campaign=daily&aff=wqUb
你有遇到过 Codex 额度异常掉的情况吗?或者有其他想监控的 API 指标?评论区说一下,我看看能不能补充进来。
觉得有用的话点个赞,后续还会写 Codex Agent 任务编排、多模型成本对比这些内容。