設定

語言

如何在不更換模型的情況下,將 AI API 成本降低 30%

L
LemonData
·2026年2月26日·428 次瀏覽
如何在不更換模型的情況下,將 AI API 成本降低 30%

大多數團隊都支付了過高的 AI API 費用。這並非因為他們選錯了模型,而是因為他們忽略了三個僅需少量代碼修改的優化手段:prompt caching、智慧模型路由(smart model routing)以及批次處理(batch processing)。

以下是每種技術的詳細分析與實際數據。

如果您仍在判斷目前的供應商組合是否為問題所在,請先閱讀 pricing comparison。如果您的主要痛點是重試風暴(retry storms)或供應商節流(throttling)而非原始支出,請將本頁面與 rate limiting guide 搭配閱讀。

1. Prompt Caching:最顯著的成效

如果您的應用程式在每次請求中都發送相同的 system prompt,那麼您正在為供應商已經處理過的 token 支付全額費用。

運作原理

OpenAI 會針對超過 1,024 tokens 的輸入自動進行 prompt caching。快取後的 tokens 成本僅為標準輸入價格的 50%。您不需要更改代碼中的任何內容。

Anthropic 則透過 cache_control 斷點使用顯式快取。寫入成本比標準輸入高 25%,但讀取成本降低了 90%。快取 TTL 為 5 分鐘,每次命中都會延長。

在較新的 OpenAI 定價中,實際折扣可能比團隊預期的更好。GPT-4.1 的快取輸入價格僅為標準輸入的四分之一,這意味著一致的前綴(prefixes)所產生的節省遠比舊有的「聊勝於無」觀念所暗示的要大得多。

成本計算

以一個典型的客戶服務機器人為例:

  • System prompt:2,000 tokens
  • 用戶訊息:平均 200 tokens
  • 每天 5,000 次請求,使用 Claude Sonnet 4.6

不使用快取:

每日輸入成本 = 5,000 × 2,200 tokens × $3.00/1M = $33.00

使用 Anthropic prompt caching(假設 95% 的快取命中率):

快取寫入:250 × 2,200 × $3.75/1M = $2.06
快取讀取:4,750 × 2,200 × $0.30/1M = $3.14
用戶 tokens:5,000 × 200 × $3.00/1M = $3.00
每日總計 = $8.20 (輸入成本節省 75%)

實作方式

from anthropic import Anthropic

client = Anthropic(
    api_key="sk-lemon-xxx",
    base_url="https://api.lemondata.cc"
)

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system=[
        {
            "type": "text",
            "text": "You are a customer support agent for Acme Corp...",
            "cache_control": {"type": "ephemeral"}  # This enables caching
        }
    ],
    messages=[{"role": "user", "content": user_message}]
)

# Check cache performance in response headers
# cache_creation_input_tokens vs cache_read_input_tokens

對於 OpenAI 模型,快取是自動的。只需確保您的 prompts 超過 1,024 tokens,並在不同請求之間保持靜態前綴的一致性。

團隊常犯的錯誤:

  • 在每個 prompt 的頂部放置時間戳記或請求 ID
  • 在每次調用時重新排列系統指令
  • 在穩定前綴之前嵌入變動的用戶上下文

如果前綴每次都改變,快取就完全起不到作用。應將 prompt 的結構視為成本的基本要素,而不僅僅是 prompt engineering 的細節。

2. 智慧模型路由:為每項任務選擇合適的模型

並非每個請求都需要最昂貴的模型。一個 GPT-4.1 處理成本為 $2.00/1M 輸入 tokens 的分類任務,使用 GPT-4.1-mini 處理效果同樣出色,但成本僅為 $0.40/1M,成本降低了 5 倍。

路由策略

