Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt

Use this file to discover all available pages before exploring further.

Descripción general

Para TokenLab, la opción predeterminada más estable en Vercel AI SDK es el proveedor compatible con OpenAI. Si específicamente necesitas el comportamiento nativo de Responses, puedes cambiar al proveedor OpenAI y mantener la misma URL base de TokenLab. Esta página debe leerse como un patrón de integración recomendado, no como una afirmación de que cada utilidad del Vercel AI SDK tenga cobertura de extremo a extremo dedicada en este repositorio.

Opción predeterminada recomendada: Proveedor compatible con 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',
});

Generar 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 en streaming

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

Llamada de herramientas

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

Salida estructurada

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

Si explícitamente necesitas comportamiento 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.',
});
Usa @ai-sdk/openai-compatible como opción predeterminada segura para integraciones de estilo proxy. Cambia a @ai-sdk/openai solo cuando explícitamente quieras una ruta de proveedor construida sobre /v1/responses.

Variables de entorno

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

Mejores prácticas

Para pasarelas de terceros y servidores proxy, @ai-sdk/openai-compatible suele ser el punto de partida que genera menos sorpresas.
Si necesitas un comportamiento del proveedor vinculado a /v1/responses, cambia deliberadamente el paquete del proveedor en lugar de mezclar ambos patrones en un solo cliente.
Nunca expongas tu API key de TokenLab en código del lado del cliente. Coloca la configuración del proveedor en archivos del servidor o rutas de API.