LLM API成本对比与省钱技巧

很多团队在接入大模型的第一周兴奋不已,到了月底看账单却倒吸一口凉气——一次简单的 RAG 检索问答,token 消耗可能是预期的 5 倍;一个面向 C 端的聊天功能,上线两周就把预算烧光。LLM API 的计费方式和传统云服务很不一样,它按 token 计费,而 token 又和 prompt 长度、模型选择、是否流式、是否缓存等十几个因素相关。

这篇文章会做两件事:第一,横向对比主流大模型的 API 价格,让你心里有数;第二,分享一套实战验证过的省钱技巧,从模型选型到代码层面,帮你把成本压到原来的 1/3 甚至更低。

一、主流 LLM API 价格对比(2026 年)

LLM API 通常按 token 分两段计费:输入 token(Input / Prompt)输出 token(Output / Completion)。输出 token 一般是输入的 3-5 倍价格,因为生成比理解更耗算力。下面是几家主流厂商旗舰与轻量模型的价格参考(每百万 token,单位:美元)。

模型 厂商 输入价格 输出价格 定位
GPT-4o OpenAI $2.50 $10.00 旗舰多模态
GPT-4o-mini OpenAI $0.15 $0.60 轻量高性价比
Claude 3.5 Sonnet Anthropic $3.00 $15.00 长文本强推理
Claude 3 Haiku Anthropic $0.25 $1.25 快速轻量
Gemini 2.0 Flash Google $0.10 $0.40 超低价多模态
Gemini 2.0 Pro Google $1.25 $5.00 长上下文
DeepSeek-V3 DeepSeek $0.27 $1.10 开源高性价比

从这张表能看出几个关键结论:

注意:以上是官方列表价。通过 EnlyAI 这类聚合平台调用,通常还能再享受阶梯折扣,实际成本会更低,且不用分别维护多个厂商账号。

二、省钱技巧一:选对模型,别用大炮打蚊子

这是最立竿见影的一招。很多开发者习惯性地把所有请求都丢给 GPT-4o,结果 90% 的请求其实只是分类、抽取、简单问答,用 GPT-4o-mini 完全够用,成本却差了一个数量级。

一个实用的分级策略:

  1. 简单任务(分类、抽取、格式转换):用 Gemini 2.0 Flash 或 GPT-4o-mini,单价 $0.1-$0.15。
  2. 中等任务(摘要、翻译、常规问答):用 Claude 3 Haiku 或 DeepSeek-V3,单价 $0.25-$0.27。
  3. 复杂任务(代码生成、多步推理、长文档分析):才上 GPT-4o 或 Claude 3.5 Sonnet。

更进阶的做法是路由分发:先用一个便宜的轻量模型判断请求复杂度,再决定转发给哪个模型。下面是一个简单的 Python 实现:

from openai import OpenAI

client = OpenAI(api_key="sk-your-key", base_url="https://enlyai.com/v1")

def route_model(question: str) -> str:
    # 第一步:用最便宜的模型判断复杂度
    judge = client.chat.completions.create(
        model="gemini-2.0-flash",
        messages=[{
            "role": "user",
            "content": f"判断这个问题复杂度,只回 simple/complex:{question}"
        }],
        temperature=0
    )
    level = judge.choices[0].message.content.strip().lower()
    return "gpt-4o-mini" if "simple" in level else "gpt-4o"

def smart_ask(question: str):
    model = route_model(question)
    print(f"路由到 {model}")
    return client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": question}]
    )

实测效果:在一个客服问答场景中,引入路由分发后,70% 的请求被分流到轻量模型,整体成本下降约 65%,而用户感知的回答质量几乎无差异。

三、省钱技巧二:压缩 Prompt,砍掉冗余 token

Prompt 里的每一个字都在烧钱。一个常见的误区是把整份产品文档、整段历史对话都塞进 system prompt,结果每次请求都重复付费。优化 prompt 的几个原则:

用 tiktoken 库可以精确统计 token 数,避免盲猜:

pip install tiktoken
import tiktoken

enc = tiktoken.encoding_for_model("gpt-4o")
text = "你是一个专业助手,请用简洁的语言回答用户问题。"
print(f"token 数: {len(enc.encode(text))}")
# 输出: token 数: 18

四、省钱技巧三:用缓存避免重复计算

很多 LLM 应用的请求有大量重复——同样的 FAQ、同样的产品说明、同样的代码模板。如果每次都重新调用模型,既慢又贵。缓存是性价比最高的优化手段。

缓存分两层:

1. Prompt 缓存(语义级)

Anthropic 的 Claude 和 OpenAI 的 GPT-4o 都支持 Prompt Caching:把长 system prompt 或文档标记为可缓存,后续请求命中缓存时输入 token 价格直接打 1 折。适合 RAG、Agent 这类固定上下文的场景。

