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-provider
import { 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 zod
import { 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/openai
import { 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

Praktik Terbaik

Di halaman ini