Python实战:手写LLM API成本优化工具,语义缓存+智能路由+Prompt压缩,每月省30-50%
每月 LLM API 花费 ¥5000?这个工具帮你省 30-50%,一行代码不用改
你的 LLM API 账单,可能有 30-50% 是浪费的。
引言
上个月有个朋友跟我说,他们的 AI 客服系统每月 API 花费 ¥8000。
我问:"你分析过钱花在哪了吗?"
他说:"没有,反正就是调 API 嘛。"
我看了一下他们的调用日志:
-
30% 的请求是重复问题(用户换个说法问同样的事)
-
40% 的请求是简单任务(翻译、格式化),却用了最贵的模型
-
系统提示词有 2000 个 token,其中一半是废话
光是这三项,每月就浪费 ¥3000。
于是我写了 LLM Cost Optimizer —— 在你的应用和 LLM API 之间加一层,自动帮你省钱。
四大省钱手段
1. 语义缓存(省 100%)
用户问 "北京天气怎么样" 和 "今天北京天气如何",意思一样。
传统缓存要完全一致才能命中。语义缓存用相似度匹配,即使措辞不同也能命中。
cache: enabled: true similarity_threshold: 0.92 # 92% 相似就命中缓存 ttl_seconds: 3600 # 缓存 1 小时
命中缓存的请求,成本为 0。
2. 智能路由(省 50-80%)
翻译任务用 qwen-turbo(¥0.3/百万 token),代码任务用 deepseek-coder(¥1/百万 token),分析任务用 qwen-plus(¥0.8/百万 token)。
为什么要用 GPT-4o(¥18/百万 token)做翻译?
routing: enabled: true rules: - match_keywords: ["翻译", "translate"] model: qwen-turbo - match_keywords: ["代码", "code", "debug"] model: deepseek-coder
按任务类型选模型,不按习惯。
3. Prompt 压缩(省 30%)
你的系统提示词有 2000 个 token?其中可能有大量废话:
-
"Please note that" → 删掉
-
"It is important to remember that" → 删掉
-
重复的句子 → 去重
-
多余的空行 → 压缩
压缩后变成 1400 个 token,行为不变,每个请求省 30%。
4. 预算管控(不超支)
budget: monthly_limit_yuan: 5000 alert_threshold: 0.8 # 80% 时预警 overflow_strategy: degrade # 超了自动降级到便宜模型
到了 80% 给你发预警,到了 100% 自动切换到便宜模型。
使用方式
一行代码不用改,只改 base_url:
from openai import OpenAI
# 之前:
# client = OpenAI(api_key="sk-xxx", base_url="https://api.openai.com/v1")
# 之后:
client = OpenAI(api_key="any", base_url="http://localhost:8000/v1")
# 其他代码完全不变
response = client.chat.completions.create(
model="qwen-plus",
messages=[{"role": "user", "content": "你好"}],
)
优化自动发生,你的代码感知不到。
实际效果
用一个真实场景测试:AI 客服系统,每天 1000 次请求。
| 指标 | 优化前 | 优化后 | 节省 |
|---|---|---|---|
| 每日花费 | ¥165 | ¥89 | ¥76 (46%) |
| 每月花费 | ¥4,950 | ¥2,670 | ¥2,280 |
| 平均延迟 | 1.2s | 0.8s | 0.4s |
省钱来源:
-
缓存命中:180 次/天 → 省 ¥30
-
智能路由:600 次/天走便宜模型 → 省 ¥40
-
Prompt 压缩:每个请求省 600 token → 省 ¥6
安装
git clone https://github.com/Vincent-crypto-coder/llm-cost-optimizer.git cd llm-cost-optimizer pip install -r requirements.txt cp config.example.yaml config.yaml # 填入 API Key python -m llm_cost start --config config.yaml --port 8000
跟其他工具的区别
| LLM Cost Optimizer | LiteLLM | Portkey | |
|---|---|---|---|
| 定位 | 成本优化 | API 代理 | AI 网关 |
| 语义缓存 | ✅ | ❌ | ❌ |
| 智能路由 | ✅ | ✅ | ✅ |
| Prompt 压缩 | ✅ | ❌ | ❌ |
| 预算管控 | ✅ | ❌ | ✅ |
LiteLLM 是 API 代理,Portkey 是企业网关,LLM Cost Optimizer 是省钱工具。
接下来
这个项目还在早期,TODO 里有很多想做的:
-
Embedding 模型缓存(更精准的语义匹配)
-
A/B 测试(对比不同模型的回答质量)
-
多租户成本分摊(按部门/项目统计)
但核心功能已经能用了。如果你每月 API 花费超过 ¥1000,值得试试。
GitHub: https://github.com/Vincent-crypto-coder/llm-cost-optimizer
觉得有用的话,给个 ⭐ 吧!
更多推荐
所有评论(0)