# Vercel AI SDK

> 用 @ai-sdk/openai 的 baseURL 指向 TokRouter,在 Next.js 里直接 streamText。

```bash
npm install ai @ai-sdk/openai
```

```ts

const tokrouter = createOpenAI({
  apiKey: process.env.TOKROUTER_API_KEY!,
  baseURL: 'https://api.tokrouter.dev/v1',
  // 走 Chat Completions(网关实现的路径),而不是 OpenAI 独占的 Responses 路径
  compatibility: 'compatible',
})

const { text } = await generateText({
  model: tokrouter('gpt-5.4-mini'),
  prompt: '用一句话解释什么是流式输出',
})
```

## 在 Route Handler 里流式返回

```ts
// app/api/chat/route.ts

const tokrouter = createOpenAI({
  apiKey: process.env.TOKROUTER_API_KEY!,
  baseURL: 'https://api.tokrouter.dev/v1',
  compatibility: 'compatible',
})

export async function POST(req: Request) {
  const { messages } = await req.json()
  const result = streamText({ model: tokrouter('claude-sonnet-5'), messages })
  return result.toTextStreamResponse()
}
```

<Callout type="warn" title="Key 只在服务端">
Route Handler 运行在服务端,Key 不会进浏览器包。不要用 `NEXT_PUBLIC_` 前缀承载 API Key。
</Callout>
