Vercel AI SDK 接入 APIBox:用一个 Provider 调用 Claude、GPT、Gemini、DeepSeek
本文讲解如何通过 OpenAI 兼容 Provider 在 Vercel AI SDK 中接入 APIBox,包含配置项、generateText、streamText、模型切换和常见错误排查。
在 Vercel AI SDK 中接入 APIBox,最短路径是使用 OpenAI 兼容 Provider,并把 baseURL 设置为 https://api.apibox.cc/v1。之后,generateText、streamText、工具调用和模型切换都可以继续使用 AI SDK 的标准模式,由 APIBox 统一路由到 Claude、GPT、Gemini、DeepSeek 等模型。
1. 需要填写的核心配置
| 配置项 | 填写内容 |
|---|---|
| Provider 包 | @ai-sdk/openai-compatible |
| API Key | 你的 APIBox Key |
| Base URL | https://api.apibox.cc/v1 |
| 模型名 | 使用 APIBox 模型名,例如 gpt-5、claude-sonnet-4-6、gemini-2.5-pro、deepseek-r1 |
| 推荐首测 | 用 generateText 跑一个短 prompt |
这个配置适合这些需求:
- 把 Vercel AI SDK 连接到 OpenAI 兼容供应商
- 用一个
baseURL管理多个模型家族 - 在同一套 AI SDK 代码里调用 Claude、GPT、Gemini 或 DeepSeek
- 把模型切换留在配置层,而不是重写 Route
- 在 Next.js 和 Node.js 服务里复用同一种 Provider 模式
2. 安装依赖
npm install ai @ai-sdk/openai-compatible添加环境变量:
APIBOX_API_KEY=your_apibox_key不要把这个 Key 暴露在前端代码里。模型调用应放在服务端 Route、Server Action、后台任务或后端服务中。
3. 创建共享的 APIBox Provider
建议单独建一个 provider 文件,避免在业务代码里反复写 baseURL 和 Key 处理逻辑。
// lib/apibox.ts
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
export const apibox = createOpenAICompatible({
name: 'apibox',
apiKey: process.env.APIBOX_API_KEY,
baseURL: 'https://api.apibox.cc/v1',
});之后所有模型调用都复用这个 provider。
4. 使用 APIBox 生成文本
// app/api/summarize/route.ts
import { generateText } from 'ai';
import { apibox } from '@/lib/apibox';
export async function POST(req: Request) {
const { text } = await req.json();
const result = await generateText({
model: apibox('gpt-5'),
system: '你擅长清晰、简洁地总结技术内容。',
prompt: `请总结以下文本:\n\n${text}`,
});
return Response.json({ summary: result.text });
}切换模型时,Provider 不变:
model: apibox('claude-sonnet-4-6')
model: apibox('gemini-2.5-pro')
model: apibox('deepseek-r1')5. 为聊天界面使用流式输出
聊天界面通常更适合流式输出,因为用户可以更早看到结果。
// app/api/chat/route.ts
import { streamText } from 'ai';
import { apibox } from '@/lib/apibox';
export async function POST(req: Request) {
const { messages } = await req.json();
const result = streamText({
model: apibox('claude-sonnet-4-6'),
system: '你是一个面向软件开发者的精确助手。',
messages,
});
return result.toTextStreamResponse({
headers: {
'Content-Type': 'text/event-stream',
},
});
}如果这是生产聊天应用,公开前要补上请求校验、登录鉴权、限流和日志。
6. 在 Vercel AI SDK 应用里如何选模型
| 工作负载 | 推荐首选方向 | 原因 |
|---|---|---|
| 编程助手 | Claude 或 GPT 编程模型 | 更擅长代码、diff 和复杂推理 |
| 高频摘要 | 成本更低的 GPT、Gemini 或 DeepSeek 模型 | 成本比极致文风更重要 |
| 带工具的 Agent | 强推理模型 | 工具选择和参数质量很关键 |
| 搜索问答生成 | 快速且指令遵循好的模型 | 延迟和答案精炼度更重要 |
| 内部自动化 | 通过评测的最低成本模型 | 批处理任务应该靠评测选型 |
重点不是某个模型永远最好,而是 APIBox 让 AI SDK 应用在集成不变的情况下测试和更换模型。
相关阅读:
7. 常见错误排查
401 Unauthorized
检查:
APIBOX_API_KEY是否存在于运行时环境- Key 是否带了多余空格或引号
- 修改
.env.local后是否重启服务 - 是否误把 Key 放到了浏览器端代码
404 model not found
检查 APIBox 模型名。不要假设官方供应商模型 ID 与网关模型 ID 一定完全一致。
可参考:
请求卡住或流式输出很慢
检查:
- 当前模型是否是推理模型
- 输出长度是否过长
- 托管平台超时时间
- Route 是否运行在预期 runtime
流式 Route 应直接返回 stream,不要先把完整答案缓存在内存里。
工具调用在不同模型上表现不同
OpenAI 兼容不代表模型行为完全一致。一个 tool schema 在某个模型上可用,不代表在所有模型上都稳定。关键流程要用实际准备上线的模型逐个测试。
工具设计可以继续看:
8. 生产上线检查清单
上线前确认:
- API Key 只存在服务端
- 模型名通过环境变量或小型 allowlist 管理
- 请求体大小有限制
- 用户级限流已配置
- Prompt 有版本记录
- 错误日志包含模型名和延迟
- 成本能按路由或功能统计
- 备用模型策略明确
9. 推荐配置
Vercel AI SDK 接入 APIBox 的方法是:安装 ai 和 @ai-sdk/openai-compatible,创建一个 baseURL: "https://api.apibox.cc/v1" 的 Provider,传入 APIBox Key,然后用 generateText 或 streamText 调用模型。这样 Next.js 或 Node.js 应用就能用一套 OpenAI 兼容接口访问 Claude、GPT、Gemini、DeepSeek 等模型。
先 注册 APIBox 创建 API Key,再把上面的 Provider 配置放进你的 Vercel AI SDK 项目。
立即体验,注册后即可使用 30+ 模型,一个 Key 全搞定
免费注册 →