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

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

OpenRouter入门教程:一个API玩转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 

基础案例:调用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"# 可选,应用名称})asyncdefmain():# 发送请求 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")asyncdefmain():# 发送请求 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:freeasyncdeffree_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回复:

asyncdefstreaming_demo():print("AI正在思考,将实时显示结果:") stream =await client.chat.completions.create( model="openai/gpt-3.5-turbo", messages=[{"role":"user","content":"解释什么是流式响应?"}], stream=True# 启用流式)asyncfor chunk in stream:if chunk.choices[0].delta.content:print(chunk.choices[0].delta.content, end="", flush=True) asyncio.run(streaming_demo())

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

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

asyncdefmulti_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代码:

asyncdefcode_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:模型对比测试(一行代码切换模型)

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

asyncdefmodel_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回复的长度、随机性和格式:

asyncdefparameter_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)实现工具调用:

asyncdeftool_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模型的无限可能吧!

Read more

英伟达开源DreamDojo:4.4万小时“梦境”,破解机器人数据鸿沟

英伟达开源DreamDojo:4.4万小时“梦境”,破解机器人数据鸿沟

摘要:本文深度解析英伟达开源的DreamDojo世界模型,详解DreamDojo的核心定位与开源战略,拆解44711小时超大规模数据集的优势、连续潜在动作的技术创新,剖析其实时遥操作、策略评估等应用场景,对比其与1XWM、Genie 3的技术路线差异,解读其与扬·勒丘恩物理AI理念的契合点,探讨DreamDojo对破解机器人物理鸿沟、推动物理AI发展的核心作用,为技术从业者、行业观察者、投资者提供最专业、最全面的深度解读,助力了解2026年世界模型与物理AI领域的最新技术革新与赛道趋势。 一、行业痛点:数据鸿沟,困住人形机器人的核心瓶颈 长期以来,“数据短缺+数据低效”是制约机器人行业发展的致命痛点——机器人想要掌握一项技能,需要海量真实场景下的动作数据进行训练,但真实数据的采集的成本极高、周期极长,且场景覆盖有限;与此同时,传统机器人数据集规模偏小、多样性不足,难以支撑通用型机器人的训练需求,形成了难以逾越的“数据鸿沟”。 更关键的是,多数企业陷入了“重指令、轻物理”的误区:大量布局视觉-语言-动作(VLA)模型,过度依赖文本推理驱动机器人动作,却忽略了直觉物理规律的核心价值。

Bidili SDXL Generator 5分钟快速部署:小白也能玩转AI绘画

Bidili SDXL Generator 5分钟快速部署:小白也能玩转AI绘画 你是不是也想过自己动手生成一张独一无二的AI画作,却被复杂的模型部署、参数配置劝退?今天,我要分享一个好消息:现在,你只需要5分钟,就能在自己的电脑上搭建一个功能强大的AI绘画工具——Bidili SDXL Generator。 这个工具基于目前最先进的Stable Diffusion XL 1.0模型,并集成了Bidili团队精心训练的LoRA风格权重。更重要的是,它专门针对SDXL架构做了显存优化,还提供了傻瓜式的可视化界面。无论你是完全没有AI基础的小白,还是想快速体验SDXL强大能力的开发者,这篇文章都能帮你轻松上手。 1. 为什么选择Bidili SDXL Generator? 在开始动手之前,我们先简单了解一下这个工具的核心价值。市面上AI绘画工具很多,但Bidili SDXL Generator有几个特别适合新手的优势。 1.1 开箱即用,告别复杂配置 传统的Stable Diffusion部署需要你懂Python环境、会安装各种依赖库、还要自己下载好几个G的模型文件。整个过程

【GitHub项目推荐--Video2Robot:从视频到机器人动作的端到端生成管道】⭐

简介 Video2Robot 是由AIM-Intelligence开发的开源项目,是一个端到端的管道系统,能够将视频或文本提示转换为机器人可执行的运动序列。在机器人技术、动画制作和虚拟现实快速发展的今天,如何让机器人执行自然、流畅的人类动作成为关键挑战。传统方法需要专业动画师手动设计动作,或通过复杂的运动捕捉系统,过程耗时耗力且成本高昂。Video2Robot应运而生,通过整合先进的视频生成、人体姿态提取和运动重定向技术,实现了从简单描述到机器人动作的自动化转换。 核心价值: * 自动化流程:将复杂的手动设计过程自动化,显著提高效率 * 自然动作生成:基于真实人类动作生成自然流畅的机器人运动 * 多模态输入:支持文本提示、现有视频、图像参考等多种输入方式 * 广泛兼容性:支持多种主流机器人平台,包括Unitree、Booster等 项目定位:Video2Robot填补了自然语言/视频到机器人动作转换的技术空白。与需要专业设备和复杂流程的传统运动捕捉系统不同,该项目通过软件管道实现了低成本、高效率的动作生成。项目特别注重易用性和可扩展性,通过模块化设计支持不同组件的替换和

开源:AI+无人机巡检系统项目调研

主流开源AI无人机巡检项目调研 本部分系统梳理了当前主流的开源无人机巡检相关项目,涵盖飞控系统、地面站软件、AI视觉识别、数据处理等多个技术栈,为商业化产品开发提供技术选型参考。 一、飞控与地面站开源项目 1.1 PX4 Autopilot 项目地址:github.com/PX4/PX4-Autopilot 开源协议:BSD 3-Clause 项目简介:由Dronecode基金会(Linux基金会旗下)维护的专业级开源自动驾驶仪软件,是全球最广泛使用的无人机飞控系统之一。支持多旋翼、固定翼、垂直起降等多种机型,广泛应用于工业无人机和科研领域。 核心能力:飞行控制、任务规划、传感器融合、MAVLink通信协议、硬件抽象层、模块化架构 1.2 ArduPilot 项目地址:github.com/ArduPilot/ardupilot 开源协议:GPLv3 项目简介:历史最悠久的开源自动驾驶仪项目,社区活跃度极高。