在 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,放进环境变量:

bash
npm install ai @ai-sdk/openai-compatible zod
export TEAMOROUTER_API_KEY=sk-teamo-...

provider 建一次,到处复用:

ts
// 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:

可用模型 ID10 个模型

DeepSeekDeepSeek6

  • deepseek-flash
  • deepseek-flash-free
  • deepseek-v4-flash-vision-exp
  • deepseek-v4-pro
  • deepseek-v4-flash
  • deepseek-v4-flash-free

ZhipuGLM4

  • glm-5.3-flash
  • glm-5.3-flash-free
  • glm-5.3
  • glm-5.2

2. generateText 和 streamText

ts
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. 工具调用

ts
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 接入指南。

准备好了?三步即可开始登录控制台 · 购买额度 · 创建 API Key
DiscordGet community help instantly