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

نظرة عامة

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

الخيار الافتراضي الموصى به: مزوّد متوافق مع OpenAI

npm install ai @ai-sdk/openai-compatible
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';

export const lemondata = createOpenAICompatible({
  name: 'lemondata',
  apiKey: process.env.LEMONDATA_API_KEY,
  baseURL: 'https://api.lemondata.cc/v1',
});

توليد النص

import { generateText } from 'ai';
import { lemondata } from './lemondata';

const { text } = await generateText({
  model: lemondata.chatModel('gpt-5.4'),
  prompt: 'Explain LemonData in one sentence.',
});

console.log(text);

بث النص

import { streamText } from 'ai';
import { lemondata } from './lemondata';

const result = await streamText({
  model: lemondata.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 { lemondata } from './lemondata';

const result = await generateText({
  model: lemondata.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 { lemondata } from './lemondata';

const { object } = await generateObject({
  model: lemondata.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 lemondataResponses = createOpenAI({
  apiKey: process.env.LEMONDATA_API_KEY,
  baseURL: 'https://api.lemondata.cc/v1',
});
import { generateText } from 'ai';
import { lemondataResponses } from './lemondata-responses';

const { text } = await generateText({
  model: lemondataResponses('gpt-5.4'),
  prompt: 'Explain LemonData in one sentence.',
});
استخدم @ai-sdk/openai-compatible كخيار افتراضي آمن لعمليات الدمج بأسلوب proxy. انتقل إلى @ai-sdk/openai فقط عندما تريد صراحةً مسار مزوّد مبنيًا على /v1/responses.

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

# .env.local
LEMONDATA_API_KEY=sk-your-lemondata-key

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

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