OpenRouter开源的AI大模型路由工具,统一API调用
简介
OpenRouter是一个开源的路由工具,它可以绕过限制调用GPT、Claude等国外模型。以下是对它的详细介绍:
一、主要功能
OpenRouter专注于将用户请求智能路由到不同的AI模型,并提供统一的访问接口。它就像一个“路由器”,能够根据预设规则或用户自定义策略,将用户输入的请求自动分配至最合适的AI模型。这大大简化了与AI模型交互的过程,降低了开发者的集成复杂度。
二、技术特点
- 多模型支持:OpenRouter集成了来自多个提供商的模型,包括知名的闭源模型(如OpenAI的GPT-4、Anthropic的Claude等)和开源模型(如LLaMA、Mistral等)。目前支持数十种模型,未来计划扩展到数百种。
- 统一API:OpenRouter的API与OpenAI的聊天API高度兼容,用户只需更换API密钥和基础URL,就能轻松切换模型,无需修改代码。
- 价格与性能优化:OpenRouter通过比较不同模型的定价和性能,帮助用户找到性价比最高的选项。它还会根据用户的需求(如低成本或高吞吐量)自动路由请求到最佳提供商。
- 自动路由与回退机制:通过“Auto Router”功能,OpenRouter会根据输入提示选择最适合的模型。如果某个模型或提供商不可用,它会自动尝试其他替代模型,确保服务不中断。
官网:OpenRouter
在OpenRouter,可以看到模型的排名,也可以看到某个模型的使用软件排名,比如DeepSeek-V3模型的使用软件排名为:

