如何控制大模型 API 成本:10 個馬上能用的辦法
大模型 API 的費用由模型單價、輸入長度、輸出長度和呼叫次數決定。本文按效果從大到小列出 10 個辦法,包括選對模型檔位、分級路由、上下文快取、限制輸出和給每把 Key 設額度上限,並用即時價格演示能省多少。
大模型 API 的費用 = 呼叫次數 ×(輸入 tokens × 輸入單價 + 輸出 tokens × 輸出單價)。能動的只有三樣:模型單價、每次的 tokens 數、呼叫次數。下面 10 個辦法按效果大致從大到小排列。前兩個(選對模型、分級路由)一般省得最多,其次是控制輸入,再次是控制輸出。
1. 選對模型檔位
| 模型 | 廠商 | 最低價分組 | 輸入 ¥/百萬 | 輸出 ¥/百萬 | 按次 ¥/次 |
|---|---|---|---|---|---|
| gpt-5.5 | OpenAI | 標準 | ¥10 | ¥80 | — |
| gpt-5.4-mini | OpenAI | 標準 | ¥1.5 | ¥9 | — |
| gpt-4o-mini | OpenAI | 標準 | ¥0.3 | ¥1.2 | — |
價格為人民幣,取各模型最低價分組;價格更新於 2026年11月13日 下午5:53。
同一家廠商的旗艦模型和小模型,單價可能差幾十倍。先用小模型跑一遍評測,正確率夠就不往上換。評測方法見如何為業務選模型。
2. 分級路由:難的問題才交給大模型
先讓便宜的模型判斷問題的類型或難度,簡單的直接回答,只把少數複雜問題轉給大模型。假設每月 10 萬次請求,每次輸入 2,000 tokens、輸出 400 tokens。
全部用旗艦模型:
成本估算 · gpt-5.5 (標準)
- 單價
- 輸入 ¥10 / 輸出 ¥80(每百萬 tokens)
- 每次用量
- 輸入 2,000 tokens,輸出 400 tokens
- 請求次數
- 100,000
- 單次費用
- ¥0.052
合計約 ¥5,200價格為人民幣,取各模型最低價分組;價格更新於 2026年11月13日 下午5:53。
八成請求交給小模型:
成本估算 · gpt-5.4-mini (標準)
- 單價
- 輸入 ¥1.5 / 輸出 ¥9(每百萬 tokens)
- 每次用量
- 輸入 2,000 tokens,輸出 400 tokens
- 請求次數
- 80,000
- 單次費用
- ¥0.0066
合計約 ¥528價格為人民幣,取各模型最低價分組;價格更新於 2026年11月13日 下午5:53。
剩下兩成用旗艦模型:
成本估算 · gpt-5.5 (標準)
- 單價
- 輸入 ¥10 / 輸出 ¥80(每百萬 tokens)
- 每次用量
- 輸入 2,000 tokens,輸出 400 tokens
- 請求次數
- 20,000
- 單次費用
- ¥0.052
合計約 ¥1,040價格為人民幣,取各模型最低價分組;價格更新於 2026年11月13日 下午5:53。
後兩項加起來就是路由之後的費用。判斷難度這一步也要花錢,用最便宜的模型、只讓它輸出一個類別就夠了。
3. 精簡提示詞
系統提示詞每次請求都要發一遍。刪掉重複的說明、過多的示例和客套話,省下幾百 tokens,乘上每月幾十萬次呼叫也不少。
4. 限制輸出長度
- 設定
max_tokens,推理模型用max_completion_tokens。 - 在提示詞裡寫清格式和字數,比如「只輸出 JSON」「不超過 100 字」。
- 推理模型可以用
reasoning_effort調低思考強度,僅部分模型支援。
輸出單價通常比輸入高好幾倍。同樣每月 10 萬次、每次輸入 2,000 tokens,回答 800 tokens:
成本估算 · deepseek-v4.1-flash (國產模型)
- 單價
- 輸入 ¥2.8 / 輸出 ¥11.2(每百萬 tokens)
- 每次用量
- 輸入 2,000 tokens,輸出 800 tokens
- 請求次數
- 100,000
- 單次費用
- ¥0.0146
合計約 ¥1,456價格為人民幣,取各模型最低價分組;價格更新於 2026年11月13日 下午5:53。
回答壓到 300 tokens:
成本估算 · deepseek-v4.1-flash (國產模型)
- 單價
- 輸入 ¥2.8 / 輸出 ¥11.2(每百萬 tokens)
- 每次用量
- 輸入 2,000 tokens,輸出 300 tokens
- 請求次數
- 100,000
- 單次費用
- ¥0.00896
合計約 ¥896價格為人民幣,取各模型最低價分組;價格更新於 2026年11月13日 下午5:53。
5. 用上下文快取
把不變的系統提示詞和資料放在最前面,支援快取的模型命中後按快取讀取價計費,通常比普通輸入便宜得多。做法和能省多少見上下文快取是什麼、怎麼省錢。
6. 裁剪對話歷史
多輪對話每次都要把歷史帶上,聊到第 20 輪時,一次請求的輸入可能是第 1 輪的十幾倍。只保留最近幾輪,更早的內容讓小模型壓縮成一段摘要。
7. 選價格合適的分組
同一個模型在不同分組價格不同。開發測試和失敗能重試的批次任務用最低價分組,線上服務再用官方或雲廠商分組,見如何選分組。
8. 多條資料合併成一次請求
處理大量短文本時,比如給商品標題分類,可以把 20 條左右放進一次請求,讓模型按順序返回 JSON 陣列。系統提示詞只發一次,總 tokens 少很多。一次別塞太多,條數多了模型容易漏,返回後要校驗數量。
import json
import os
from openai import OpenAI
client = OpenAI(base_url="https://www.tutujin.com/v1", api_key=os.environ["TUTUJIN_API_KEY"])
titles = ["男士纯棉短袖 T 恤", "不锈钢保温杯 500ml", "儿童防滑运动鞋"] # 实际每批 20 条左右
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "给每个商品标题分配一个类目:服装、家居、鞋靴、其他。按输入顺序输出 JSON 数组,只输出数组。"},
{"role": "user", "content": json.dumps(titles, ensure_ascii=False)},
],
)
labels = json.loads(resp.choices[0].message.content)
assert len(labels) == len(titles), "条数不一致,这一批重跑"9. 每把 Key 設額度上限和模型白名單
程式死迴圈、Key 洩露,都可能在很短時間裡產生大量呼叫。給每把 Key 設額度上限和過期時間,再用模型白名單限制它只能調業務需要的模型,別人拿到也沒法用它去調昂貴的模型。具體做法見API Key 安全最佳實踐。
10. 定期看操作日誌
每週看一次控制台「操作日誌」,按模型、按 Key 看費用分佈,找出花錢最多的呼叫再針對性最佳化。新功能上線後的頭幾天尤其要看。
彙總
| 辦法 | 省在哪裡 | 改動量 |
|---|---|---|
| 選對模型檔位 | 單價 | 改 model 參數,先做評測 |
| 分級路由 | 單價 | 加一層判斷邏輯 |
| 精簡提示詞 | 輸入 tokens | 改提示詞 |
| 限制輸出長度 | 輸出 tokens | 加參數、改提示詞 |
| 上下文快取 | 輸入單價 | 調整提示詞順序 |
| 裁剪對話歷史 | 輸入 tokens | 改會話管理邏輯 |
| 選合適的分組 | 單價 | 換一把 Key |
| 合併請求 | 輸入 tokens | 改呼叫方式 |
| 額度上限與白名單 | 防止意外消耗 | 控制台裡設定 |
| 看操作日誌 | 找到最該最佳化的地方 | 每週看一次 |
計費規則見大模型 API 價格怎麼算。
常見問題
哪個辦法省得最多?
通常是選對模型檔位。不同檔位的單價可能相差幾十倍,先用便宜的模型評測,夠用就不往上換,這一項的效果一般最明顯。
限制 max_tokens 會影響回答質量嗎?
設得太小會把回答截斷,響應裡的 finish_reason 會是 length。按實際需要的長度留出餘量,再在提示詞裡要求回答簡潔,效果更好。
怎麼防止 Key 洩露或程式出錯造成大額消費?
給每把 Key 設額度上限和過期時間,開啟 IP 白名單和模型白名單。即使出了問題,損失也被限制在一把 Key 的額度之內。
有包月套餐或月費嗎?
沒有月費,按實際用量計費。企業採購、對公付款可以加客服微信 JsnonoChat 詳談。