技术热点落地:模型分层路由实战——把 GPT-5.6 Luna 降价 80% 真正落到账本上(2026-07-31)
技术热点落地:模型分层路由实战——把 GPT-5.6 Luna 降价 80% 真正落到账本上
热点来源:OpenAI 于 7/30 宣布 GPT-5.6 Luna 降价 80%(输入降至 $0.20/M token、输出降至 $1.20/M token),Terra 同步降 20%,Sol 不变。Hacker News 热帖(580 分)讨论中;The Decoder 与 Artificial Analysis 交叉验证。
前情提要:
- 7/30:vLLM 0.8.0 + 量化 LoRA,自托管推理降本 80%
- 7/31 12:00:AI 热点快报:GPT-5.6 Luna 降价 80%——推理成本战重启
- 7/31 本文:把”降价”从新闻变成账单数字——分层路由怎么落地
适用场景与目标
这个热点解决了什么问题?
降价公告本身不会自动省钱。绝大多数团队的现状是:所有请求打同一个 model 名,账单按总量计费。OpenAI 把 Luna 降到 $0.20/$1.20 之后,如果你还在用 Sol 跑”总结一段客服对话”这类简单任务,等于主动放弃 80% 的价格红利。反过来,如果把复杂推理任务盲目切到 Luna,省下的钱会变成质量事故和返工成本。
这次降价的底层信号是:模型厂商的竞争维度已经从”谁最强”转向”谁的单位成本低”。Sol/Terra/Luna 三档(复杂推理 / 均衡 / 高速低价)不再是营销话术,而是一个可量化的工程决策变量——你选择哪个档位,直接决定你的毛利。
适用场景
| 场景 | 价值 |
|---|---|
| 客服 / 内容总结 / 分类打标等高频简单任务 | 切到 Luna,单任务成本降 80%,吞吐翻倍 |
| 代码生成 / 复杂推理 / 长链 Agent 任务 | 保留 Sol,质量不降级 |
| 批处理 / 异步管道(文档解析、数据清洗) | Luna + prompt caching,成本可忽略 |
| 多产品共用 API key 的团队 | 路由 + 预算隔离,成本可归因到业务线 |
目标:D+7 内上线一套可观测、可回滚、有质量回归保障的分层路由,把 Luna 的价格红利落袋——混合账单下降 40%~60%,且质量指标不回落。
最小可行方案(MVP)步骤
第 0 步:拆账单,建立”任务 × 模型”画像(半天)
在写任何代码之前,先回答三个问题:
- 你每月的 token 消耗按任务类型怎么分?(对话、总结、代码、抽取……)
- 每个任务当前用哪个模型、单价多少?
- 哪些任务”切到便宜档位质量也不会崩”?
用 OpenAI 用量报表或 LiteLLM 的 spend logs 导出近 30 天数据,按模型 × 任务分组。这一步的输出是后面所有决策的依据,别跳过。
第 1 步:用 LiteLLM Proxy 搭统一网关(半天)
所有业务代码不再直连 OpenAI,而是连一个本地网关。网关负责:模型分组(group)、fallback、预算、用量记录。
# 官方推荐 Docker 部署(也可 pip install litellm[proxy])
docker run -d --name litellm \
-p 4000:4000 \
-v $(pwd)/config.yaml:/app/config.yaml \
ghcr.io/berriai/litellm:main-latest \
--config /app/config.yaml
第 2 步:定义模型分组 + fallback 链(1 小时)
业务代码只认 sol / terra / luna 三个逻辑名,背后具体是哪个版本由配置决定(见”关键实现细节”)。
第 3 步:先上”静态路由”,别急着上分类器(第 1-2 天)
最稳的起步方式:在业务代码里显式声明任务档位。
# 路由前:所有请求一个模型
# resp = client.chat.completions.create(model="gpt-5.6-sol", ...)
# 路由后:按任务类型显式选档
ROUTE = {
"summarize": "luna", # 简单总结 → 最便宜
"extract_json": "terra", # 结构化抽取 → 均衡
"code_review": "sol", # 代码审查 → 最强
"classify": "luna",
}
def chat(task_type: str, messages, **kw):
return client.chat.completions.create(
model=ROUTE[task_type], # 逻辑分组名,由网关解析
messages=messages,
**kw,
)
静态路由零风险:不改任何提示词,只是换路由目标。先跑 2-3 天,把账本数字拿到手,再决定要不要上动态分类。
第 4 步:接入成本观测 + 每日预算告警(第 3 天)
网关记录每次请求的 token 与费用,每天生成”任务 × 档位 × 成本”报表;设月度硬预算,超限自动降级到 Luna 或熔断。
第 5 步:质量回归集(golden set)兜底(第 3-5 天)
每个任务类型准备 20-50 条典型样本(含边界 case),切档前后用同一批样本对比输出质量。没有 golden set 就切流,等于盲飞。
关键实现细节
1. LiteLLM 网关配置(可直接复制)
# config.yaml
model_list:
- model_name: sol
litellm_params:
model: openai/gpt-5.6-sol # 逻辑名 → 真实模型
api_key: os.environ/OPENAI_API_KEY
- model_name: terra
litellm_params:
model: openai/gpt-5.6-terra
api_key: os.environ/OPENAI_API_KEY
- model_name: luna
litellm_params:
model: openai/gpt-5.6-luna
api_key: os.environ/OPENAI_API_KEY
router_settings:
routing_strategy: usage-based-routing-v2 # 按健康度/延迟自动分配
num_retries: 2
# fallback 链:高往低降级,绝不让请求失败
fallbacks:
- {"sol": ["terra", "luna"]}
- {"terra": ["luna"]}
cooldown_time: 30 # 模型异常后的冷却秒数
max_fallbacks: 2 # 最多降级 2 次,防止雪崩
general_settings:
master_key: sk-your-admin-key
database_url: postgresql://user:pass@db:5432/litellm # 用量落库,必须有
litellm_settings:
drop_params: true # 忽略不支持的参数,兼容多模型
# 预算:超过即熔断(单位 USD)
max_budget: 1000
budget_duration: "30d"
业务侧用法(OpenAI SDK 兼容,只需改 base_url):
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:4000/v1",
api_key="sk-your-virtual-key", # 网关的 virtual key,可设独立预算
)
# 之后 model 参数直接写 "sol" / "terra" / "luna"
2. 动态分类器:用最便宜的模型做路由决策
当任务类型无法在代码里静态判断时,让 Luna 自己当分类器——注意这个”以省钱的模型省钱”的反直觉点:绝不能用 Sol 做分类,否则分类成本会反超节省。
import json
from openai import OpenAI
client = OpenAI(base_url="http://localhost:4000/v1", api_key="sk-xxx")
SCHEMA = {
"type": "object",
"properties": {
"tier": {"type": "string", "enum": ["sol", "terra", "luna"]},
"confidence": {"type": "number", "minimum": 0, "maximum": 1},
"reason": {"type": "string"},
},
"required": ["tier", "confidence", "reason"],
}
def route_task(task: str) -> str:
resp = client.chat.completions.create(
model="luna", # ← 分类器用最便宜档
messages=[
{"role": "system", "content": (
"你是模型路由分类器。判断任务所需的推理深度:"
"复杂推理/长链规划/代码生成→sol;结构化抽取/中度推理→terra;"
"总结/分类/简单问答→luna。返回 JSON。" )},
{"role": "user", "content": task},
],
response_format={"type": "json_schema", "json_schema": SCHEMA},
temperature=0,
max_tokens=200,
)
d = json.loads(resp.choices[0].message.content)
# 关键:低置信度一律上调档位,宁贵勿错
if d["confidence"] < 0.75:
return "sol"
return d["tier"]
实测建议:分类器本身单次成本约 $0.0002 级,只有当它把 5% 以上的流量从 Sol 正确搬到 Luna 时,分类开销才回本——所以先用第 3 步的静态路由跑出流量分布,再决定分类器是否值得。
3. 成本核算:别只看 token 单价
GPT-5.x 系列输出含 reasoning_tokens(思考 token),思考 token 也计费且只出现在 usage 明细里。切档后必须按真实 usage 核算:
# 从响应里读完整 usage,落日志
usage = resp.usage
row = {
"model": resp.model,
"prompt_tokens": usage.prompt_tokens,
"completion_tokens": usage.completion_tokens,
"reasoning_tokens": getattr(usage, "reasoning_tokens", 0), # 思考 token
"total_tokens": usage.total_tokens,
"cost_usd": (usage.prompt_tokens * 0.20 + usage.completion_tokens * 1.20) / 1_000_000,
}
注意:上面的单价是 Luna 的。写进代码的单价表要配置化(从网关或定价 API 拉取),因为价格战期间 30 天就可能变一次。
4. 预算告警与熔断
# 伪代码:每日对账任务,跑在 cron 里
spend_today = query_spend(start=now - 24h)
if spend_today > daily_budget * 0.8:
alert("接近日预算 80%", channel="oncall")
if spend_today > daily_budget:
set_router_policy("force_tier=luna") # 全量降级到 Luna,保业务不中断
5. 质量回归:golden set 对比
# 每个任务类型一份 golden set:[(input, expected_keywords_or_judge), ...]
def eval_tier(tier: str, golden: list) -> float:
ok = 0
for q, expected in golden:
out = client.chat.completions.create(
model=tier, messages=[{"role": "user", "content": q}],
temperature=0,
).choices[0].message.content
ok += int(any(k in out for k in expected)) # 关键词命中或 LLM-as-judge
return ok / len(golden)
# 切流前必须满足:luna_score >= sol_score - 0.05(允许 5% 质量损失)
常见坑与规避清单
| # | 坑 | 风险 | 规避 |
|---|---|---|---|
| 1 | 全量切 Luna 不看任务类型 | 复杂推理/代码质量崩盘 | golden set 先行,按任务分批切 |
| 2 | 用 Sol 当路由分类器 | 分类成本吃掉节省 | 分类器固定用 Luna,见上文代码 |
| 3 | 只算单价忽略 reasoning tokens | 账单”降了”实际没降 | 按 usage.reasoning_tokens 真实核算 |
| 4 | fallback 链配置错误 | 静默降级 / 重试风暴 | max_fallbacks: 2 + 指数退避 + 降级日志 |
| 5 | 模型名硬编码在业务代码 | 每次调档都要发版 | 逻辑分组名 + 配置驱动 |
| 6 | 先跑再观测 | 出了问题无法归因 | 第一天就接 spend logs + 每日快照 |
| 7 | 忽略竞品跟进降价 | 路由策略一个月就过时 | 比价周期改为每周,配置热更新 |
🚫 坑 1:复杂任务切到 Luna,质量静默劣化
症状:切流后线上 P95 正常,但代码生成类任务的返工率上升、用户投诉变多——质量劣化往往不体现在延迟上。
规避:每个任务类型独立灰度(10% → 50% → 100%),每档灰度跑一次 golden set + 线上指标对比(通过率、返工率、用户反馈情绪)。发现劣化立即回滚到上一档,回滚是配置操作,不是发版。
🚫 坑 2:429 限流引发重试风暴
症状:Luna 便宜所以流量暴增,触发 RPM/TPM 限流;客户端无脑重试,网关排队,延迟雪崩。
规避:网关层 num_retries: 2 + 指数退避(0.5s/1s/2s),cooldown_time: 30;超限后走 fallback 到 Terra 而不是死等 Luna。同时给 Luna 流量做客户端侧并发上限。
🚫 坑 3:缓存与批处理红利没吃到
症状:批处理任务按单条请求计费,忽略了 prompt caching(相同前缀输入打折)和批处理接口(50% 折扣)。
规避:把相同 system prompt 的请求合并前缀;纯批处理任务走 Batch API,成本再降一半。这两项与分层路由叠加,才是完整的降本公式。
成本 / 性能 / 维护权衡
以下为一个示例测算(假设:日 50M 输入 + 5M 输出 token,其中 70% 简单任务、30% 均衡任务;价格为 7/30 公告后):
| 方案 | 日成本(估算) | 延迟 p50 | 质量上限 | 维护复杂度 | 风险 |
|---|---|---|---|---|---|
| 全量 Sol(不变价) | 高(≈原账单) | 高 | 最高 | 无 | 无 |
| 全量 Terra(降 20%) | $160 | 中 | 中高 | 无 | 低 |
| 全量 Luna(降 80%) | ≈$12.6(35M×$0.2 + 3.5M×$1.2) | 最低 | 中低 | 无 | 质量风险高 |
| 静态标签路由(Luna 70% + Terra 30%) | ≈$59 | 低 | 中高 | 低 | 低 |
| 动态分类路由(+ Sol 兜底) | ≈$59 + 分类开销 | 低 | 高 | 中 | 中 |
| 自托管开源(GLM 5.2 / Kimi K3 等,见 7/30 文) | 取决于 GPU 利用率 | 中 | 中高 | 高 | 运维风险 |
数字为示例假设,用于展示量级关系;真实数字请用自己账单代入。关键结论:静态标签路由用 1/3 的工程成本拿到动态路由 90% 的收益,动态分类器是”利润增量”,不是”必需品”。
替代方案对比
| 方案 | 优势 | 劣势 |
|---|---|---|
| 只调模型名(什么都不做) | 零改动 | 账单不变,降价与你无关 |
| 静态路由(推荐起步) | 零风险、可回滚、当天上线 | 无法覆盖无法静态分类的长尾任务 |
| 动态分类器 | 覆盖全量流量、自动适配 | 分类器本身有成本与误判,需 golden set 持续维护 |
| 网关托管(OpenRouter 等) | 免运维 | 多一层代理延迟,控制力弱,价格透明但难做预算隔离 |
一周内可执行行动清单
Day 1-2:摸底与地基
- 导出近 30 天账单,按任务 × 模型拆分,列出”可降档任务清单”
- Docker 部署 LiteLLM 网关,配好
sol/terra/luna三个分组 + fallback 链 - 建 golden set 初版(每个任务类型 20-50 条)
Day 3-4:静态路由上线
- 业务代码改走网关,按任务类型显式选档(先只改 2-3 个最安全的简单任务到 Luna)
- 接 spend logs + 每日对账脚本 + 预算告警
- 用 golden set 对比 Luna vs Sol 输出,记录基线分数
Day 5:评估与扩容
- 跑 24h 观察:成本下降 X%、质量指标无劣化
- 把可降档任务清单扩大(分批,每批 24h 观察)
Day 6-7:动态化与固化
- (可选)上线 Luna 分类器,低置信度兜底 Sol,灰度 10%
- 产出《档位选择手册》:每个任务类型的默认档位 + 降级规则
- 把比价设为每周例行:OpenAI / Anthropic / Google / 开源模型价格都要盯
参考资源
- OpenAI 官方公告:Advancing the price-performance frontier with GPT-5.6(页面有 Cloudflare 防护,建议浏览器访问)
- The Decoder:OpenAI goes full China pricing mode with an 80 percent cut
- Artificial Analysis:GPT-5.6 Sol/Terra/Luna 智能与成本对比
- Hacker News 讨论(580 分)
- LiteLLM Proxy 文档(路由/预算/spend logs)
写在最后:降价 80% 是一个”给了你工具,但没替你干活”的新闻。真正把钱省下来的是那套路由 + 观测 + 回归的工程闭环——而这套闭环在下一轮价格战(Anthropic、Google、开源模型跟进降价)里会继续复利。先上静态路由,再谈动态分类器:一周内能落地的方案,才是好方案。