QVeris
多供应商设置

Vercel AI SDK 接入多个供应商:一个应用契约,多条调用路径Vercel AI SDK 多提供商

AI SDK 可以使用网关、专用或兼容供应商。集中管理供应商配置、显式表达能力,并对流、工具、错误与用量行为做契约测试。

发布日期:2026年3月24日 · QVeris团队制作

Financial market workflow supporting Vercel AI SDK, Multiple Providers: One App Contract, Multiple Paths Vercel AI SDK + Multiple Providers Vercel AI SDK 接入多个供应商:一个应用契约,多条调用路径 Vercel AI SDK 多提供商

速览

选择供应商形态

网关简化访问;专用适配器暴露原生控制。

集中注册表

让密钥、基础地址(Base URL)、别名与负责人远离 UI 代码。

验证运行时差异

工具、Object Output、流与供应商选项会变化。

只在一层负责故障切换

把路由与重试策略交给一个层。

Vercel AI SDK 接入多个供应商:网关还是直连

AI SDK 常见的接入方式有三种:直接使用 creator/model 字符串时,默认通过 Vercel AI Gateway;专用 Provider Package 负责直连并暴露供应商特定选项;createProviderRegistry() 则为应用建立中央注册表,以 providerId:modelId 形式引用模型。还可以用 Custom Provider 在这些适配器之上增加别名或预设模型配置。

选择时应看控制边界,而不是只比较代码长短。需要统一凭证、集中用量记录和供应商路由时,Gateway 更合适;依赖原生参数或独立商务关系的工作负载更适合专用 Package;如果两种方式必须共存,Registry 能避免在各个请求处理器中散落 Import 与模型字符串。

无论选择哪种形态,都应固定注册表与路由配置,将凭证保留在服务端,并在遥测中记录最终解析出的供应商、模型和 Adapter 版本。便于使用的别名不能掩盖数据路径、策略或功能支持发生了变化。

供应商设置选项

选项最适合选择前验证
AI 网关一次集成与跨支持模型的共享路由。验证网关选项、数据路径、能力与原生证据。
专用供应商原生 Package 与供应商特定控制。需要管理更多依赖、密钥与运营路径。
OpenAI 兼容复用兼容客户端形状。测试工具、Object Output、流、错误与用量语义。
Custom 供应商实现受控应用抽象。你负责一致性、维护与故障行为。

供应商注册表检查

上游密钥

按环境与供应商范围加载服务端密钥。

别名

把工作负载名称映射到版本化模型与能力集合。

流契约

一致处理文本、工具、结束、错误与用量事件。

证据

记录供应商、模型、路由、原生 ID 与用量。

测试每条供应商路径

只有应用层契约仍然成立时,供应商切换才算安全。应围绕产品实际使用的 AI SDK 能力构建 Fixture,例如文本生成、流式输出、结构化输出、Embedding 与工具调用,同时验证标准化事件以及应用所依赖的供应商特定元数据。

  • 在直连、Registry 和 Gateway 路径上运行同一组文本、Object、工具与流式 Fixture。
  • 注入超时、限流、流中断、无效结构化输出和异常工具参数。
  • 验证唯一重试负责人、共享截止时间,以及有界的供应商或模型故障切换顺序。
  • 比较首 Token 延迟、总延迟、Token 统计、成本归因与结束原因。
  • 灰度发布别名与路由选项,并保留旧 Registry 版本以便立即回滚。

在应用后设置供应商注册表

应用代码应通过 support-fast、analysis-structured 等工作负载别名调用稳定的 AI SDK 函数。服务端 Registry 再将别名解析为 Gateway 模型字符串、专用 Provider Model 或兼容 Adapter,并附上所需 Middleware 与选项。解析结果不能只有模型对象,还应包含策略快照与配置版本。

Provider 顺序、限制等 Gateway 路由选项应保存在版本化配置中。每次响应都应在 AI SDK 标准化事件之外,保留请求别名、解析模型、实际 Provider Endpoint、故障切换历史和供应商原生证据,从而区分应用回归、路由变化与供应商变化。

生产规则:绝不能让模型字符串或别名静默改变供应商、策略、功能契约或数据路径。

在 AI SDK 模型接口旁增加 QVeris

AI SDK 与 Gateway 处理模型推理,QVeris 则通过 Discover → Inspect → Call 提供外部 API、工具、服务与实时数据。两类职责必须清晰分开:更换语言模型不应自动授予新工具、替换 API 凭证,或绕过外部动作所需的审批。

双方可共享父 Trace、租户、截止时间和策略快照,以便还原完整工作流;但模型与能力的凭证、配额和重试预算应彼此独立。在把 QVeris 能力暴露为 AI SDK Tool 之前,应检查 Schema 与权限、验证返回证据,并判断模型故障切换后该动作是否可以安全重复。

创建显式 AI SDK 供应商注册表

AI SDK 的 OpenAI Compatible 包可创建拥有独立基础地址(Base URL)与密钥的命名供应商实例。应把这些实例保存在仅服务端注册表中,将产品工作负载映射到稳定别名,并禁止浏览器请求传入任意供应商 URL。

TypeScript 供应商注册表
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
import { generateText } from 'ai';

const gateway = createOpenAICompatible({
  name: 'qveris-gateway',
  apiKey: process.env.LLM_GATEWAY_API_KEY!,
  baseURL: process.env.LLM_GATEWAY_BASE_URL!,
  includeUsage: true,
});

const models = {
  fast: gateway(process.env.LLM_FAST_MODEL!),
  quality: gateway(process.env.LLM_QUALITY_MODEL!),
} as const;

const result = await generateText({ model: models.fast, prompt: 'Reply AI_SDK_OK' });
console.log(result.text, result.usage);
  • 只在服务端解析别名,并拒绝未知别名。
  • 针对每个准确模型契约测试工具、结构化输出、流式、Abort Signal 与用量。
  • 每个请求都记录注册表版本与最终模型。

实施参考已根据官方资料核验:AI SDK OpenAI-compatible provider。

FAQ

必须使用网关吗?

不必。AI SDK 也支持专用、兼容与 Custom 供应商。

所有供应商都支持每项功能吗?

不支持。验证当前模型与供应商能力矩阵。

故障切换应放哪里?

放在一个选定网关或应用层,不要两层同时负责。

官方资料与延伸阅读

Vercel AI SDK 接入多个供应商:一个应用契约,多条调用路径 Vercel AI SDK 多提供商 | QVeris Guides