response = client.chat.completions.create(
    model="claude-3-5-sonnet",
    messages=[
        {"role": "system", "content": long_document},
        {"role": "user", "content": user_question}
    ],
    extra_headers={
        # Anthropic 的缓存标记
        "anthropic-beta": "prompt-caching-2024-07-31"
    }
)

2. 业务级缓存(Redis / 内存)

对于完全相同的请求(比如“今天天气怎么样”这种高频问题),直接用 Redis 缓存完整响应,命中后零成本返回。建议对 query 做归一化(去空格、转小写、去标点)后再作为 cache key,命中率会高很多。

import hashlib, redis, json

r = redis.Redis()

def cached_ask(question: str, model="gpt-4o-mini"):
    key = f"llm:{model}:" + hashlib.md5(question.encode()).hexdigest()
    cached = r.get(key)
    if cached:
        return json.loads(cached)

    resp = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": question}]
    )
    answer = resp.choices[0].message.content
    r.setex(key, 3600, json.dumps(answer))  # 缓存 1 小时
    return answer

实测效果:在一个电商客服场景,引入 Redis 缓存后命中率约 35%,叠加 Prompt Caching,整体 token 支出下降 50% 以上。

五、省钱技巧四:批量处理与异步并发

如果你有大量离线任务(批量翻译、批量打标、批量摘要),千万别用同步循环一个个调。两个优化方向:

1. 用 Batch API:OpenAI 和 Anthropic 都提供 Batch API,把多个请求打包成一个 JSONL 文件提交,24 小时内返回结果,价格直接打 5 折。适合不要求实时的离线任务。

2. 异步并发:实时任务用 AsyncOpenAI + asyncio.gather 并发,吞吐量提升 10 倍以上,单请求成本不变但整体耗时大幅下降,间接省了服务器和等待成本。

import asyncio
from openai import AsyncOpenAI

client = AsyncOpenAI(api_key="sk-your-key", base_url="https://enlyai.com/v1")

async def summarize(text: str):
    resp = await client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": f"一句话摘要:{text}"}],
        max_tokens=50  # 限制输出长度,省钱关键
    )
    return resp.choices[0].message.content

async def main():
    docs = ["文档1...", "文档2...", "文档3..."]
    results = await asyncio.gather(*[summarize(d) for d in docs])

asyncio.run(main())

六、省钱技巧五:控制输出长度

前面说过,输出 token 是输入的 4 倍价格。所以限制生成长度比压缩 prompt 更划算。三个具体做法:

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "总结这篇文章"}],
    max_tokens=100,          # 硬上限
    stop=["\n\n"],            # 遇到空行就停
    temperature=0.3           # 低温度减少啰嗦
)

七、省钱技巧六:用聚合平台统一计费

前面五招都是技术层面的优化。还有一招是平台层面的:与其在 OpenAI、Anthropic、Google 各开一个账号、各充一笔钱、各维护一套 key,不如用一个聚合平台统一接入。

EnlyAI 就是这样的平台,它有几个直接的成本优势:

对应的 cURL 调用示例,和官方 OpenAI 完全一致:

curl https://enlyai.com/v1/chat/completions \
  -H "Authorization: Bearer sk-your-enlyai-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [{"role": "user", "content": "你好"}],
    "max_tokens": 50
  }'

八、省钱效果汇总

把上面几招组合起来,效果是叠加的。下面是一个真实客服场景的优化路径(月调用量 100 万次,平均每次输入 800 token、输出 200 token):

优化阶段 模型 月成本(美元) 降幅
初始(全用旗舰) GPT-4o ~$3,000
换轻量模型 GPT-4o-mini ~$200 -93%
+ 路由分发 混合 ~$140 -95%
+ 缓存 混合 ~$90 -97%
+ Prompt 压缩 + max_tokens 混合 ~$60 -98%

从 $3000 降到 $60,这不是夸张的营销数字,而是每一招都落实后的真实结果。当然,前提是你的场景对模型能力的要求允许做这些取舍——如果是医疗、法律等高精度场景,不能一味追求便宜。

结语:省钱是系统工程

LLM API 成本优化不是一次性的工作,而是贯穿产品全生命周期的系统工程。建议从三步走:

  1. 先量化:上线前就接入 token 监控,搞清楚钱花在哪类请求、哪个模型、哪段 prompt 上。
  2. 再分级:按任务复杂度路由到不同模型,把 80% 的流量导向轻量模型。
  3. 后优化:叠加缓存、压缩、Batch、max_tokens,持续压低单位成本。

最后,选对平台也很关键。一个统一的聚合入口能让你在模型之间自由切换、享受批量折扣、集中管理账单,这些隐性收益往往比单次降价更可观。

想大幅降低 LLM API 成本?

EnlyAI 提供 OpenAI 兼容的统一接口,支持 GPT、Claude、Gemini、DeepSeek 等数十种模型,注册即送免费额度,一个 key 调用所有模型,享受阶梯折扣。

立即注册 EnlyAI →