Saltar para o conteúdo principal

Visão Geral

Tipo: Framework ou PlataformaCaminho Principal: Padrão compatível com OpenAINí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.4'),
  prompt: 'Explain TokenLab in one sentence.',
});

console.log(text);

Padrão Recomendado: Provedor Compatível com OpenAI

npm install ai @ai-sdk/openai-compatible
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.4'),
  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.4'),
  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, tool } from 'ai';
import { z } from 'zod';
import { tokenlab } from './tokenlab';

const result = await generateText({
  model: tokenlab.chatModel('gpt-5.4'),
  prompt: 'What is the weather in San Francisco?',
  tools: {
    weather: tool({
      description: 'Get weather in a location',
      parameters: 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.4'),
  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.4'),
  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

Para gateways de terceiros e backends de proxy, o @ai-sdk/openai-compatible geralmente é o ponto de partida menos propenso a erros.
Se você precisar de um comportamento de provedor vinculado a /v1/responses, altere o pacote do provedor deliberadamente em vez de misturar ambos os padrões em um único cliente.
Nunca exponha sua chave de API do TokenLab em código do lado do cliente. Coloque a configuração do provedor em arquivos de servidor ou rotas de API.