【AI模型】API-OpenRouter
OpenRouter API 完全指南
【AI&游戏】专栏-直达
OpenRouter是一个创新的多模型AI聚合平台,通过统一的API接口提供对300+AI模型的访问能力。OpenRouter的核心理念是"One API for any model",让开发者无需关心底层服务商,只需一个接口即可访问来自OpenAI、Anthropic、Google、DeepSeek等众多提供商的模型。本篇文章将全面介绍OpenRouter API的核心功能、模型支持、自动路由、开发指南以及在游戏开发中的应用场景。
一、平台概述
1.1 OpenRouter简介
OpenRouter成立于2023年,是一家专注于AI模型聚合和智能路由的云服务平台。与传统的AI API提供商不同,OpenRouter不拥有自己的模型,而是充当"模型路由器"的角色,将来自不同提供商的模型汇聚到统一的平台。
OpenRouter的核心价值:
- 模型聚合:汇聚300+模型,来自60+提供商
- 统一接口:一次集成,访问所有模型
- 智能路由:自动选择最优模型
- 价格透明:显示底价和平台费用
- 免费额度:提供免费模型和积分
1.2 核心功能
Auto Router:智能路由功能,自动根据任务选择最优模型。
价格比较:清晰展示各模型的底价和总费用。
统一计费:一个账户,一份账单,访问所有模型。
活动日志:完整的请求记录和使用统计。
密钥管理:灵活的API密钥控制和预算设置。
二、模型支持
2.1 主要模型提供商
OpenRouter支持的顶级模型提供商包括:
OpenAI:GPT-5、GPT-4o、o系列推理模型等
Anthropic:Claude Opus、Sonnet、Haiku系列
Google:Gemini Pro、Flash等
DeepSeek:DeepSeek V3、R1等
Meta:Llama 3.1、Llama 3.3等
Mistral:Mistral Large、Mistral 7B等
xAI:Grok系列
Perplexity:Sonar系列
2.2 免费模型
OpenRouter提供25+免费模型,适合开发和测试:
- Claude 3 Haiku
- Gemini Flash
- Llama 3.2 3B
- Phi-3 Mini
- Qwen 2.5 7B
2.3 Auto Router
Auto Router是OpenRouter的智能路由功能:
response = client.chat.completions.create(
model="openrouter/auto",
messages=[
{"role": "user", "content": "你好"}
]
)
# 请求会自动路由到最合适的模型
print(response.model) # 显示实际使用的模型
Auto Router会根据任务复杂度、当前负载等因素自动选择最优模型。
三、API核心功能
3.1 基础调用
from openai import OpenAI
client = OpenAI(
api_key="your-openrouter-api-key",
base_url="https://openrouter.ai/api/v1"
)
response = client.chat.completions.create(
model="anthropic/claude-3-opus", # OpenRouter使用provider/model格式
messages=[
{"role": "system", "content": "你是一个有用的助手。"},
{"role": "user", "content": "你好"}
]
)
print(response.choices[0].message.content)
3.2 模型标识符格式
OpenRouter使用provider/model的格式标识模型:
models = {
"claude_opus": "anthropic/claude-3-opus",
"claude_sonnet": "anthropic/claude-3-sonnet",
"gpt_4o": "openai/gpt-4o",
"gemini_pro": "google/gemini-pro",
"deepseek_v3": "deepseek/deepseek-chat",
"llama_70b": "meta-llama/llama-3-70b-instruct"
}
3.3 流式输出
stream = client.chat.completions.create(
model="anthropic/claude-3-haiku",
messages=[
{"role": "user", "content": "讲一个关于AI的笑话"}
],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
3.4 生成图像
response = client.images.generate(
model="black-forest-labs/flux-1.1-pro",
prompt="A cute game character",
size="1024x1024"
)
3.5 价格计算
# 使用X-Credits-Price头获取费用估算
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
{"role": "user", "content": "Hello"}
],
extra_headers={
"X-Credits-Price": "include" # 在响应中包含价格信息
}
)
# 响应中包含 usage 和 costs
print(response.usage)
四、定价与成本管理
4.1 价格结构
OpenRouter的价格由两部分组成:
- 底价:提供商的实际API价格
- 平台费用:约1%(pay-as-you-go)或免收(付费订阅)
4.2 预算和限制
# 设置每请求最大支出
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Hello"}],
extra_headers={
"X-Max-Cost": "0.001" # 最大0.001美元
}
)
4.3 成本优化策略
- 使用Auto Router自动选择最优性价比
- 简单任务使用免费模型
- 合理设置max_tokens限制输出长度
- 监控活动日志优化使用
五、在游戏开发中的应用
5.1 多模型NPC对话
def create_multimodel_npc():
"""
创建支持多模型的NPC对话
"""
def chat(model_choice, npc_personality, message):
models = {
"fast": "anthropic/claude-3-haiku",
"balanced": "anthropic/claude-3-sonnet",
"powerful": "anthropic/claude-3-opus"
}
response = client.chat.completions.create(
model=models[model_choice],
messages=[
{"role": "system", "content": f"你是游戏角色:{npc_personality}"},
{"role": "user", "content": message}
],
temperature=0.8,
max_tokens=500
)
return response.choices[0].message.content
return chat
# 使用示例
npc_chat = create_multimodel_npc()
# 快速对话使用轻量模型
fast_response = npc_chat("fast", "热情的商人", "你好")
# 复杂对话使用强大模型
detailed_response = npc_chat("powerful", "智慧的法师", "请解释魔法的本质")
5.2 自动路由游戏助手
def game_assistant_auto_route(task):
"""
使用Auto Router的游戏助手
自动选择最适合的模型
"""
prompt = f"""你是一个游戏助手,帮助玩家解答问题。
任务:{task}
请根据问题的复杂度选择合适的回答方式。"""
response = client.chat.completions.create(
model="openrouter/auto", # 自动路由
messages=[
{"role": "user", "content": prompt}
]
)
print(f"使用模型:{response.model}")
return response.choices[0].message.content
5.3 多模态内容分析
def analyze_game_screenshot(image_base64):
"""
分析游戏截图
使用多模态模型
"""
response = client.chat.completions.create(
model="google/gemini-pro-vision",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "分析这张游戏截图,描述场景内容"},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image_base64}"}}
]
}
]
)
return response.choices[0].message.content
六、最佳实践
6.1 模型选择建议
- 开发测试:使用免费模型
- 简单任务:Claude Haiku、GPT-4o-mini
- 平衡任务:Claude Sonnet、GPT-4o
- 复杂任务:Claude Opus、GPT-4
6.2 错误处理
from openai import APIError, RateLimitError
def call_with_fallback(messages):
"""
带降级策略的调用
如果首选模型失败,自动尝试备用模型
"""
models = [
"anthropic/claude-3-opus",
"anthropic/claude-3-sonnet",
"anthropic/claude-3-haiku"
]
for model in models:
try:
response = client.chat.completions.create(
model=model,
messages=messages
)
return response
except RateLimitError:
continue
except APIError:
continue
raise Exception("所有模型都不可用")
6.3 成本监控
# 使用活动日志监控成本
activity = client.chat.completions.with_raw_response.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Hello"}]
)
# 获取响应和成本信息
response = activity.parse()
print(f"使用模型: {response.model}")
print(f"Token使用: {response.usage}")
七、总结
OpenRouter作为多模型聚合平台,为开发者提供了极大的灵活性和便利性。通过统一的API接口,开发者可以轻松访问300+模型,无需管理多个账户和账单。Auto Router功能更是简化了模型选择的复杂性。对于游戏开发者而言,OpenRouter的多模型支持使其可以根据不同场景和预算灵活配置AI能力,实现最优的成本效益比。
(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)