任務類型 推薦模型 輸入成本/1M
複雜推理 Claude Opus 4.6 / GPT-4.1 $5.00 / $2.00
一般對話 Claude Sonnet 4.6 / GPT-4.1 $3.00 / $2.00
分類、擷取 GPT-4.1-mini / Claude Haiku 4.5 $0.40 / $1.00
Embeddings text-embedding-3-small $0.02
簡單格式化 DeepSeek V3 $0.28

實作方式

from openai import OpenAI

client = OpenAI(
    api_key="sk-lemon-xxx",
    base_url="https://api.lemondata.cc/v1"
)

def route_request(task_type: str, messages: list) -> str:
    """Pick the cheapest model that handles this task well."""
    model_map = {
        "classification": "gpt-4.1-mini",
        "extraction": "gpt-4.1-mini",
        "summarization": "gpt-4.1-mini",
        "complex_reasoning": "gpt-4.1",
        "creative_writing": "claude-sonnet-4-6",
        "code_generation": "claude-sonnet-4-6",
    }
    model = model_map.get(task_type, "gpt-4.1-mini")

    response = client.chat.completions.create(
        model=model,
        messages=messages
    )
    return response.choices[0].message.content

實際節省

一個編碼助手將 60% 的請求(語法檢查、格式化、簡單補全)路由到 GPT-4.1-mini,將 40% 的請求(架構設計、除錯)路由到 Claude Sonnet 4.6:

優化前(全部使用 Claude Sonnet 4.6):
  1,000 req/day × 3K input × $3.00/1M = $9.00/day

優化後(60/40 分流):
  600 req × 3K × $0.40/1M = $0.72/day (mini)
  400 req × 3K × $3.00/1M = $3.60/day (sonnet)
  總計 = $4.32/day (節省 52%)

3. 批次處理:降低非緊急任務的價格

OpenAI 提供 Batch API,輸入和輸出 tokens 均有 50% 的折扣。代價是:結果會在 24 小時內交付,而非即時交付。

Anthropic 對支援的模型也提供 50% 的批次折扣。如果您的工作負載是隔夜處理、非同步或以審核為導向的,通常沒有理由支付即時價格。

適合批次處理的場景:

  • 每日內容生成
  • 大量文件分類
  • 數據集標籤化
  • 定時報告生成
# Create a batch file (JSONL format)
import json

requests = []
for i, doc in enumerate(documents):
    requests.append({
        "custom_id": f"doc-{i}",
        "method": "POST",
        "url": "/v1/chat/completions",
        "body": {
            "model": "gpt-4.1-mini",
            "messages": [
                {"role": "system", "content": "Classify this document..."},
                {"role": "user", "content": doc}
            ]
        }
    })

# Write JSONL file
with open("batch_input.jsonl", "w") as f:
    for req in requests:
        f.write(json.dumps(req) + "\n")

# Submit batch
batch_file = client.files.create(file=open("batch_input.jsonl", "rb"), purpose="batch")
batch = client.batches.create(input_file_id=batch_file.id, endpoint="/v1/chat/completions", completion_window="24h")

實際產品中適合批次處理的場景:

  • 隔夜內容更新任務
  • 支援票據摘要
  • Embeddings 回填
  • 大型代碼庫或文件審查
  • 低優先級的用戶通知

不適合的場景:

  • 聊天回覆
  • 互動式編碼輔助
  • 下一個用戶操作取決於立即回覆的工作流

4. 額外建議:減少 Token 數量

在進行 API 層級的優化之前,請檢查您是否發送了不必要的 tokens。

常見的浪費:

  • 冗長的 system prompts,重複模型已經遵循的指令
  • 包含完整的對話歷史,而實際上只有最後 3-5 輪對話重要
  • 發送原始 HTML/markdown,而純文本即可滿足需求
  • 未使用 max_tokens 來限制輸出長度

prompt 長度減少 30% 直接轉化為輸入成本降低 30%。

發現浪費最簡單的方法是按路由或功能記錄 prompt 長度。大多數團隊面臨的不是模型定價問題,而是「每天發送 100,000 次同樣臃腫的 prompt」的問題。