安装和设置
安装依赖库
只需要安装openai库即可
pip install openai
如果不是代码调用,而是直接用AI工具调用 OpenRouter ,那么openai也可以省略。
获取OpenRouter秘钥
登录openrouter官网,然后创建秘钥key,记下它,以备使用。
查找模型
在这里查找模型:Models | OpenRouter
决定使用DeepSeek: DeepSeek V3 Base (free) 这个模型。当然还可以使用DeepSeek: DeepSeek V3 0324 (free) 这个模型。
API接入
测试
可以使用如下语句测试API调用:
from openai import OpenAIclient = OpenAI(base_url="https://openrouter.ai/api/v1",api_key="<OPENROUTER_API_KEY>",
)completion = client.chat.completions.create(extra_headers={"HTTP-Referer": "<YOUR_SITE_URL>", # Optional. Site URL for rankings on openrouter.ai."X-Title": "<YOUR_SITE_NAME>", # Optional. Site title for rankings on openrouter.ai.},extra_body={},model="deepseek/deepseek-v3-base:free",messages=[{"role": "user","content": "What is the meaning of life?"}]
)
print(completion.choices[0].message.content)
把自己的key填进去就行了
from openai import OpenAIclient = OpenAI(base_url="https://openrouter.ai/api/v1",api_key="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",
)completion = client.chat.completions.create(extra_headers={"HTTP-Referer": "airoot.org", # Optional. Site URL for rankings on openrouter.ai."X-Title": "airoot", # Optional. Site title for rankings on openrouter.ai.},extra_body={},model="deepseek/deepseek-v3-base:free",messages=[{"role": "user","content": "What is the meaning of life?"}]
)
print(completion.choices[0].message.content)
但是在实际执行后就卡住了,不明白什么原因(后来就好了...不知道是不是时间和网络问题)
换用CURL进行测试,有时候会有空白的回车输出。不知道是不是openai版本不对导致的? (弄明白了,就是刚开始会打好几个回车符....)
curl https://openrouter.ai/api/v1/chat/completions \-H "Content-Type: application/json" \-H "Authorization: Bearer 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" \-d '{"model": "deepseek/deepseek-chat-v3-0324:free","messages": [{"role": "user","content": "What is the meaning of life?"}]}'
也可用python直接调用requests进行了测试:
import requests
import jsonresponse = requests.post(url="https://openrouter.ai/api/v1/chat/completions",headers={"Authorization": "Bearer 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","Content-Type": "application/json","HTTP-Referer": "airoot.org", # Optional. Site URL for rankings on openrouter.ai."X-Title": "airoot", # Optional. Site title for rankings on openrouter.ai.},data=json.dumps({"model": "deepseek/deepseek-chat-v3-0324:free","messages": [{"role": "user","content": "What is the meaning of life?"}],})
)
print(response.content)
测试通过,输出:
print(response.content)
b'\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n{"id":"gen-1743689975-7NxUuvZaolfKKM9NJaz7","provider":"Chutes","model":"deepseek/deepseek-chat-v3-0324","object":"chat.completion","created":1743689975,"choices":[{"logprobs":null,"finish_reason":"stop","native_finish_reason":"stop","index":0,"message":{"role":"assistant","content":"The meaning of life is one of the most profound and debated questions in philosophy, religion, science, and personal reflection. Different perspectives offer various answers:\\n\\n### 1. **Philosophical Perspectives** \\n - **Existentialism (e.g., Sartre, Camus):** Life has no inherent meaning\xe2\x80\x94it\xe2\x80\x99s up to each individual to create their own purpose through choices and actions. \\n - **Absurdism (Camus):** The search for meaning in a meaningless universe is absurd, but we must embrace life passionately anyway. \\n - **Stoicism:** Meaning comes from living virtuously, accepting what we can\xe2\x80\x99t control, and focusing on inner peace. \\n\\n### 2. **Religious/Spiritual Views** \\n - **Theistic religions (Christianity, Islam, Hinduism, etc.):** Life\xe2\x80\x99s purpose is tied to divine will\xe2\x80\x94serving God, achieving enlightenment, or fulfilling a spiritual destiny. \\n - **Buddhism:** Meaning arises from ending suffering (dukkha) through enlightenment (nirvana) and compassion. \\n\\n### 3. **Scientific Perspectives** \\n - **Evolutionary Biology:** Life\xe2\x80\x99s \\"purpose\\" is survival and reproduction, but humans seek deeper significance beyond biology. \\n - **Cosmology:** In a vast, indifferent universe, meaning is a human construct\xe2\x80\x94we give it value through curiosity, connection, and exploration. \\n\\n### 4. **Personal Meaning** \\n Many find purpose in relationships, creativity, helping others, personal growth, or leaving a legacy. Viktor Frankl (Holocaust survivor and psychiatrist) argued that meaning comes from suffering with dignity, love, and purposeful work. \\n\\n### **A Practical Answer?** \\nThere\xe2\x80\x99s no single \\"correct\\" answer\xe2\x80\x94it\xe2\x80\x99s a personal journey. You might explore: \\n- What brings you joy or fulfillment? \\n- How do you impact others? \\n- What legacy do you want to leave? \\n\\nWould you like insights from a specific tradition or thinker?","refusal":null}}],"usage":{"prompt_tokens":10,"completion_tokens":417,"total_tokens":427}}'
在Cherry Studio中配置使用
打开Cherry Studio,点击设置,在模型平台里找到OpenRouter,写入API秘钥,在“管理”里面加入DeepSeek-v3模型,点击“检查”, 测试通过。
在“助手”也就是chat页面,进行对话:

总结
OpenRouter可以很好的绕过封锁!
另外OpenRouter还提供一些免费调用AI大模型调用,比如DeepSeek-v3就可以免费调用,真是太棒了!
另外根据调试记录,有如下3点需要注意:
1 秘钥key注意写对
2 有的模型会输出一些回车,导致误以为模型有问题
3 有时候会很慢或卡住,但换个时间就好了。
调试
测试curl调用报错{"error":{"message":"Input required: specify \"prompt\" or \"messages\"","code":400}
{"error":{"message":"Input required: specify \"prompt\" or \"messages\"","code":400},"user_id":"user_2v6XcG4tOfqFTUs1itXIJCI4Mic"}
不明白哪里错了,反正最后就没报错了。
报错:"No auth credentials found"
key写错了,改正即可
使用openai和curl测试没有得到期望的输出
有时候可以看到光标在往下走,但是看不到输出信息。不明白为什么。
换用DeepSeek: DeepSeek V3 0324 (free)模型就好了。
在换回deepseek/deepseek-v3-base:free 这个模型,也测试通过了。
需要注意的3点:
1 秘钥key注意写对
2 有的模型会输出一些回车,导致误以为模型有问题
3 有时候会很慢或卡住,但换个时间就好了。
相关文章:
OpenRouter开源的AI大模型路由工具,统一API调用
简介 OpenRouter是一个开源的路由工具,它可以绕过限制调用GPT、Claude等国外模型。以下是对它的详细介绍: 一、主要功能 OpenRouter专注于将用户请求智能路由到不同的AI模型,并提供统一的访问接口。它就像一个“路由器”,能…...
qt tcpsocket编程遇到的并发问题
1. 单个socket中接收消息的方法要使用局部变量而非全局,避免消息频发时产生脏数据 优化后的关键代码 recieveInfo() 方法通过返回内部处理后的 msg 进行传递if (data.indexOf("0103") -1) { 这里增加了判断, 对数据(非注册和心跳࿰…...
zabbix监控网站(nginx、redis、mysql)
目录 前提准备: zabbix-server主机配置: 1. 安装数据库 nginx主机配置: 1. 安装nginx redis主机配置: 1. 安装redis mysql主机配置: 1. 安装数据库 zabbix-server: 1. 安装zabbix 2. 编辑配置文…...
蓝桥杯冲刺
例题1:握手问题 方法1:数学推理(简单粗暴) 方法2:用代码实现方法1 #include<iostream> using namespace std; int main() {int result 0;for (int i 1; i < 49; i){for (int j i 1; j < 50; j){//第i个人与第j个…...
文心一言与 DeepSeek 的竞争分析:技术先发优势为何未能转化为市场主导地位?
目录 引言 第一部分:技术路径的差异——算法创新与工程优化的博弈 1.1 文心一言的技术积累与局限性 1.1.1 早期技术优势 1.1.2 技术瓶颈与局限性 1.2 DeepSeek 的技术突破 1.2.1 算法革命与工程创新 1.2.2 工程成本与效率优势 第二部分:生态策略…...
Spring Security(maven项目) 3.1.0
前言: 通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往…...
合并两个有序数组(Java实现)
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组…...
Tree - Shaking
Vue 3 的 Tree - Shaking 技术详解 Tree - Shaking 是一种在打包时移除未使用代码的优化技术,在 Vue 3 中,Tree - Shaking 发挥了重要作用,有效减少了打包后的代码体积,提高了应用的加载性能。以下是对 Vue 3 中 Tree - Shaking …...
C# 从代码创建选型卡+表格
private int tabNum 1; private int sensorNum 5; private void InitializeUI() {// 创建右侧容器面板Panel rightPanel new Panel{Dock DockStyle.Right,Width 300,BackColor SystemColors.ControlDark,Parent this};// 根据防区数量创建内容if (tabNum &g…...
OpenCV 从入门到精通(day_02)
1. 边缘填充 为什么要填充边缘呢?我们以下图为例: 可以看到,左图在逆时针旋转45度之后原图的四个顶点在右图中已经看不到了,同时,右图的四个顶点区域其实是什么都没有的,因此我们需要对空出来的区域进行一个…...
VTK的两种显示刷新方式
在类中先声明vtk的显示对象 vtkRenderer out_render; vtkVertexGlyphFilter glyphFilter; vtkPolyDataMapper mapper; // 新建制图器 vtkActor actor; // 新建角色 然后在init中先初始化一下: out_rend…...
Ceph异地数据同步之-RBD异地同步复制(上)
#作者:闫乾苓 文章目录 前言基于快照的模式(Snapshot-based Mode)工作原理单向同步配置步骤单向同步复制测试双向同步配置步骤双向同步复制测试 前言 Ceph的RBD(RADOS Block Device)支持在两个Ceph集群之间进行异步镜…...
【C++】STL库_stack_queue 的模拟实现
栈(Stack)、队列(Queue)是C STL中的经典容器适配器 容器适配器特性 不是独立容器,依赖底层容器(deque/vector/list)通过限制基础容器接口实现特定访问模式不支持迭代器操作(无法遍历…...
前端对接下载文件接口、对接dart app
嵌套在dart app里面的前端项目 1.前端调下载接口 ->后端返回 application/pdf格式的文件 ->前端将pdf处理为blob ->blob转base64 ->调用dart app的 sdk saveFile ->保存成功 async download() {try {// 调用封装的 downloadEContract 方法获取 Blob 数据const …...
一周学会Pandas2 Python数据处理与分析-编写Pandas2 HelloWord项目
锋哥原创的Pandas2 Python数据处理与分析 视频教程: 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 我们首先准备一个excel文件,用来演示pandas操作数据集(数据的集合)。excel文件属于数据集的一种…...
【易订货-注册/登录安全分析报告】
前言 由于网站注册入口容易被机器执行自动化程序攻击,存在如下风险: 暴力破解密码,造成用户信息泄露,不符合国家等级保护的要求。短信盗刷带来的拒绝服务风险 ,造成用户无法登陆、注册,大量收到垃圾短信的…...
AI赋能股票:流通股本与总股本:定义、区别及投资意义解析
一、基本定义 总股本(Total Shares Outstanding) 指一家公司已发行的所有股票数量,包括流通股和非流通股(如限售股、员工持股计划股票等)。总股本反映公司的整体股权结构,是计算市值(总股本 股…...
如何在Windows上找到Python安装路径?两种方法快速定位
原文:如何在Windows上找到Python安装路径?两种方法快速定位 | w3cschool笔记 在 Windows 系统上找到 Python 的安装路径对于设置环境变量或排查问题非常重要。本文将介绍两种方法,帮助你找到 Python 的安装路径:一种是通过命令提…...
第五课:高清修复和放大算法
文章目录 Part.01 高清修复(Hi-Res Fix)Part.02 SD放大(SD Upscale)Part.03 附加功能放大Part.01 高清修复(Hi-Res Fix) 文生图中的高清修复/高分辨率修复/超分辨率修复先低分辨率抽卡,再高分辨率修复。不能突破显存限制放大重绘幅度安全范围是0.3-0.5,如果想让AI更有想象力0…...
lvgl避坑记录
一、log调试 #if LV_USE_LOG && LV_LOG_LEVEL > LV_LOG_LEVEL_INFOswitch(src_type) {case LV_IMG_SRC_FILE:LV_LOG_TRACE("lv_img_set_src: LV_IMG_SRC_FILE type found");break;case LV_IMG_SRC_VARIABLE:LV_LOG_TRACE("lv_img_set_src: LV_IMG_S…...
Java 8 的流(Stream API)简介
Java 8 引入的 Stream API 是一个强大的工具,用于处理集合(如 List、Set)中的元素。它支持各种操作,包括过滤、排序、映射等,并且能够以声明式的方式表达复杂的查询操作。流操作可以是中间操作(返回流以便进…...
液态神经网络技术指南
一、引言 1.从传统神经网络到液态神经网络 神经网络作为深度学习的核心工具,在图像识别、自然语言处理、推荐系统等领域取得了巨大成功。尤其是卷积神经网络(CNN)、循环神经网络(RNN)、长短期记忆网络(LS…...
element-plus中,表单校验的使用
目录 一.案例1:给下面的表单添加校验 1.目的要求 2.步骤 ①给需要校验的el-form-item项,添加prop属性 ②定义一个表单校验对象,里面存放了每一个prop的检验规则 ③给el-form组件,添加:rules属性 ④给el-form组件࿰…...
PyTorch复现线性模型
【前言】 本专题为PyTorch专栏。从本专题开始,我将通过使用PyTorch编写基础神经网络,带领大家学习PyTorch。并顺便带领大家复习以下深度学习的知识。希望大家通过本专栏学习,更进一步了解人更智能这个领域。 材料来源:2.线性模型_…...
Kafka+Zookeeper从docker部署到spring boot使用完整教程
文章目录 一、Kafka1.Kafka核心介绍:核心架构核心特性典型应用 2.Kafka对 ZooKeeper 的依赖:3.去 ZooKeeper 的演进之路:注:(本文采用ZooKeeper3.8 Kafka2.8.1) 二、Zookeeper1.核心架构与特性2.典型…...
RK3568驱动 SPI主/从 配置
一、SPI 控制器基础配置(先说主的配置,后面说从的配置) RK3568 集成高性能 SPI 控制器,支持主从双模式,最高传输速率 50MHz。设备树配置文件路径通常为K3568/rk356x_linux_release_v1.3.1_20221120/kernel/arch/arm64/boot/dts/rockchip。 …...
【全队项目】智能学术海报生成系统PosterGenius--风格个性化调整
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏🏀大模型实战训练营 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 1.前言 PosterGenius致力于开发一套依托DeepSeek…...
【系统移植】(六)第三方驱动移植
【系统移植】(六)第三方驱动移植 文章目录 【系统移植】(六)第三方驱动移植1.编译驱动进内核方法一:编译makefile方法二:编译kconfig方法三:编译成模块 2.字符设备框架 编译驱动进内核a. 选择驱…...
STM32实现一个简单电灯
新建工程的步骤 建立工程文件夹,Keil中新建工程,选择型号工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹工程里对应建立Start、Library、User等同名称的分组,然后将文件夹内的文件添加到工程分组…...
【shiro】shiro反序列化漏洞综合利用工具v2.2(下载、安装、使用)
1 工具下载 shiro反序列化漏洞综合利用工具v2.2下载: 链接:https://pan.baidu.com/s/1kvQEMrMP-PZ4K1eGwAP0_Q?pwdzbgp 提取码:zbgp其他工具下载: 除了该工具之外,github上还有其他大佬贡献的各种工具,有…...
