Skypool Token
Token online
Sign up
DocsVercel AI SDK 接入

Vercel AI SDK 接入

使用 Vercel AI SDK 的 OpenAI Compatible provider 接入天池 Token。

Updated:

适用场景

Vercel AI SDK 是 TypeScript AI 应用工具集,常用于 Next.js、React、Vue、Svelte 和 Node.js 项目。它提供 OpenAI Compatible provider,可以把天池 Token 接入到 generateTextstreamText、工具调用和聊天接口中。

接入值如下:

配置项
package@ai-sdk/openai-compatible
baseURLhttps://a.skypool.xyz/v1
apiKeyConsumer API Key,例如 stc-...
model平台模型名,例如 gemma4:26b

安装依赖

Bash
pnpm add ai @ai-sdk/openai-compatible

npm:

Bash
npm install ai @ai-sdk/openai-compatible

配置环境变量

.env.local 中写入:

Bash
SKYPOOL_API_KEY=stc-...

不要把真实 API Key 提交到仓库。

非流式调用

TypeScript
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";import { generateText } from "ai"; const skypool = createOpenAICompatible({  name: "skypool",  baseURL: "https://a.skypool.xyz/v1",  apiKey: process.env.SKYPOOL_API_KEY,}); const { text, usage, finishReason } = await generateText({  model: skypool.chatModel("gemma4:26b"),  prompt: "请用一句话说明 Vercel AI SDK 已经接入天池 Token。",  maxOutputTokens: 128,}); console.log(text);console.log(usage);console.log(finishReason);

如果你的 AI SDK 版本支持直接调用 provider,也可以把模型写成 skypool("gemma4:26b")。为减少版本差异,本文示例使用显式的 chatModel

流式调用

TypeScript
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";import { streamText } from "ai"; const skypool = createOpenAICompatible({  name: "skypool",  baseURL: "https://a.skypool.xyz/v1",  apiKey: process.env.SKYPOOL_API_KEY,}); const result = streamText({  model: skypool.chatModel("gemma4:26b"),  prompt: "请分三点介绍天池 Token。",  maxOutputTokens: 512,}); for await (const textPart of result.textStream) {  process.stdout.write(textPart);}

Next.js Route Handler 示例

TypeScript
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";import { streamText } from "ai"; const skypool = createOpenAICompatible({  name: "skypool",  baseURL: "https://a.skypool.xyz/v1",  apiKey: process.env.SKYPOOL_API_KEY,}); export async function POST(request: Request) {  const { messages } = await request.json();   const result = streamText({    model: skypool.chatModel("gemma4:26b"),    messages,    maxOutputTokens: 1024,  });   return result.toUIMessageStreamResponse();}

工具调用建议

Vercel AI SDK 会把工具定义转换为模型调用参数。使用天池 Token 时,建议先用支持工具调用的模型验证一个最小工具,再接入复杂工作流。

如果遇到结构化输出或工具调用参数不兼容,先确认:

  • 目标模型是否支持工具调用
  • 请求是否通过 https://a.skypool.xyz/v1/chat/completions
  • 是否发送了模型不支持的 provider 专属参数

先用 curl 验证

Bash
curl -X POST "https://a.skypool.xyz/v1/chat/completions" \  -H "Authorization: Bearer <consumer_api_key>" \  -H "Content-Type: application/json" \  --data-raw '{    "model": "gemma4:26b",    "messages": [      {        "role": "user",        "content": "请返回一句简短的接入成功提示。"      }    ],    "max_tokens": 64,    "stream": false  }'

排查清单

现象处理方式
环境变量为空确认 .env.local 已设置 SKYPOOL_API_KEY,并重启开发服务器
401检查 Consumer API Key 是否有效
404检查 baseURL 是否为 https://a.skypool.xyz/v1,模型 ID 是否正确
流式接口无输出先用 generateText 非流式验证,再切换 streamText
工具调用失败换用支持工具调用的模型,并减少 provider 专属参数

参考资料