Framework và nền tảng
Vercel AI SDK
Tích hợp TokenLab với Vercel AI SDK sử dụng các provider tương thích với OpenAI hoặc Responses-native
Tổng quan
Loại: Framework hoặc Platform
Đường dẫn chính: Mặc định tương thích với OpenAI
Độ tin cậy hỗ trợ: Mô hình tích hợp được khuyến nghị
Đối với TokenLab, mặc định ổn định nhất trong Vercel AI SDK là provider tương thích với OpenAI.
Nếu bạn đặc biệt cần hành vi Responses-native, bạn có thể chuyển sang provider OpenAI và giữ nguyên base URL của TokenLab.
Hãy coi trang này là một mô hình tích hợp được khuyến nghị, không phải là sự đảm bảo rằng mọi helper trong Vercel AI SDK đều được TokenLab hỗ trợ.
Gói Provider TokenLab
TokenLab cũng duy trì một trình bao bọc (wrapper) provider nhẹ cho Vercel AI SDK:
npm install ai @tokenlabai/ai-sdk-providerimport { generateText } from 'ai';
import { tokenlab } from '@tokenlabai/ai-sdk-provider';
const { text } = await generateText({
model: tokenlab.chatModel('gpt-5.6-terra'),
prompt: 'Explain TokenLab in one sentence.',
});
console.log(text);Mặc định được khuyến nghị: Provider tương thích với OpenAI
npm install ai @ai-sdk/openai-compatible zodimport { createOpenAICompatible } from '@ai-sdk/openai-compatible';
export const tokenlab = createOpenAICompatible({
name: 'tokenlab',
apiKey: process.env.TOKENLAB_API_KEY,
baseURL: 'https://api.tokenlab.sh/v1',
});Tạo văn bản (Generate Text)
import { generateText } from 'ai';
import { tokenlab } from './tokenlab';
const { text } = await generateText({
model: tokenlab.chatModel('gpt-5.6-terra'),
prompt: 'Explain TokenLab in one sentence.',
});
console.log(text);Truyền phát văn bản (Stream Text)
import { streamText } from 'ai';
import { tokenlab } from './tokenlab';
const result = await streamText({
model: tokenlab.chatModel('gpt-5.6-terra'),
prompt: 'Write a short poem about coding.',
});
for await (const textPart of result.textStream) {
process.stdout.write(textPart);
}Gọi công cụ (Tool Calling)
import { generateText, stepCountIs, tool } from 'ai';
import { z } from 'zod';
import { tokenlab } from './tokenlab';
const result = await generateText({
model: tokenlab.chatModel('gpt-5.6-terra'),
prompt: 'What is the weather in San Francisco?',
stopWhen: stepCountIs(2),
tools: {
weather: tool({
description: 'Get weather in a location',
inputSchema: z.object({
location: z.string(),
}),
execute: async ({ location }) => ({
location,
temperature: 72,
condition: 'sunny',
}),
}),
},
});
console.log(result.text);Đầu ra có cấu trúc (Structured Output)
import { generateObject } from 'ai';
import { z } from 'zod';
import { tokenlab } from './tokenlab';
const { object } = await generateObject({
model: tokenlab.chatModel('gpt-5.6-terra'),
schema: z.object({
name: z.string(),
role: z.string(),
}),
prompt: 'Generate a fake developer profile.',
});
console.log(object);Nếu bạn cần hành vi Responses-Native một cách rõ ràng
npm install ai @ai-sdk/openaiimport { createOpenAI } from '@ai-sdk/openai';
export const tokenlabResponses = createOpenAI({
apiKey: process.env.TOKENLAB_API_KEY,
baseURL: 'https://api.tokenlab.sh/v1',
});import { generateText } from 'ai';
import { tokenlabResponses } from './tokenlab-responses';
const { text } = await generateText({
model: tokenlabResponses('gpt-5.6-terra'),
prompt: 'Explain TokenLab in one sentence.',
});Sử dụng @ai-sdk/openai-compatible làm mặc định an toàn cho các tích hợp kiểu proxy. Chỉ chuyển sang @ai-sdk/openai khi bạn muốn một đường dẫn provider được xây dựng trên /v1/responses.
Biến môi trường (Environment Variables)
# .env.local
TOKENLAB_API_KEY=sk-your-tokenlab-key