الأطر والمنصات
Vercel AI SDK
دمج TokenLab مع Vercel AI SDK باستخدام مزودات متوافقة مع OpenAI أو مزودات Responses-native
نظرة عامة
النوع: إطار عمل أو منصة
المسار الأساسي: الافتراضي المتوافق مع OpenAI
مستوى دعم التكامل: نمط تكامل موصى به
بالنسبة لـ TokenLab، فإن الخيار الافتراضي الأكثر استقراراً في Vercel AI SDK هو المزود المتوافق مع OpenAI (OpenAI-compatible provider).
إذا كنت تحتاج تحديداً إلى سلوك Responses-native، يمكنك التبديل إلى مزود OpenAI مع الاحتفاظ بنفس عنوان URL الأساسي لـ TokenLab.
يجب التعامل مع هذه الصفحة كنمط تكامل موصى به، وليس كضمان بأن كل أداة مساعدة في 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',
});توليد النصوص (Generate Text)
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);بث النصوص (Stream 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);
}استدعاء الأدوات (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);المخرجات المهيكلة (Structured Output)
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-Native
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 كخيار افتراضي آمن لتكاملات نمط الوكيل (proxy-style). انتقل إلى @ai-sdk/openai فقط عندما تحتاج صراحةً إلى مسار مزود مبني على /v1/responses.
متغيرات البيئة (Environment Variables)
# .env.local
TOKENLAB_API_KEY=sk-your-tokenlab-key