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