Passer au contenu principal

Aperçu

Type : Framework ou PlateformeChemin principal : Compatible OpenAI par défautNiveau de confiance du support : Modèle d’intégration recommandé
Pour TokenLab, le défaut le plus stable dans le Vercel AI SDK est le fournisseur compatible OpenAI. Si vous avez spécifiquement besoin d’un comportement natif Responses, vous pouvez passer au fournisseur OpenAI tout en conservant la même URL de base TokenLab. Considérez cette page comme un modèle d’intégration recommandé, et non comme une garantie que chaque assistant du Vercel AI SDK est pris en charge par TokenLab.

Package du fournisseur TokenLab

TokenLab maintient également un wrapper de fournisseur léger pour le 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);

Recommandation par défaut : Fournisseur compatible 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',
});

Générer du texte

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

Diffuser du texte (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);
}

Appel d’outils (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);

Sortie structurée

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 vous avez explicitement besoin d’un comportement natif 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.',
});
Utilisez @ai-sdk/openai-compatible comme valeur par défaut sécurisée pour les intégrations de type proxy. Ne passez à @ai-sdk/openai que si vous souhaitez explicitement un chemin de fournisseur basé sur /v1/responses.

Variables d’environnement

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

Bonnes pratiques

Pour les passerelles tierces et les backends proxy, @ai-sdk/openai-compatible est généralement le point de départ le plus simple et le plus prévisible.
Si vous avez besoin d’un comportement de fournisseur lié à /v1/responses, changez délibérément de package de fournisseur au lieu de mélanger les deux modèles dans un même client.
N’exposez jamais votre clé API TokenLab dans le code côté client. Placez la configuration du fournisseur dans des fichiers serveur ou des routes API.