Skip to content
GuidesJuly 19, 2026

Dùng AnyRouter với Vercel AI SDK

@anyr/ai-sdk-provider bọc gateway AnyRouter thành provider Vercel AI SDK chuẩn. Gọi createAnyRouter(), truyền provider/model id, generateText, streamText, và generateObject chạy không đổi — đổi model là sửa một chuỗi.

Cài và tạo provider

Provider là lớp mỏng trên API AnyRouter, triển khai interface provider của AI SDK. Cài cùng AI SDK, rồi gọi createAnyRouter() — nó đọc ANYROUTER_API_KEY từ môi trường khi bạn bỏ key.

npm install @anyr/ai-sdk-provider ai zod
import { createAnyRouter } from "@anyr/ai-sdk-provider"
import { generateText } from "ai"

const anyrouter = createAnyRouter()

const { text } = await generateText({
  model: anyrouter("z-ai/glm-4.7-flash"),
  prompt: "What is AnyRouter?",
})
console.log(text)
createAnyRouter() đọc ANYROUTER_API_KEY khi bỏ key.

Stream, và đổi model id

Mọi hàm AI SDK nhận cùng factory model, nên streamText là cùng lời gọi với helper khác. Và vì model id là chuỗi provider/model thường, đổi model chạy là sửa một chuỗi — không client mới, không key mới.

import { createAnyRouter } from "@anyr/ai-sdk-provider"
import { streamText } from "ai"

const anyrouter = createAnyRouter()

const { textStream } = await streamText({
  // swap freely: "anthropic/claude-opus-4-5" or the free tier "anyrouter/free"
  model: anyrouter("z-ai/glm-4.7-flash"),
  prompt: "Write a haiku about the ocean.",
})

for await (const chunk of textStream) {
  process.stdout.write(chunk)
}
Model idRoute tới
z-ai/glm-4.7-flashZ.AI GLM-4.7 Flash
anthropic/claude-opus-4-5Anthropic Claude Opus 4.5
anyrouter/freeTầng miễn phí — không tốn credit

Output có cấu trúc với generateObject

generateObject cũng vậy — truyền schema zod và provider trả object có kiểu. Điều này giữ giữa các model, nên bạn chuyển tác vụ structured-output sang model rẻ hơn hoặc mạnh hơn mà không đụng schema.

import { createAnyRouter } from "@anyr/ai-sdk-provider"
import { generateObject } from "ai"
import { z } from "zod"

const anyrouter = createAnyRouter()

const { object } = await generateObject({
  model: anyrouter("z-ai/glm-4.7-flash"),
  schema: z.object({
    title: z.string(),
    summary: z.string(),
    tags: z.array(z.string()),
  }),
  prompt: "Summarise the latest AI news in a structured format.",
})

console.log(object.title, object.tags)

Không dùng AI SDK? Dùng @anyr/sdk

Nếu app không dùng Vercel AI SDK, SDK TypeScript thuần nói chuyện với cùng gateway bằng cùng key. Nó lộ client dạng OpenAI — chat, embeddings, Responses API, và Anthropic Messages API — với request và response có kiểu.

import { AnyRouter } from "@anyr/sdk"

// Reads ANYROUTER_API_KEY when omitted.
const client = new AnyRouter()

const completion = await client.chat.completions.create({
  model: "z-ai/glm-4.7-flash",
  messages: [{ role: "user", content: "Hello!" }],
})

console.log(completion.choices[0].message.content)

Cả hai package đọc ANYROUTER_API_KEY — tạo một key để bắt đầu.

Tạo key

Gửi request đầu trong hai phút

Bắt đầu miễn phí với key của bạn, hoặc nạp rồi trả theo token. Go: $4 credit/tháng — $2/tháng, hoặc miễn phí khi góp một provider key.

Bắt đầu miễn phí