在 AI 模型百花齐放的今天,开发者面临一个现实痛点:想用 GPT-4o 就得注册 OpenAI,想用 Claude 就得注册 Anthropic,想用 Gemini 就得注册 Google,想用 DeepSeek 又得注册另一家——每家都有不同的认证方式、不同的 SDK、不同的计费规则。如果你也在被这些碎片化体验折磨,OpenRouter 正是为此而生。它是一个统一的 LLM API 网关,通过一个 API Key 即可接入 300+ 个模型,涵盖 OpenAI、Anthropic、Google、Meta、Mistral、DeepSeek 等几乎所有主流厂商,更重要的是——它提供多个完全免费的模型,无需绑卡即可开始调用。
本文将从注册、免费模型清单、API 调用实战、限速策略、中国可用性到成本控制,全方位拆解 OpenRouter 的免费 API 使用方案。如果你正在寻找一个零成本上手大模型推理的方式,这篇文章会给你完整答案。
OpenRouter 平台概述与核心优势
OpenRouter 的定位非常清晰:做 AI 模型界的”统一支付网关”。你不需要分别对接各家 API,只需要在 OpenRouter 注册一个账号、拿到一个 API Key,就能以统一的 OpenAI 兼容格式调用所有支持的模型。这种设计带来了几个核心优势:
统一接口,零迁移成本
OpenRouter 完全兼容 OpenAI 的 Chat Completions API 格式。这意味着你现有的 OpenAI SDK 代码只需修改 base_url 和 api_key,就能直接切换到任何其他模型。从 GPT-4o 切换到 Claude 3.5 Sonnet,只需改一行 model 参数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="sk-or-v1-你的API密钥",
)
# 用 GPT-4o
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "你好,介绍一下你自己"}],
)
print(response.choices[0].message.content)
# 切换到 Claude 3.5 Sonnet,只需改 model 参数
response = client.chat.completions.create(
model="anthropic/claude-3.5-sonnet",
messages=[{"role": "user", "content": "你好,介绍一下你自己"}],
)
print(response.choices[0].message.content)
自动故障转移与负载均衡
当某个模型的后端服务不可用时,OpenRouter 会自动将请求路由到其他可用的提供商。比如你请求
1 | meta-llama/llama-3.3-70b-instruct |
,OpenRouter 会在多个托管该模型的供应商之间自动负载均衡,大幅提升服务可用性。这对于生产环境来说是一个非常重要的特性——你不需要自己实现 fallback 逻辑。
价格透明,统一计费
OpenRouter 以美元(USD)为单位统一计费,所有模型的 token 价格在模型页面一目了然。你只需要在账户中充值一次,就能在任何模型之间自由切换,无需在多个平台分别充值。更重要的是,免费模型完全不计费,零额度也能用。
免费模型清单与额度详解
OpenRouter 最大的吸引力之一是其免费模型列表。这些模型由各提供商赞助或作为开源模型免费提供,标记为
1 | :free |
后缀。以下是目前可用的主要免费模型(截至2026年9月验证):
| 模型名称 | 模型ID | 上下文长度 | 特点 |
|---|---|---|---|
| Llama 3.3 70B Instruct | meta-llama/llama-3.3-70b-instruct:free | 128K | Meta旗舰开源模型,综合能力强 |
| Gemma 2 9B | google/gemma-2-9b-it:free | 8K | Google开源模型,轻量快速 |
| Qwen 2.5 72B Instruct | qwen/qwen-2.5-72b-instruct:free | 32K | 通义千问旗舰,中文能力优秀 |
| Mistral 7B Instruct | mistralai/mistral-7b-instruct:free | 32K | Mistral开源模型,推理速度快 |
| DeepSeek R1 | deepseek/deepseek-r1:free | 128K | 深度推理模型,数学/代码能力突出 |
| Polyglot 4B | polyglot/polyglot-4b:free | 4K | 多语言支持,轻量级 |
关键信息:是否需要绑卡?不需要。注册 OpenRouter 账号完全免费,使用
1 | :free |
后缀的模型也不需要充值或绑定信用卡。你只需要一个有效的邮箱或 Google/GitHub 账号即可开始。只有当你需要调用付费模型(如 GPT-4o、Claude 3.5)时,才需要充值。
免费额度是多少?免费模型不消耗任何账户余额,但有以下限制:
- 每日请求限制:约 50-100 次/天(根据服务器负载动态调整)
- 每分钟请求限制:约 20 次/分钟
- 免费模型的优先级低于付费用户,高峰期可能出现排队或限流
- 部分免费模型可能有单次请求的 token 上限
最近一次验证日期:2026年9月29日。免费模型列表会不定期更新,部分模型可能被下架或新增,建议使用前通过 API 查询最新可用列表。
注册流程:从账号创建到 API Key 获取
OpenRouter 的注册流程非常简洁,全程不超过 3 分钟。以下是详细步骤:
第1步:访问 OpenRouter 官网
打开浏览器,访问
1 | https://openrouter.ai |
,点击右上角的”Sign In”按钮。
第2步:选择登录方式
OpenRouter 支持三种登录方式:Google 账号、GitHub 账号、或邮箱密码注册。推荐使用 GitHub 登录,方便后续管理。
第3步:创建 API Key
登录后进入 Keys 管理页面,点击”Create Key”按钮,为 Key 命名(如”my-app”),然后复制生成的 API Key。Key 格式以
1 | sk-or-v1- |
开头,请妥善保管。
1
2
3
4
5
6 # 创建 API Key 后,设置环境变量
export OPENROUTER_API_KEY="sk-or-v1-你的密钥"
# 验证 Key 是否有效
curl -s https://openrouter.ai/api/v1/auth/key \
-H "Authorization: Bearer $OPENROUTER_API_KEY" | python3 -m json.tool
第4步:查询可用模型列表
获取所有可用模型的完整列表,包括免费模型:
1
2
3
4
5
6
7
8
9
10
11
12 # 获取所有模型
curl -s https://openrouter.ai/api/v1/models | python3 -m json.tool | head -50
# 筛选免费模型(:free 后缀)
curl -s https://openrouter.ai/api/v1/models | \
python3 -c "
import json, sys
data = json.load(sys.stdin)
free_models = [m for m in data['data'] if ':free' in m['id']]
for m in free_models:
print(f"{m['id']:50s} | ctx: {m.get('context_length', 'N/A')}")
"
上述命令会列出所有当前可用的免费模型及其上下文长度,方便你快速选型。
API 调用实战:curl、Python SDK 与流式输出
OpenRouter 完全兼容 OpenAI API 格式,因此你可以使用任何支持 OpenAI API 的工具和 SDK。以下是几种常用调用方式:
curl 调用
最简单的方式,直接用 curl 发送请求:
1
2
3
4
5
6
7
8
9 curl -s https://openrouter.ai/api/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-d '{
"model": "meta-llama/llama-3.3-70b-instruct:free",
"messages": [
{"role": "user", "content": "用三句话解释什么是Transformer架构"}
]
}' | python3 -m json.tool
Python SDK 调用
使用官方 openai Python 包,只需修改 base_url:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 from openai import OpenAI
import os
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.environ["OPENROUTER_API_KEY"],
)
# 基础对话
response = client.chat.completions.create(
model="deepseek/deepseek-r1:free",
messages=[
{"role": "system", "content": "你是一个专业的技术顾问。"},
{"role": "user", "content": "vLLM和SGLang有什么区别?该怎么选?"}
],
temperature=0.7,
max_tokens=1024,
)
print(response.choices[0].message.content)
print("\n--- Token 使用 ---")
print(f"Prompt tokens: {response.usage.prompt_tokens}")
print(f"Completion tokens: {response.usage.completion_tokens}")
print(f"总 tokens: {response.usage.total_tokens}")
print("费用: $0.00 (免费模型)")
流式输出(Streaming)
对于需要实时显示生成结果的场景,使用流式输出可以大幅改善用户体验:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 from openai import OpenAI
import os
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.environ["OPENROUTER_API_KEY"],
)
stream = client.chat.completions.create(
model="qwen/qwen-2.5-72b-instruct:free",
messages=[{"role": "user", "content": "写一个Python快速排序的实现,并解释每行代码"}],
stream=True,
temperature=0.3,
)
for chunk in stream:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="", flush=True)
print()
多轮对话与上下文管理
OpenRouter 同样支持多轮对话,只需在 messages 中维护完整的对话历史:
1
2
3
4
5
6
7
8
9
10
11
12 messages = [
{"role": "system", "content": "你是一个简洁的编程助手。"},
{"role": "user", "content": "什么是PagedAttention?"},
{"role": "assistant", "content": "PagedAttention是一种通过操作系统分页机制管理KV Cache的技术..."},
{"role": "user", "content": "它和传统KV Cache管理有什么区别?"}
]
response = client.chat.completions.create(
model="meta-llama/llama-3.3-70b-instruct:free",
messages=messages,
)
print(response.choices[0].message.content)
想了解更多关于大模型推理优化的深度内容,可以参考我们的PagedAttention 深度解析和DeepSeek API 免费额度全攻略。
限速、定价与成本控制
理解 OpenRouter 的限速和计费机制,是高效使用该平台的关键。
免费模型限速规则
免费模型的限速策略如下(截至2026年9月):
| 限制项 | 免费模型 | 付费模型 |
|---|---|---|
| 每分钟请求数(RPM) | 20 | 200-1000(视模型) |
| 每日请求数 | 50-100 | 无限制 |
| 请求优先级 | 低(可能排队) | 高 |
| 单次最大 token | 视模型而定 | 视模型而定 |
如果你的免费模型请求被限流(HTTP 429),可以等待几分钟后重试,或者切换到其他免费模型。OpenRouter 的多供应商路由机制意味着同一个模型可能有多个后端,重试往往能命中不同的后端实例。
付费模型定价
付费模型按 token 计费,价格与各家官方 API 基本持平(OpenRouter 会加收极小的服务费)。以下是部分热门模型的参考价格:
| 模型 | 输入价格 ($/1M tokens) | 输出价格 ($/1M tokens) |
|---|---|---|
| GPT-4o | $2.50 | $10.00 |
| Claude 3.5 Sonnet | $3.00 | $15.00 |
| GPT-4o-mini | $0.15 | $0.60 |
| Llama 3.1 405B | $0.80 | $0.80 |
| DeepSeek V3 | $0.14 | $0.28 |
设置消费上限
为了防止意外超支,OpenRouter 支持为每个 API Key 设置消费限制(Credit Limit)。在 Keys 管理页面可以设置单次请求的 token 上限和总消费上限:
1
2
3
4
5
6
7
8
9 # 创建带限制的 API Key
curl -s https://openrouter.ai/api/v1/keys \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "budget-limited-key",
"limit": 10.00,
"limit_duration": "monthly"
}' | python3 -m json.tool
这样即使代码出了 bug 导致死循环调用,最多也只会消费 10 美元,不会造成更大的损失。
中国用户可用性与网络优化
中国用户可用性:OpenRouter 的 API 服务器部署在海外,中国直连通常需要代理。以下是实际测试情况:
| 访问方式 | 连通性 | 平均延迟 | 备注 |
|---|---|---|---|
| 直连(电信) | 不稳定 | 300-800ms | 部分地区可能无法访问 |
| 直连(联通/移动) | 不稳定 | 400-1000ms | 偶尔超时 |
| 通过日本/香港代理 | 稳定 | 80-200ms | 推荐方案 |
| 通过美国代理 | 稳定 | 150-300ms | 延迟稍高但稳定 |
对于中国开发者,推荐使用香港或日本节点的代理来访问 OpenRouter API。如果你使用 VPS 部署应用,可以参考我们的VPS 网络线路深度对比选择延迟最优的节点。
代理配置
在 Python 中使用代理非常简单:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 from openai import OpenAI
import httpx
import os
# 方式1:通过环境变量设置代理
os.environ["HTTP_PROXY"] = "http://your-proxy:port"
os.environ["HTTPS_PROXY"] = "http://your-proxy:port"
# 方式2:通过 httpx client 设置代理
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.environ["OPENROUTER_API_KEY"],
http_client=httpx.Client(
proxy="http://your-proxy:port"
),
)
response = client.chat.completions.create(
model="meta-llama/llama-3.3-70b-instruct:free",
messages=[{"role": "user", "content": "测试连通性"}],
)
print(response.choices[0].message.content)
延迟优化技巧
- 使用流式输出:stream=True 可以让首 token 延迟(TTFT)更低,用户体验更好
- 选择就近模型:部分模型在亚洲有部署,延迟更低
- 合理设置 max_tokens:避免生成过长内容导致等待时间过长
- 批量请求:如果需要处理大量请求,合理控制并发数避免触发限速
同类服务对比与选型建议
OpenRouter 并非唯一的统一 API 网关,以下是它与同类服务的横向对比:
| 对比项 | OpenRouter | Together AI | HuggingFace Inference | 直接调用官方API |
|---|---|---|---|---|
| 模型数量 | 300+ | ~200 | ~100 | 每家1-10个 |
| 免费模型 | 有(多个) | 有($1额度) | 有(Serverless) | 视各家政策 |
| 需要绑卡 | 免费模型不需要 | 需要 | 不需要 | 视各家 |
| API兼容性 | OpenAI兼容 | OpenAI兼容 | 自有格式 | 各自格式 |
| 自动故障转移 | 支持 | 不支持 | 不支持 | 不支持 |
| 价格透明度 | 高(统一展示) | 中 | 低(按实例) | 高(各家独立) |
| 中国可用性 | 需代理 | 需代理 | 需代理 | 视各家 |
更详细的免费 API 平台对比,可以参考我们的2026年免费AI推理API横向对比评测,涵盖了 Groq、Cerebras、DeepSeek、Mistral 等8大平台的绑卡、额度、限速与中国可用性全方位对比。
选型建议
适合用 OpenRouter 的场景:
- 需要快速原型验证,不想分别注册多家 API
- 需要在不同模型之间频繁切换做 A/B 测试
- 预算有限,想先用免费模型验证可行性
- 需要自动故障转移保障服务可用性
- 构建 AI 应用,需要统一的模型管理入口
不适合用 OpenRouter 的场景:
- 只使用单一厂商的模型(直接调用官方 API 更便宜,省去中间层加价)
- 对延迟极其敏感的场景(多一层网关会增加 20-50ms 延迟)
- 需要使用厂商专有功能(如 OpenAI 的 Assistants API、Anthropic 的 Computer Use)
- 需要完全离线/本地部署(参考我们的开源大模型本地部署实战)
实战项目:用免费模型搭建简易 AI 助手
下面用一个完整的 Python 脚本演示如何用 OpenRouter 免费模型搭建一个简易的多轮对话 AI 助手:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 #!/usr/bin/env python3
"""基于 OpenRouter 免费模型的多轮对话助手"""
from openai import OpenAI
import os
# 初始化客户端
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.environ.get("OPENROUTER_API_KEY"),
)
# 对话历史
messages = [
{"role": "system", "content": "你是一个专业的技术问答助手,回答简洁准确。"}
]
# 可用的免费模型
FREE_MODELS = [
"meta-llama/llama-3.3-70b-instruct:free",
"deepseek/deepseek-r1:free",
"qwen/qwen-2.5-72b-instruct:free",
"google/gemma-2-9b-it:free",
]
def chat(user_input, model_idx=0):
"""发送对话请求"""
messages.append({"role": "user", "content": user_input})
try:
response = client.chat.completions.create(
model=FREE_MODELS[model_idx],
messages=messages,
temperature=0.7,
max_tokens=2048,
)
reply = response.choices[0].message.content
messages.append({"role": "assistant", "content": reply})
return reply
except Exception as e:
return f"请求失败: {e}"
if __name__ == "__main__":
print("=== OpenRouter 免费模型 AI 助手 ===")
print(f"当前模型: {FREE_MODELS[0]}")
print("输入 /switch 切换模型, /history 查看历史, /quit 退出\n")
model_idx = 0
while True:
user_input = input("你: ").strip()
if not user_input:
continue
if user_input == "/quit":
break
elif user_input == "/switch":
model_idx = (model_idx + 1) % len(FREE_MODELS)
print(f"已切换到: {FREE_MODELS[model_idx]}")
continue
elif user_input == "/history":
for m in messages:
print(f"[{m['role']}] {m['content'][:80]}...")
continue
reply = chat(user_input, model_idx)
print(f"AI: {reply}\n")
这个脚本展示了如何管理多轮对话上下文、在多个免费模型之间切换,以及基本的错误处理。你可以在此基础上扩展流式输出、对话持久化、模型自动选择等功能。
总结与要点回顾
OpenRouter 作为统一 LLM API 网关,为开发者提供了极大的便利。以下是本文的核心要点:
- 零门槛上手:无需绑卡,免费模型直接可用,注册到首次调用不到 5 分钟
- 模型丰富:300+ 模型覆盖几乎所有主流厂商,OpenAI 兼容格式零迁移成本
- 免费模型推荐:Llama 3.3 70B、DeepSeek R1、Qwen 2.5 72B 是目前综合能力最强的免费选项
- 限速注意:免费模型每日约 50-100 次请求,高峰期可能排队,适合开发测试和非关键场景
- 中国可用性:需要代理访问,推荐香港/日本节点,延迟 80-200ms
- 成本控制:可为每个 API Key 设置消费上限,防止意外超支
- 自动故障转移:多供应商路由机制天然提供高可用性保障
对于个人开发者和初创团队来说,OpenRouter 的免费模型足以支撑原型验证、技术调研和轻量级应用。当你需要更强的性能和更高的请求量时,只需充值即可无缝升级到付费模型,无需更换任何代码。这种”先免费试水,再按需付费”的模式,让大模型应用的试错成本降到几乎为零。
如果你对其他免费 AI 推理平台也感兴趣,推荐阅读我们的Groq 免费 API 极速推理全攻略和Cerebras 免费极速推理 API 实战指南,了解不同平台在推理速度、模型支持和免费额度上的差异,选择最适合你场景的方案。
汤不热吧