上周五下午我盯着屏幕上五个AI工具窗口——DeepSeek写后端、Claude review前端、Kimi翻文档、GPT-5生成测试用例——切来切去,每个平台的key和格式都不一样,挺烦的。
同事路过说:"你不烦吗?每个都单独配、单独充钱、单独记key。"
烦,但一直没动。直到他推荐了OpenRouter,说一个key调400多个模型。OpenRouter刚拿了Alphabet领投的1.13亿美金B轮,算是被验证过的产品了,我决定试试。
用了一周,有些地方确实省心,但也踩了几个坑。写出来给同样在多平台API之间反复横跳的人参考。
配起来比想象中快
注册没什么好说的,GitHub登录两分钟搞定。拿到key之后记得马上存——这玩意儿只显示一次,我差点复制完就关页面。免费用户每天能调50次免费模型,充10刀以上提到1000次。
环境变量配上就完了:
export OPENAI_API_KEY="sk-or-你的key"
export OPENAI_BASE_URL="https://openrouter.ai/api/v1"
pip install openai
然后我在Cursor里把API endpoint和key一换,接上了。在LobeChat里同理——接口地址、key、模型名一填就行。模型名要注意格式,是厂商/模型名,比如qwen/qwen3.6-plus:free,带:free后缀的不要钱。
Python调用的代码也简单,跟调OpenAI一模一样:
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="sk-or-你的key"
)
response = client.chat.completions.create(
model="qwen/qwen3.6-plus:free",
messages=[{"role": "user", "content": "用Python写一个LRU Cache"}]
)
print(response.choices[0].message.content)
流式输出也没问题,换个stream=True就行。能直接用openai库的接口调所有模型,这点确实方便——以前每切一个模型还得看它的SDK怎么用。
配置部分就这么点东西。下面的坑才是我写这篇文章的主要原因。
坑一:免费模型说没就没
这个坑我踩得最郁闷。
上周我在调一个数据处理脚本,用的meta-llama/llama-4-maverick:free,调了一下午都正常。第二天早上接着跑,突然报402——模型变成付费了。
我去模型列表一看,免费标签没了。OpenRouter的免费模型是动态的,限免期过了就收费,不会提前通知。你能想象早上跑得好好的脚本突然挂了吗?关键是错误信息只说Payment Required,完全没提示"这个模型之前免费现在收费了",排查了好一会儿才搞明白。
现在的解决办法:在代码里加个fallback列表,一个模型挂了自动换下一个:
fallback_models = [
"qwen/qwen3.6-plus:free",
"google/gemini-2.5-flash-preview-05-20:free",
"deepseek-ai/deepseek-v3-250530:free"
]
for model in fallback_models:
try:
response = client.chat.completions.create(
model=model,
messages=messages,
stream=True
)
break
except Exception:
continue
丑是丑了点,但管用。
坑二:模型ID拼错,错误信息帮不上忙
之前调一个模型报401 Unauthorized。我反复检查key和url,都没问题。还重新生成了一次key,还是401。折腾了十多分钟,发现是模型ID写错了——qwen/qwen3.6-plus写成了qwen/qwen36-plus,少了个点。
一个点的区别,错误信息跟你说Unauthorized,你往key的方向查,越查越远。
建议:不确定模型ID的时候,直接去OpenRouter的模型列表页面搜,复制完整的ID。别手打,别自信。
坑三:网络和速度问题
注册时页面加载巨慢,我一开始以为网站挂了,重试了好几次。后来挂了代理秒开。如果你第一次访问遇到加载慢,先看看是不是网络的事。
然后是响应速度。免费模型的响应取决于当前服务器负载,我测试了好几次,晚上9点以后明显变慢,有时候等个回复要十几秒。如果你的场景对延迟敏感(比如做实时对话),免费模型可能扛不住。付费模型会稳定很多。
如果你也在被多平台API折腾,OpenRouter可以试试,免费额度摆在那,试错成本接近零。
我自己的情况:主力在用,fallback代码也加好了,短期内不会再换方案。直接对接厂商API的事以后再说。