フレームワークとプラットフォーム
Vercel AI SDK
OpenAI互換またはResponsesネイティブプロバイダーを使用して、TokenLabをVercel AI SDKに統合します
概要
タイプ: フレームワークまたはプラットフォーム
推奨パス: OpenAI互換デフォルト
サポートの信頼性: 推奨される統合パターン
TokenLabにおいて、Vercel AI SDKで最も安定したデフォルトは OpenAI互換プロバイダー です。
Responsesネイティブ の動作が特に必要な場合は、OpenAIプロバイダーに切り替えて、同じTokenLabのベースURLを使用することができます。
このページは推奨される統合パターンを示すものであり、Vercel AI SDKのすべてのヘルパーがTokenLabでサポートされていることを保証するものではありません。
TokenLabプロバイダーパッケージ
TokenLabは、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);推奨されるデフォルト: 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',
});テキスト生成
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);ストリームテキスト
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);
}ツール呼び出し
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);構造化出力
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);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.',
});プロキシ形式の統合には、安全なデフォルトとして @ai-sdk/openai-compatible を使用してください。/v1/responses に基づくプロバイダーパスが明示的に必要な場合にのみ、@ai-sdk/openai に切り替えてください。
環境変数
# .env.local
TOKENLAB_API_KEY=sk-your-tokenlab-key