欢迎光临
我们一直在努力

OpenRouter 入门教程:一个 API 玩转 500+AI 模型

OpenRouter入门教程:一个API玩转500+AI模型(多案例版)

一、OpenRouter是什么?

OpenRouter是一个AI模型API聚合平台,它像一个"万能插座",让你用一个API密钥和统一接口调用来自OpenAI、Anthropic、Google、Mistral等50+提供商的500+主流AI模型,包括50+个可免费使用的模型。

核心优势:

  • 统一接口:无需适配不同厂商的API格式
  • 灵活切换:一行代码即可更换模型,便于对比测试
  • 成本优化:自动选择最经济的模型方案
  • 自动故障转移:主模型不可用时自动切换备用模型
  • 免费模型:提供多个免费模型,适合学习和原型开发
    在这里插入图片描述

二、准备工作:注册与API密钥获取

1. 注册账号

  • 访问官网:https://openrouter.ai
  • 点击"Sign Up"注册,支持Google账号快速登录或邮箱注册
  • 完成邮箱验证后登录
  • 2. 启用免费模型(重要)

    免费模型需要特殊的隐私设置,否则无法使用:

  • 点击右上角头像 → Settings(设置)→ Privacy(隐私)
  • 勾选"Agree to the free models data policy"(同意免费模型数据政策)
  • 保存设置
  • 3. 创建API密钥

  • 点击右上角头像 → API Keys(密钥)
  • 点击"Create Key"创建新密钥
  • 输入密钥名称,可选设置额度限制
  • 复制密钥并妥善保存(仅显示一次)
  • 三、三种核心调用方式(Python)

    方式1:使用OpenAI SDK(推荐,兼容性最好)

    OpenRouter提供OpenAI兼容接口,可直接使用OpenAI SDK调用所有模型。

    # 安装依赖
    pip install openai python-dotenv

    基础案例:调用GPT-3.5-turbo

    import os
    from openai import OpenAI
    from dotenv import load_dotenv

    # 加载环境变量
    load_dotenv()

    # 配置OpenRouter客户端
    client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key=os.getenv("OPENROUTER_API_KEY"),
    default_headers={
    "HTTP-Referer": "https://your-website.com", # 可选,用于排行榜展示
    "X-Title": "Your App Name" # 可选,应用名称
    }
    )

    async def main():
    # 发送请求
    completion = await client.chat.completions.create(
    model="openai/gpt-3.5-turbo",
    messages=[{"role": "user", "content": "用一句话解释什么是人工智能?"}]
    )

    # 输出结果
    print(completion.choices[0].message.content)

    # 运行主函数
    import asyncio
    asyncio.run(main())

    方式2:直接API调用(无依赖,适合轻量场景)

    import requests
    import os
    import json
    from dotenv import load_dotenv

    load_dotenv()

    url = "https://openrouter.ai/api/v1/chat/completions"
    headers = {
    "Authorization": f"Bearer {os.getenv('OPENROUTER_API_KEY')}",
    "Content-Type": "application/json",
    "HTTP-Referer": "https://your-website.com", # 可选
    "X-Title": "Your App Name" # 可选
    }

    data = {
    "model": "deepseek/deepseek-r1-distill-llama-70b:free", # 免费模型
    "messages": [{"role": "user", "content": "推荐3本Python入门书籍"}]
    }

    # 发送POST请求
    response = requests.post(url, headers=headers, data=json.dumps(data))
    result = response.json()

    # 输出结果
    print(result["choices"][0]["message"]["content"])

    方式3:使用OpenRouter Python SDK(Beta版)

    # 安装SDK
    pip install openrouter

    from openrouter import OpenRouter
    import os
    from dotenv import load_dotenv

    load_dotenv()

    # 初始化客户端
    client = OpenRouter(
    api_key=os.getenv("OPENROUTER_API_KEY"),
    base_url="https://openrouter.ai/api/v1"
    )

    async def main():
    # 发送请求
    response = await client.chat.completions.create(
    model="mistralai/mistral-7b-instruct:free", # 免费模型
    messages=[{"role": "user", "content": "什么是大语言模型?"}]
    )

    # 输出结果
    print(response.choices[0].message.content)

    # 运行
    import asyncio
    asyncio.run(main())

    四、7个实战案例,覆盖主流应用场景

    案例1:免费模型调用(零成本学习)

    OpenRouter提供多个免费模型,名称通常带":free"后缀:

    # 免费模型列表(部分):
    # – deepseek/deepseek-r1-distill-llama-70b:free
    # – mistralai/mistral-7b-instruct:free
    # – google/gemma-7b-it:free
    # – tencent/tencenthunyuan-pro-7b:free

    async def free_model_demo():
    completion = await client.chat.completions.create(
    model="mistralai/mistral-7b-instruct:free", # 选择免费模型
    messages=[{"role": "user", "content": "写一首关于程序员的短诗"}]
    )
    print("免费模型结果:")
    print(completion.choices[0].message.content)

    asyncio.run(free_model_demo())

    案例2:流式响应(实时显示结果)

    适合聊天应用,逐字显示AI回复:

    async def streaming_demo():
    print("AI正在思考,将实时显示结果:")

    stream = await client.chat.completions.create(
    model="openai/gpt-3.5-turbo",
    messages=[{"role": "user", "content": "解释什么是流式响应?"}],
    stream=True # 启用流式
    )

    async for chunk in stream:
    if chunk.choices[0].delta.content:
    print(chunk.choices[0].delta.content, end="", flush=True)

    asyncio.run(streaming_demo())

    案例3:多轮对话(上下文记忆)

    通过维护messages列表实现连续对话:

    async def multi_turn_demo():
    # 初始化对话历史
    messages = [
    {"role": "system", "content": "你是一个友好的助手,擅长解释技术概念"},
    {"role": "user", "content": "什么是OpenRouter?"}
    ]

    # 第一轮对话
    response = await client.chat.completions.create(
    model="anthropic/claude-3-haiku",
    messages=messages
    )
    assistant_msg = response.choices[0].message
    print("AI:", assistant_msg.content)

    # 添加AI回复到对话历史
    messages.append(assistant_msg)

    # 第二轮对话(基于上下文)
    messages.append({"role": "user", "content": "它和直接调用OpenAI API有什么区别?"})
    response2 = await client.chat.completions.create(
    model="anthropic/claude-3-haiku",
    messages=messages
    )
    print("AI:", response2.choices[0].message.content)

    asyncio.run(multi_turn_demo())

    案例4:代码生成与解释

    调用擅长代码的模型生成Python代码:

    async def code_generation_demo():
    prompt = """
    写一个Python函数,实现以下功能:
    1. 接收一个列表作为输入
    2. 计算列表中所有偶数的平方和
    3. 返回结果
    4. 添加详细注释
    """

    response = await client.chat.completions.create(
    model="deepseek/deepseek-coder-6.7b-instruct:free", # 免费代码模型
    messages=[{"role": "user", "content": prompt}],
    temperature=0.3 # 降低随机性,提高代码准确性
    )
    print("生成的代码:")
    print(response.choices[0].message.content)

    asyncio.run(code_generation_demo())

    案例5:模型对比测试(一行代码切换模型)

    快速对比不同模型的输出差异:

    async def model_comparison_demo():
    prompt = "解释量子计算的基本原理,用简单易懂的语言"
    models = [
    "openai/gpt-3.5-turbo",
    "anthropic/claude-3-haiku",
    "mistralai/mistral-7b-instruct:free"
    ]

    for model in models:
    print(f"\\n===== {model} =====")
    response = await client.chat.completions.create(
    model=model,
    messages=[{"role": "user", "content": prompt}]
    )
    print(response.choices[0].message.content[:200] + "…") # 显示前200字符

    asyncio.run(model_comparison_demo())

    案例6:参数调优(控制输出风格)

    通过参数调整AI回复的长度、随机性和格式:

    async def parameter_tuning_demo():
    messages = [{"role": "user", "content": "写一个关于太空探索的故事"}]

    # 高随机性(创意故事)
    print("=== 高随机性(temperature=0.9)===")
    response1 = await client.chat.completions.create(
    model="openai/gpt-3.5-turbo",
    messages=messages,
    temperature=0.9, # 0-2,越高越随机
    max_tokens=200 # 限制最大长度
    )
    print(response1.choices[0].message.content)

    # 低随机性(结构化输出)
    print("\\n=== 低随机性(temperature=0.1)===")
    response2 = await client.chat.completions.create(
    model="openai/gpt-3.5-turbo",
    messages=messages,
    temperature=0.1,
    max_tokens=200,
    top_p=0.1 # 核采样,0-1,越小越集中
    )
    print(response2.choices[0].message.content)

    asyncio.run(parameter_tuning_demo())

    案例7:工具调用(连接外部API)

    通过MCP(Model Context Protocol)实现工具调用:

    async def tool_calling_demo():
    # 定义可用工具
    tools = [
    {
    "type": "function",
    "function": {
    "name": "get_weather",
    "description": "获取指定城市的天气信息",
    "parameters": {
    "type": "object",
    "properties": {
    "city": {
    "type": "string",
    "description": "城市名称"
    }
    },
    "required": ["city"]
    }
    }
    }
    ]

    response = await client.chat.completions.create(
    model="openai/gpt-3.5-turbo",
    messages=[{"role": "user", "content": "北京今天的天气怎么样?"}],
    tools=tools,
    tool_choice="auto" # 自动选择工具
    )

    # 处理工具调用请求
    tool_calls = response.choices[0].message.tool_calls
    if tool_calls:
    print("需要调用工具:", tool_calls[0].function.name)
    # 这里可以添加调用外部天气API的逻辑
    # 然后将结果返回给模型继续生成回复

    asyncio.run(tool_calling_demo())

    五、常见问题与最佳实践

    常见问题

  • 免费模型无法使用:检查隐私设置是否启用了免费模型数据政策
  • API调用失败:
    • 检查API密钥是否正确
    • 确认模型名称是否正确(可在https://openrouter.ai/models查询)
    • 检查余额是否充足(免费模型有调用频率限制)
  • 响应缓慢:尝试切换到其他模型,或调整max_tokens减少输出长度
  • 最佳实践

  • 环境变量管理:使用dotenv存储API密钥,避免硬编码
  • 错误处理:添加try-except捕获API调用异常
  • 模型选择策略:
    • 原型开发:使用免费模型
    • 生产环境:根据任务选择最合适的付费模型
    • 成本敏感:选择性价比高的模型如Mistral、DeepSeek
  • 对话管理:合理维护上下文,避免对话历史过长导致token消耗过多
  • 监控与优化:使用OpenRouter控制台查看调用统计,优化模型选择和参数设置
  • 六、进阶方向

  • 批量处理:同时处理多个请求,提高效率
  • 自定义路由:根据任务类型自动选择最优模型
  • 缓存机制:缓存常见查询结果,减少API调用
  • 多模态:调用支持图像生成的模型(如DALL-E、Stable Diffusion)
  • 应用部署:将OpenRouter集成到Web应用、桌面程序或移动应用中
  • 总结

    OpenRouter让AI开发变得前所未有的简单,你只需专注于应用逻辑,无需关心底层模型的复杂性。通过本教程的7个案例,你已经掌握了从基础调用到高级功能的核心技能。现在,开始用一个API探索500+AI模型的无限可能吧!

    赞(0)
    未经允许不得转载:171主机测评 » OpenRouter 入门教程:一个 API 玩转 500+AI 模型
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址