token 計算與成本估算:上線前先算清楚
幾個簡單的估算就能避免「上線第一週就燒掉整月預算」。
成本失控幾乎都不是因為單價貴,而是因為沒有人算過總量。上線前花十分鐘估算,能省下大量麻煩。
先量單次成本
# 用官方 tokenizer 量測,不要用字數估算
import tiktoken
enc = tiktoken.encoding_for_model('gpt-4.1-mini')
n_in = len(enc.encode(full_prompt))
n_out = 400 # 從實測分布取 p90,不要用平均
cost = n_in / 1e6 * PRICE_IN + n_out / 1e6 * PRICE_OUT
print(f'單次約 {cost:.5f} USD')中文的 token 換算
中文字元的 token 數比英文高。粗估上一個中文字約 0.6 到 1 個 token,視 tokenizer 而定。用字數乘以固定係數會有明顯誤差,重要估算請實測。
三個容易漏掉的成本
- 系統提示每次都算錢。兩千字的系統提示乘以每日十萬次,是很可觀的數字。
- 重試與失敗。失敗的呼叫一樣計費。
- Agent 的多輪。一次任務可能是五到十次呼叫,不是一次。
設三道上限
單次請求上限、單一使用者每日上限、全站每日上限。三者都要有,而且要在程式裡實作,不能只依賴服務商後台的通知。
用量估算要用 p90 而非平均。輸出長度的分布通常是長尾的,用平均值估算會嚴重低估。