الانتقال إلى المحتوى الرئيسي

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.

نظرة عامة

النوع: إطار أو منصةالمسار الرئيسي: الإعداد الافتراضي المتوافق مع OpenAIمستوى الدعم: نمط تكامل موصى به
بالنسبة إلى TokenLab، فإن الخيار الافتراضي الأكثر استقرارًا في Vercel AI SDK هو مزوّد متوافق مع OpenAI. إذا كنت تحتاج تحديدًا إلى سلوك Responses native، يمكنك التبديل إلى مزوّد OpenAI مع الاحتفاظ بنفس عنوان URL الأساسي لـ TokenLab. يجب قراءة هذه الصفحة باعتبارها نمط تكامل موصى به، وليس باعتبارها ادعاءً بأن كل أداة مساعدة في Vercel AI SDK لديها تغطية شاملة مخصصة داخل هذا المستودع.

الخيار الافتراضي الموصى به: مزوّد متوافق مع 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',
});

توليد النص

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

بث النص

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

استدعاء الأدوات

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

المخرجات المنظمة

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

إذا كنت تحتاج صراحةً إلى سلوك Responses-Native

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.',
});
استخدم @ai-sdk/openai-compatible كخيار افتراضي آمن لعمليات الدمج بأسلوب proxy. انتقل إلى @ai-sdk/openai فقط عندما تريد صراحةً مسار مزوّد مبنيًا على /v1/responses.

متغيرات البيئة

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

أفضل الممارسات

بالنسبة إلى البوابات الخارجية وواجهات proxy الخلفية، يكون @ai-sdk/openai-compatible عادةً نقطة البداية الأقل مفاجأة.
إذا كنت تحتاج إلى سلوك موفر مرتبط بـ /v1/responses، فقم بتبديل حزمة الموفر بشكل مقصود بدلًا من خلط النمطين في عميل واحد.
لا تقم أبدًا بكشف مفتاح TokenLab API الخاص بك في كود جهة العميل. ضع إعداد الموفر في ملفات الخادم أو مسارات API.