5. 在盲目優化前增加成本可視化

當團隊憑直覺進行優化時,成本優化往往會失敗。

在更改路由規則之前,請記錄:

  • 路由或功能名稱
  • 模型
  • 輸入 tokens
  • 輸出 tokens
  • 快取命中或未命中
  • 重試次數
  • 用戶感知的延遲

這能讓您回答關鍵問題:

  • 哪個路由昂貴是因為它確實有用?
  • 哪個路由昂貴是因為 prompt 浪費?
  • 哪個路由應該轉向批次處理?
  • 哪個路由應該轉向更便宜的模型層級?

如果您無法回答這四個問題,您的「成本優化」只會是將成本轉移到別處。

6. 實際的優化順序

最有效的順序通常是:

  1. 消除明顯的 token 浪費。
  2. 開啟或修復快取。
  3. 將廉價任務與昂貴任務分開。
  4. 將任何非緊急任務改為批次處理。
  5. 最後才重新協商供應商組合。

這個順序很重要,因為最大的節省通常發生在切換供應商之前。如果您在不修復 prompt 結構的情況下更換供應商,您仍會繼續為同樣的低效率支付費用。

7. 具體的優化前後對比

以一個目前的支援工作流為例,它在每次請求中都執行以下操作:

  • 發送 2,000 tokens 的 system prompt
  • 對所有請求調用同一個頂級模型
  • 在臨時失敗時重試相同的請求結構
  • 同步運行每晚摘要,而非批次處理

第一個版本通常感覺「簡單」,因為它只有一條代碼路徑。但在財務上,它同時在做四件昂貴的事情。

更高效的部署看起來像這樣:

  1. 將穩定的政策文本移至 prompt 前端,以便快取能真正命中。
  2. 將分類、擷取和簡短摘要路由到更便宜的模型層級。
  3. 將頂級模型保留給升級處理、複雜推理或最終答案合成。
  4. 將隔夜摘要和回填推送到批次處理。
  5. 每週審查日誌,找出 prompt 結構偏移並破壞快取效率的路由。

這種部署不需要重寫代碼。它需要一週的檢測工作,以及將 prompts 和路由視為生產環境重要環節的意願。

8. 應避免的做法

浪費成本優化努力最快的方法就是優化了錯誤的東西。

避免這些陷阱:

  • 在衡量 prompt 浪費之前更換供應商
  • 在未驗證輸出質量的情況下將廉價任務路由到廉價模型
  • 在每次請求前綴都會改變的 prompts 上啟用快取
  • 將真正需要即時響應的面向用戶工作改為批次處理
  • 僅關注 token 價格而忽略重試、延遲和備援(fallback)開銷

當節省成本後產品表現依然良好時,成本優化才是成功的。如果用戶體驗變差,試算表上的節省就是虛假的。

總結

技術 投入難度 典型節省比例
Prompt caching 低(添加 cache_control) 輸入成本 40-75%
模型路由 中(任務分類) 總體成本 30-50%
批次處理 中(非同步工作流) 批次任務 50%
Token 減量 低(精簡 prompts) 輸入成本 10-30%

這些技術具有疊加效應。一個實施了這四項技術的團隊,實際上可以在不降低輸出質量的情況下,將每月 API 帳單從 $3,000 降至 $1,000 以下。

核心見解:AI API 的成本優化不在於尋找更便宜的供應商,而是在於針對每個特定任務,以正確的價格層級、正確的快取策略使用正確的模型。

如果您已經在使用多個供應商,營運方面也很重要。migration guideOpenRouter comparison 可以幫助您決定何時該集中路由,而不是繼續修補分開的整合方案。


今天就開始優化:LemonData 讓您透過一個 API key 存取 300 多個模型,支援 OpenAI 和 Anthropic 模型系列的 prompt caching,並提供一個統一的地方來比較各模型的用量。

Share: