Frameworks et plateformes
Vercel AI SDK
Intégrez TokenLab avec le Vercel AI SDK en utilisant des fournisseurs compatibles OpenAI ou natifs Responses
Aperçu
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-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);Recommandation par défaut : Fournisseur compatible 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',
});Générer du texte
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);Diffuser du texte (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);
}Appel d'outils (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);Sortie structurée
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);Si vous avez explicitement besoin d'un comportement natif 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.',
});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