フレームワークとプラットフォーム

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-provider
import { 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 zod
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',
});

テキスト生成

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/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.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

ベストプラクティス

このページの内容