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能力,实现最优的成本效益比。


(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