在 Vercel AI SDK 里调用 TeamoRouter
Vercel AI SDK(ai 包)通过它的 OpenAI 兼容 provider 接 TeamoRouter:把 Base URL 换成 TeamoRouter、填 TeamoRouter 的 API Key、模型 ID 用我们目录里的就行,generateText、streamText 和工具调用的代码都不用改。
新账号余额为 0,先充值再调用。 第一次请求前先充值,$5 起。如果请求返回 402(OpenAI 格式为 400)、提示「钱包余额不足」,说明余额为 0,不是 Base URL 或 Key 配错了,充值后重试即可。
1. 安装和配置
在 TeamoRouter 控制台 创建 API Key,放进环境变量:
npm install ai @ai-sdk/openai-compatible zod
export TEAMOROUTER_API_KEY=sk-teamo-...
provider 建一次,到处复用:
// teamorouter.ts
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
export const teamorouter = createOpenAICompatible({
name: 'teamorouter',
baseURL: 'https://api.teamorouter.cn/v1',
apiKey: process.env.TEAMOROUTER_API_KEY,
includeUsage: true, // 流式输出时也返回用量
});
| 配置项 | 填什么 |
|---|---|
| Base URL | https://api.teamorouter.cn/v1 |
| API Key | sk-teamo-...,以 Authorization: Bearer 发送 |
| 模型 ID | 我们目录里的 ID,不带 厂商/ 前缀,例如 deepseek-flash |
可用的模型 ID:
DeepSeek6
deepseek-flashdeepseek-flash-freedeepseek-v4-flash-vision-expdeepseek-v4-prodeepseek-v4-flashdeepseek-v4-flash-free
GLM4
glm-5.3-flashglm-5.3-flash-freeglm-5.3glm-5.2
2. generateText 和 streamText
import { generateText, streamText } from 'ai';
import { teamorouter } from './teamorouter';
const { text, usage } = await generateText({
model: teamorouter('deepseek-flash'),
prompt: '用一句话解释 API 网关是做什么的。',
});
console.log(text, usage);
const result = streamText({
model: teamorouter('deepseek-flash'),
prompt: '写一首关于延迟的俳句。',
});
for await (const chunk of result.textStream) {
process.stdout.write(chunk);
}
3. 工具调用
import { generateText, tool, stepCountIs } from 'ai';
import { z } from 'zod';
import { teamorouter } from './teamorouter';
const { text } = await generateText({
model: teamorouter('deepseek-flash'),
tools: {
getWeather: tool({
description: '查询某个城市当前的气温',
inputSchema: z.object({ city: z.string() }),
execute: async ({ city }) => ({ city, temperatureC: 22 }),
}),
},
stopWhen: stepCountIs(3), // 先让模型调用工具,再给出回答
prompt: '上海现在天气怎么样?',
});
console.log(text);
可能遇到的报错
| 状态码 | 含义 | 怎么办 |
|---|---|---|
| 401 | 没带 API Key 或 Key 不对 | 检查 TEAMOROUTER_API_KEY,Key 应以 sk-teamo- 开头 |
| 402(OpenAI 格式为 400),提示「钱包余额不足」 | 余额为 0 | 充值后重试 |
400 model_not_available |
模型 ID 不在目录里,或带了 厂商/ 前缀 |
用上面列表里的 ID,去掉前缀 |
原始 HTTP 接口、流式和缓存的细节见 API 接入指南。