💰 Token Optimization 完全指南

降低AI成本,每一分钱都花在刀刃上

📅 2026年7月2日 ⏱️ 阅读时间:13分钟 🎯 难度:中级

4点51分,我看着API账单上那串数字。世界上有一种痛叫Token太贵,就像你打车去隔壁小区——不是去不起,而是不值当。

而Token Optimization,就是那个让你花最少的钱,办最多事的魔法。

💸 Token成本解析

📊 GPT-4 定价(2026年)

模型 输入Token价格 输出Token价格
GPT-4 Turbo $0.01 / 1K tokens $0.03 / 1K tokens
GPT-4o $0.005 / 1K tokens $0.015 / 1K tokens
Claude 3 Opus $0.015 / 1K tokens $0.075 / 1K tokens
月成本 = (输入Token数 × 输入单价 + 输出Token数 × 输出单价) × 调用次数

示例计算:

# 场景:每天调用100次GPT-4o
每天输入Token:500 tokens × 100次 = 50,000 tokens
每天输出Token:300 tokens × 100次 = 30,000 tokens

每天成本:
= (50,000 × $0.005/1K) + (30,000 × $0.015/1K)
= $0.25 + $0.45
= $0.70

每月成本:$0.70 × 30 = $21

# 如果优化后减少40% Token:
新成本:$21 × 0.6 = $12.6
每月节省:$8.4 💰

🔧 优化技巧1:Prompt压缩

问题:啰嗦的Prompt

# 优化前(啰嗦版)
prompt = f"""
你好!我是一个AI助手。我现在需要你帮我完成一个任务。
这个任务是关于分析一段文本的。
文本内容如下:
{text}

请你仔细分析这段文本,然后给我一个详细的总结。
总结需要包含以下几个方面:
1. 主要观点
2. 重要细节
3. 可能的结论

谢谢你的帮助!
"""

# Token数:约250 tokens
# 成本:$0.00125(输入)

优化后:简洁版

# 优化后(简洁版)
prompt = f"""
分析以下文本,总结主要观点、重要细节和结论:

{text}
"""

# Token数:约80 tokens
# 成本:$0.0004(输入)
# 节省:68% 💰
💡 周星驰式吐槽: 就像你约女神吃饭,不用从"今天天气真好"聊到"你觉得人生意义是什么"。直接说"吃饭去?"就行!

🔧 优化技巧2:Context缓存

如果多次对话都使用相同的Context(如系统提示词、背景知识),可以缓存起来。

import hashlib
import json

class ContextCache:
    def __init__(self):
        self.cache = {}
    
    def get_cache_key(self, context):
        """生成缓存key"""
        context_str = json.dumps(context, sort_keys=True)
        return hashlib.md5(context_str.encode()).hexdigest()
    
    def get_or_compute(self, context, compute_fn):
        """获取缓存或计算"""
        key = self.get_cache_key(context)
        
        if key in self.cache:
            print("✅ 缓存命中!")
            return self.cache[key]
        
        print("❌ 缓存未命中,计算...")
        result = compute_fn(context)
        self.cache[key] = result
        return result

# 使用示例
cache = ContextCache()

def expensive_llm_call(context):
    """模拟昂贵的LLM调用"""
    # 实际中这里会调用API
    return f"LLM结果:{context}"

# 第一次调用(未缓存)
result1 = cache.get_or_compute("系统提示词 + 背景知识", expensive_llm_call)

# 第二次调用(命中缓存)
result2 = cache.get_or_compute("系统提示词 + 背景知识", expensive_llm_call)
# 节省了一次API调用!💰

🔧 优化技巧3:选择合适模型

📋 模型选择策略

  • 简单任务(分类、提取): 用GPT-3.5或开源模型
  • 中等任务(总结、翻译): 用GPT-4o
  • 复杂任务(推理、创作): 用GPT-4 Turbo
  • 超长文本: 用Claude 3(200K context)
# 根据任务复杂度选择模型
def select_model(task_type, text_length):
    """智能选择模型"""
    if task_type == "simple":
        if text_length < 2000:
            return "gpt-3.5-turbo"  # 最便宜
        else:
            return "gpt-4o"  # 支持长文本
    
    elif task_type == "medium":
        return "gpt-4o"  # 性价比高
    
    elif task_type == "complex":
        if text_length > 50000:
            return "claude-3-opus"  # 超大context
        else:
            return "gpt-4-turbo"  # 最强推理
    
    else:
        return "gpt-4o"  # 默认

# 使用
model = select_model("medium", len(text))
response = openai.ChatCompletion.create(
    model=model,
    messages=[{"role": "user", "content": prompt}]
)

📈 优化效果对比

📊 实际案例:新闻摘要服务

优化策略 平均Token数 单次成本 月成本(1万次)
优化前 1,500 tokens $0.0225 $225
+ Prompt压缩 900 tokens $0.0135 $135
+ Context缓存 600 tokens $0.009 $90
+ 模型选择 500 tokens $0.0025 $25
总节省 67% 89% $200/月 💰