跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI

OpenRouter 快速入门:统一接口调用 500+AI 模型

OpenRouter 是一个 AI 模型 API 聚合平台,允许开发者通过单一 API 密钥和统一接口调用超过 500 个主流 AI 模型。它支持自动故障转移、成本优化及免费模型使用。教程涵盖注册流程、API 密钥获取及三种核心调用方式(OpenAI SDK、直接 API、官方 SDK)。包含免费模型调用、流式响应、多轮对话、代码生成等实战案例,并提供参数调优与工具调用指导。适合从原型开发到生产环境部署的多种场景。

CloudNative发布于 2026/3/22更新于 2026/7/2336 浏览
OpenRouter 快速入门:统一接口调用 500+AI 模型

OpenRouter 快速入门:统一接口调用 500+AI 模型

一、OpenRouter 是什么?

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

核心优势:

  • 统一接口:无需适配不同厂商的 API 格式
  • 灵活切换:一行代码即可更换模型,便于对比测试
  • 成本优化:自动选择最经济的模型方案
  • 自动故障转移:主模型不可用时自动切换备用模型

免费模型:提供多个免费模型,适合学习和原型开发

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

1. 注册账号

  1. 访问官网:https://openrouter.ai
  2. 点击"Sign Up"注册,支持 Google 账号快速登录或邮箱注册
  3. 完成邮箱验证后登录

2. 启用免费模型(重要)

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

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

3. 创建 API 密钥

  1. 点击右上角头像 → API Keys(密钥)
  2. 点击"Create Key"创建新密钥
  3. 输入密钥名称,可选设置额度限制
  4. 复制密钥并妥善保存(仅显示一次)

三、三种核心调用方式(Python)

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

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

# 安装依赖 pip install openai python-dotenv
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",  # 可选,用于排行榜展示
        :   
    }
)

  ():
    
    completion =  client.chat.completions.create(
        model=,
        messages=[{: , : }]
    )
    
    (completion.choices[].message.content)


 asyncio
asyncio.run(main())
"X-Title"
"Your App Name"
# 可选,应用名称
async
def
main
# 发送请求
await
"openai/gpt-3.5-turbo"
"role"
"user"
"content"
"用一句话解释什么是人工智能?"
# 输出结果
print
0
# 运行主函数
import

方式 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())

五、常见问题与最佳实践

常见问题

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

最佳实践

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

六、进阶方向

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

总结

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

目录

  1. OpenRouter 快速入门:统一接口调用 500+AI 模型
  2. 一、OpenRouter 是什么?
  3. 二、准备工作:注册与 API 密钥获取
  4. 1. 注册账号
  5. 2. 启用免费模型(重要)
  6. 3. 创建 API 密钥
  7. 三、三种核心调用方式(Python)
  8. 方式 1:使用 OpenAI SDK(推荐,兼容性最好)
  9. 安装依赖 pip install openai python-dotenv
  10. 加载环境变量
  11. 配置 OpenRouter 客户端
  12. 运行主函数
  13. 方式 2:直接 API 调用(无依赖,适合轻量场景)
  14. 发送 POST 请求
  15. 输出结果
  16. 方式 3:使用 OpenRouter Python SDK(Beta 版)
  17. 安装 SDK pip install openrouter
  18. 初始化客户端
  19. 运行
  20. 四、7 个实战案例,覆盖主流应用场景
  21. 案例 1:免费模型调用(零成本学习)
  22. 免费模型列表(部分):
  23. - deepseek/deepseek-r1-distill-llama-70b:free
  24. - mistralai/mistral-7b-instruct:free
  25. - google/gemma-7b-it:free
  26. - tencent/tencenthunyuan-pro-7b:free
  27. 案例 2:流式响应(实时显示结果)
  28. 案例 3:多轮对话(上下文记忆)
  29. 案例 4:代码生成与解释
  30. 案例 5:模型对比测试(一行代码切换模型)
  31. 案例 6:参数调优(控制输出风格)
  32. 案例 7:工具调用(连接外部 API)
  33. 五、常见问题与最佳实践
  34. 常见问题
  35. 最佳实践
  36. 六、进阶方向
  37. 总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Whisper 语音识别模型下载指南:版本选择与格式说明
  • GitHub 全界面中文化实战:Tampermonkey 插件配置详解
  • 现代 AI 技术前沿:TensorFlow、LangChain、LLaMA、Qwen 与 GPT 应用对比
  • 前端国际化最佳实践与本地化方案
  • Web 应用开发全栈实践:从前端到后端
  • GTC Taipei 2025 医疗领域前瞻:AI 代理与医疗生态变革
  • C++26 std::future 异常机制三大核心改进详解
  • 网络安全入门指南:零基础自学路径与核心技能
  • IoT DevOps 实战:基于设备影子的万级电梯网关集群自动化运维架构
  • Coze工作流实战:小红书爆款视频自动入库飞书多维表
  • SQL Server 2016 及 Management Studio 安装指南
  • 2025 电商客服机器人实测:乐言、店小蜜等五家主流品牌对比
  • 网络安全工程师职业定义、核心技能与主流认证指南
  • Python 暴力求解跳房子游戏算法建模与实现
  • ClawX:基于 OpenClaw 的桌面版 AI 助手部署指南
  • OpenClaw 本地部署接入飞书机器人安装指南
  • Whisper-turbo 速度实测:云端 GPU 7 倍加速
  • NewBie-image-Exp0.1 动漫 AI 绘画镜像快速入门
  • 夸克网盘技术资源精选:书籍、软件与 AI 资料汇总
  • C++ 实现自定义 String 类:告别 C 字符串陷阱

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online