Chat Completions 的 usage 怎么对上输入 / 输出 / 缓存
OpenAI Python SDK 的 chat.completions:prompt_tokens 进输入列,completion_tokens 进输出列,cached_tokens 进缓存列。Key 只从环境变量读。
本页不发起请求;不收 Key;中转 curl 不在本站。
← 计费示例 · Token 主表 · 官方 usage 文档
输入usage.prompt_tokens
输出usage.completion_tokens
缓存usage.prompt_tokens_details.cached_tokens
import os
from openai import OpenAI
# Key from env only (same as process.env.OPENAI_API_KEY). Never paste a key here.
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
completion = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Reply with one word: ok"}],
)
usage = completion.usage
prompt = usage.prompt_tokens if usage else 0 # 输入
out = usage.completion_tokens if usage else 0 # 输出
details = usage.prompt_tokens_details if usage else None
cached = (details.cached_tokens or 0) if details else 0 # 缓存
print("输入", prompt)
print("输出", out)
print("缓存", cached)
| 字段 | 对上列 | 说明 |
|---|---|---|
usage.prompt_tokens | 输入 | 对账时乘本站「输入」$/M。含后来被标成缓存命中的 tokens。 |
usage.completion_tokens | 输出 | 对账时乘「输出」$/M。输出通常主导账单。 |
usage.prompt_tokens_details.cached_tokens | 缓存 | 只有这一段按缓存读单价。没有 details 就当 0,别自行估命中。 |