记录一下那天晚上的排查过程。通过 OpenRouter 调 qwen-2.5-72b-instruct,同一份 prompt 两次请求的输出风格差异很大,账单单价也差三倍,响应里的 provider 字段每次都不一样。

刚开始盯着「上游的量化档位不同,同一模型效果差一截」,折腾了半个多小时,排掉了。

排查方向其实有限,先把可能性排一排。OpenRouter 会在多个上游之间路由,各家量化与模板不同。还有一种是请求没带 provider 偏好,路由按可用性随机选。

少数情况下是价格排序策略优先选了最便宜的上游。

先看响应里的 provider 与用量

curl https://openrouter.ai/api/v1/chat/completions -H 'Authorization: Bearer KEY' -d @req.json

随后对比两次请求的上游字段

python diff_provider.py --a a.json --b b.json

固定上游后重新请求

python call_or.py --provider Together --no-fallback

剩下的就是记录单价与延迟再定默认上游

python bench_or.py --provider Together --requests 20

怎么算真的好了,看的是同一批现象。连续十次请求的 provider 字段一致,输出风格稳定,账单单价与页面标价对得上。

容易忽略的是,聚合平台上的模型名不等于某个确定权重,要可复现就得锁上游,锁不住就自己部署。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189