Frameworks e plataformas

Vercel AI SDK

Integre o TokenLab com o Vercel AI SDK usando provedores compatíveis com OpenAI ou nativos de Responses

Visão Geral

Tipo: Framework ou Plataforma

Caminho Principal: Padrão compatível com OpenAI

Nível de Confiança do Suporte: Padrão de integração recomendado

Para o TokenLab, o padrão mais estável no Vercel AI SDK é o provedor compatível com OpenAI.

Se você precisar especificamente do comportamento nativo de Responses, você pode alternar para o provedor OpenAI e manter a mesma URL base do TokenLab.

Trate esta página como um padrão de integração recomendado, não como uma garantia de que todos os helpers do Vercel AI SDK sejam suportados pelo TokenLab.

Pacote do Provedor TokenLab

O TokenLab também mantém um wrapper de provedor leve para o 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);

Padrão Recomendado: Provedor Compatível com 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',
});

Gerar Texto

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);

Transmitir Texto (Stream)

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);
}

Chamada de Ferramentas (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);

Saída Estruturada

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);

Se você precisar explicitamente do comportamento nativo de 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.',
});

Use @ai-sdk/openai-compatible como o padrão seguro para integrações do tipo proxy. Mude para @ai-sdk/openai apenas quando você quiser explicitamente um caminho de provedor construído sobre /v1/responses.

Variáveis de Ambiente

# .env.local
TOKENLAB_API_KEY=sk-your-tokenlab-key

Melhores Práticas

Nesta página