ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

掌控成本与延迟:OpenRouter ai-sdk-provider Provider路由、BYOK与ZDR完全指南

掌控成本与延迟:OpenRouter ai-sdk-provider Provider路由、BYOK与ZDR完全指南

【免费下载链接】ai-sdk-provider

The OpenRouter provider for the Vercel AI SDK contains support for hundreds of models through the OpenRouter chat and completion APIs.

项目地址:https://gitcode.com/gh_mirrors/ai/ai-sdk-provider
点击查看免费下载

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.zdrtrue/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多供应商备份

快速回顾:

  1. Provider 路由用order/only/ignore/sort/max_price圈定并排序上游供应商,直接决定成本与延迟;
  2. BYOK通过api_keys注入你自己的上游密钥,账单中可用isByok与upstreamInferenceCost精确核对;
  3. 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.

项目地址:https://gitcode.com/gh_mirrors/ai/ai-sdk-provider
点击查看免费下载
上一篇:H1st Graph完全指南:构建可解释的AI工作流
下一篇:Harper性能对比研究:科学方法评估语法检查工具

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进