Framework & platform
Vercel AI SDK
Integrasikan TokenLab dengan Vercel AI SDK menggunakan penyedia yang kompatibel dengan OpenAI atau native-Responses
Gambaran Umum
Tipe: Framework atau Platform
Jalur Utama: Default yang kompatibel dengan OpenAI
Tingkat Dukungan: Pola integrasi yang direkomendasikan
Untuk TokenLab, default yang paling stabil di Vercel AI SDK adalah penyedia yang kompatibel dengan OpenAI.
Jika Anda secara khusus memerlukan perilaku native-Responses, Anda dapat beralih ke penyedia OpenAI dan tetap menggunakan base URL TokenLab yang sama.
Anggap halaman ini sebagai pola integrasi yang direkomendasikan, bukan sebagai jaminan bahwa setiap helper di Vercel AI SDK didukung oleh TokenLab.
Paket Penyedia TokenLab
TokenLab juga mengelola wrapper penyedia yang ringan untuk 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);Default yang Direkomendasikan: Penyedia yang Kompatibel dengan 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',
});Menghasilkan Teks (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);Streaming Teks (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);
}Pemanggilan Tool (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);Output Terstruktur (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);Jika Anda Secara Eksplisit Memerlukan Perilaku Native-Responses
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.',
});Gunakan @ai-sdk/openai-compatible sebagai default yang aman untuk integrasi bergaya proxy. Beralihlah ke @ai-sdk/openai hanya jika Anda secara eksplisit menginginkan jalur penyedia yang dibangun di atas /v1/responses.
Variabel Lingkungan (Environment Variables)
# .env.local
TOKENLAB_API_KEY=sk-your-tokenlab-key