【免费下载链接】ai-sdk-provider
The OpenRouter provider for the Vercel AI SDK contains support for hundreds of models through the OpenRouter chat and completion APIs.
ai-sdk-provider 是 OpenRouter 官方为 Vercel AI SDK 打造的 Provider,一个密钥即可接入数百个大型语言模型。这篇文章面向新手,用通俗的语言带你掌握三大核心能力:Provider 路由(精确控制请求走哪些上游供应商)、BYOK 自带密钥(用自己的上游 API 密钥降低成本)和ZDR 零数据保留(满足合规与隐私要求),轻松掌控 AI 调用成本与延迟。
🎯 一文看懂:三个"旋钮"各解决什么问题
OpenRouter 像一个"AI 模型超市":同一个模型(比如openai/gpt-4o)可能由多个上游供应商同时提供。不同供应商的价格、速度、数据政策都不一样。ai-sdk-provider 把 OpenRouter 的路由控制能力完整暴露出来,你可以把三个旋钮理解为:
| 功能 | 一句话解释 | 解决的问题 |
|---|---|---|
| Provider 路由 | 指定请求走哪些供应商、按什么顺序和策略 | 稳定性、价格、延迟 |
| BYOK(Bring Your Own Key) | 使用你已有的上游供应商 API 密钥 | 降低每 token 成本 |
| ZDR(Zero Data Retention) | 只走不存储你提示词数据的端点 | 企业合规、隐私保护 |
🧭 Provider 路由:精确控制请求走哪条"通道"
路由偏好通过模型设置里的provider参数传递,完整定义见 src/types/openrouter-chat-settings.ts。
用 order、only、ignore 指定供应商范围
const model = openrouter('openai/gpt-4o', { provider: { order: ['anthropic', 'openai'], // 按此顺序尝试 allow_fallbacks: true, // 首选不可用时自动切换备用(默认开启) require_parameters: false, // 是否只走支持全部请求参数的供应商 // only: ['openai'], // 白名单:只用这些供应商 // ignore: ['groq'], // 黑名单:跳过这些供应商 }, });各参数小抄:
order:供应商 slug 列表,按顺序优先尝试,例如["anthropic", "openai"];only/ignore:白名单与黑名单,互斥搭配可精确圈定候选范围;allow_fallbacks:首选供应商宕机时是否自动降级到备用供应商,生产环境建议保持默认true;require_parameters:设为true后只走完整支持你请求中所有参数(如工具调用、温度)的供应商,避免"参数被静默忽略";quantizations:按量化等级过滤(如int8、fp16),完整选项见 src/types/openrouter-api-types.ts。
💡 路由能力不止于 Chat:Embedding、Reranking 等模型同样支持
order与sort,参考 src/types/openrouter-embedding-settings.ts。
用 sort 和 max_price 为价格、延迟"排序"和"封顶"
sort:支持'price'、'throughput'、'latency'三种策略,让 OpenRouter 自动按价格、吞吐量或延迟对候选供应商排序(类型定义见 src/types/openrouter-api-types.ts);max_price:为 prompt、completion、image、audio、request 分别设置单价上限,超出预算的供应商会被直接排除。
成本敏感团队的最快配置方式就是:sort: 'price'+max_price封顶,一次把"最贵供应商"挡在门外。
auto-router:让平台自动挑模型
配合openrouter/auto模型与auto-router插件,还可以用通配符限定自动路由可选择的模型范围(如anthropic/*、openai/*),插件配置见 src/types/openrouter-chat-settings.ts,端到端示例在 issue-392-auto-router-plugin.test.ts。
🔑 BYOK:自带密钥,成本立省一笔
BYOK(Bring Your Own Key,自带密钥):如果你已经在 OpenAI、Anthropic 等供应商处有 API 密钥(比如带企业折扣),可以直接在 OpenRouter 侧使用,请求仍然走 OpenRouter 网关统一路由,但推理费用由你的密钥承担,成本更透明、更低。
两种启用方式
方式一:在创建 Provider 时通过api_keys注入(参数定义见 src/provider.ts):
import { createOpenRouter } from '@openrouter/ai-sdk-provider'; const openrouter = createOpenRouter({ apiKey: 'sk-or-xxxx', // OpenRouter 密钥 api_keys: { openai: 'sk-xxxx' }, // 你的 OpenAI 密钥 });SDK 会把它序列化为请求头X-Provider-API-Keys发给 OpenRouter(实现见 src/provider.ts)。
方式二:在 OpenRouter 账户的 Integrations 设置页绑定上游密钥,之后无需改代码即可全局生效。
看清 BYOK 成本账单
开启用量统计(usage: { include: true })后,响应中会告诉你这次请求是不是走 BYOK、上游推理花了多少钱:
providerMetadata.openrouter.usage.isByok:本次请求是否使用 BYOK;providerMetadata.openrouter.usage.costDetails.upstreamInferenceCost:上游推理成本(透传成本);providerMetadata.openrouter.usage.cost:OpenRouter 侧扣费。
字段解析逻辑见 src/chat/index.ts 与 README.md。
⚠️ 一个容易踩的坑
在使用 AI SDK Workflow(持久化工作流)时,BYOK 的api_keys不会被持久化——恢复出来的模型在发起请求时会直接报错,防止"静默改用 OpenRouter 余额"。正确做法是在工作流步骤内部创建这类模型,详见 src/utils/workflow-serde.ts 和 README.md。
🛡️ ZDR 与 data_collection:零数据保留,合规无忧
ZDR(Zero Data Retention,零数据保留)指供应商端点不存储你的提示词和响应数据,是医疗、金融等合规敏感场景的硬性要求。
两个相关路由开关(定义见 src/types/openrouter-chat-settings.ts):
| 参数 | 取值 | 作用 |
|---|---|---|
provider.zdr | true/false | 只路由到"不保留提示词"的端点 |
provider.data_collection | 'deny'/'allow' | 是否允许可能存储数据(用于训练等)的供应商,枚举定义见 src/types/openrouter-api-types.ts |
典型合规配置:
const model = openrouter('openai/gpt-4o', { provider: { zdr: true, data_collection: 'deny', sort: 'latency', // ZDR 端点候选较少,按延迟排序保障体验 }, });💡 注意:开启
zdr: true会缩小候选供应商范围,建议搭配sort使用,并在上线前验证你使用的模型确实存在 ZDR 端点。
✅ 总结:三大旋钮组合速查表
| 你的场景 | 推荐组合 |
|---|---|
| 💰 成本敏感 | sort: 'price'+max_price封顶 |
| ⚡ 延迟敏感 | sort: 'latency'+order指定低延迟供应商 |
| 🏢 已有企业密钥 | BYOKapi_keys+usage.include核对账单 |
| 🔒 合规敏感 | zdr: true+data_collection: 'deny' |
| 🧩 高可用 | allow_fallbacks: true+order多供应商备份 |
快速回顾:
- Provider 路由用
order/only/ignore/sort/max_price圈定并排序上游供应商,直接决定成本与延迟; - BYOK通过
api_keys注入你自己的上游密钥,账单中可用isByok与upstreamInferenceCost精确核对; - ZDR一条
zdr: true让请求只走零数据保留端点,合规一步到位。
三者可以自由叠加,用几行配置就能把"模型超市"变成完全符合你预算与合规要求的专属通道。🚀
【免费下载链接】ai-sdk-provider
The OpenRouter provider for the Vercel AI SDK contains support for hundreds of models through the OpenRouter chat and completion APIs.
相关推荐
提示缓存省成本:OpenRouter ai-sdk-provider Anthropic Prompt Caching实战指南
提示缓存省成本:OpenRouter ai sdk provider Anthropic Prompt Caching实战指南 如果你在用 Vercel AI
RAG双引擎:OpenRouter ai-sdk-provider 文本嵌入与文档重排完整实战指南
RAG双引擎:OpenRouter ai sdk provider 文本嵌入与文档重排完整实战指南 构建 RAG(检索增强生成)系统需要两个核心引擎: 文本嵌入
OpenRouter ai-sdk-provider工具调用完全指南:Function Calling与并行工具调用实战
OpenRouter ai sdk provider工具调用完全指南:Function Calling与并行工具调用实战 ai sdk provider htt
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考