أقسام قاعدة المعرفة ▾

التنقل

▸ ابدأ من هنا حسب الدور

الفئات

أدوات 32
قاموس المصطلحات 12

أدوات

Vercel AI SDK + Gonka AI - تطبيقات AI على TypeScript بتكلفة زهيدة

Vercel AI SDK هو الـ SDK الأكثر شيوعاً لبناء تطبيقات الذكاء الاصطناعي باستخدام TypeScript و JavaScript. واجهة برمجة تطبيقات موحدة generateText و streamText، البث المباشر (streaming) إلى واجهة المستخدم، استدعاء أدوات أصلي، ومساعدات جاهزة لـ Next.js App Router — كل ما تحتاجه لروبوتات الدردشة، الوكلاء وخطوط أنابيب RAG على الويب.

المشكلة هي نفسها التي تواجه أي تطبيق LLM — تكلفة المزود. واجهة الدردشة التي تعمل بالبث ترسل سجل المحادثة مع كل رسالة، والوكيل يمرر السياق عبر عشرات الخطوات. مع أسعار Anthropic ($3-15/1M) و OpenAI ($2.5-10/1M)، حتى مشروع صغير في بيئة الإنتاج (prod) قد يتحول إلى فاتورة بمئات الدولارات شهرياً.

JoinGonka Gateway — هي نقطة اتصال متوافقة مع OpenAI فوق شبكة Gonka اللامركزية. يتصل Vercel AI SDK بها كأي مزود متوافق مع OpenAI — بدون fork، وبدون محولات خاصة. نفس نموذج Kimi K2.6، ونفس streamText، ولكن بتكلفة $0.003 لكل 1 مليون توكن مدخل — أرخص بمئات إلى آلاف المرات.

الخطوة 1: الحصول على المفتاح وربط المزود

مفتاح API الخاص بـ JoinGonka: سجل في gate.joingonka.ai/register — نمنحك 10M توكن مجاني عند البدء. في Dashboard، قم بإنشاء مفتاح يبدأ بالبادئة jg-.

تثبيت الحزم. بالنسبة لنقاط النهاية المتوافقة مع OpenAI، توصي Vercel AI SDK باستخدام الموفر @ai-sdk/openai-compatible:

npm install ai @ai-sdk/openai-compatible

الاتصال الأساسي — نقوم بإنشاء مثيل للموفر عبر createOpenAICompatible واستدعاء generateText:

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

const gonka = createOpenAICompatible({
  name: 'gonka',
  baseURL: 'https://gate.joingonka.ai/v1',
  apiKey: process.env.GONKA_API_KEY, // jg-your-key
});

const { text } = await generateText({
  model: gonka('MiniMaxAI/MiniMax-M2.7'),
  prompt: 'اشرح ماهي شبكات الاستنتاج اللامركزية',
});

console.log(text);

يقوم المعامل apiKey تلقائيًا بإضافة الترويسة Authorization: Bearer jg-your-key — لا حاجة لإعداد إضافي. احفظ المفتاح في متغير البيئة GONKA_API_KEY (على سبيل المثال في .env.local)، وليس في الكود نفسه.

البديل — حزمة @ai-sdk/openai مع المصنع createOpenAI({ baseURL, apiKey }). كلاهما يعملان؛ بالنسبة لنقاط النهاية التي لا تنتمي إلى OpenAI، تنصح وثائق AI SDK باستخدام @ai-sdk/openai-compatible تحديدًا — فهو لا يضيف افتراضات خاصة بـ OpenAI غير ضرورية.

الخطوة 2: التدفق ومُعالج مسار Next.js

الميزة الرئيسية لـ Vercel AI SDK هي دفق الاستجابة. تبدأ دالة streamText ببث التوكنات فورًا، ويقوم المساعد toUIMessageStreamResponse() بإخراج الدفق الجاهز مباشرة من معالج المسارات في Next.js App Router.

معالج الخادم (Server handler) app/api/chat/route.ts:

import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
import { streamText, convertToModelMessages, type UIMessage } from 'ai';

const gonka = createOpenAICompatible({
  name: 'gonka',
  baseURL: 'https://gate.joingonka.ai/v1',
  apiKey: process.env.GONKA_API_KEY,
});

// السماح بالبث لمدة تصل إلى 30 ثانية
export const maxDuration = 30;

export async function POST(req: Request) {
  const { messages }: { messages: UIMessage[] } = await req.json();

  const result = streamText({
    model: gonka('MiniMaxAI/MiniMax-M2.7'),
    system: 'أنت مساعد مفيد. أجب باختصار وفي صلب الموضوع.',
    messages: convertToModelMessages(messages),
    maxOutputTokens: 8192, // سقف المخرجات عبر Gateway
  });

  return result.toUIMessageStreamResponse();
}

على جانب العميل، قم بتوصيل الخطاف useChat من @ai-sdk/react — وسيقوم ذاتيًا بطلب /api/chat وعرض دفق الرسائل. في هذه الأثناء، يقوم الطرف الخلفي (backend) بالاتصال بـ Gonka بدلاً من OpenAI.

برنامج نصي بدون واجهة مستخدم (Node، مكرر غير متزامن فوق الدفق):

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

const gonka = createOpenAICompatible({
  name: 'gonka',
  baseURL: 'https://gate.joingonka.ai/v1',
  apiKey: process.env.GONKA_API_KEY,
});

const result = streamText({
  model: gonka('MiniMaxAI/MiniMax-M2.7'),
  prompt: 'اكتب قصيدة هايكو عن الحوسبة الموزعة',
});

for await (const chunk of result.textStream) {
  process.stdout.write(chunk);
}

معلمات النماذج. تتوفر نموذجان عبر Gateway، كلاهما بسياق 200 ألف توكن؛ سقف الاستجابة (maxOutputTokens) يصل إلى 8192 لكل منهما:

إذا لم يتم تعيين maxOutputTokens، فبالنسبة لطلبات غير البث، سيعيد Gateway افتراضيًا ما يصل إلى 1500 توكن — بالنسبة لدردشات البث، يُفضل تحديد القيمة بوضوح.

مقارنة التكلفة

Vercel AI SDK عادة ما تقع خلف واجهة تفاعلية — دردشة، وكيل، مساعد في تطبيق. كل رسالة تسحب معها سجل المحادثة، وكل خطوة يقوم بها الوكيل تسحب سياق الأدوات. لذلك، التكلفة الفعلية لا تُحسب لكل طلب واحد، بل حسب حمل الإنتاج (prod). لنقارن سيناريوهات نموذجية:

السيناريوالتوكناتAnthropic / OpenAIJoinGonka Gonka
رسالة واحدة في الدردشة~3K$0.01 — $0.05$0.000014
محادثة من 20 رد~150K$0.50 — $2.25$0.00072
استجابة RAG (بحث + توليد)~5K$0.015 — $0.05$0.000024
خطوة وكيل مع tool calling~10K$0.03 — $0.10$0.000048
10,000 طلب يومياً (prod)~50M$150 — $500$0.24

سعر JoinGonka — حوالي $0.003 لكل 1 مليون توكن مدخل، والمخرجات أغلى بثلاث مرات تقريباً. بالنسبة لتطبيق يحتوي على آلاف الطلبات يومياً، هذا هو الفرق بين فاتورة بمئات الدولارات وفاتورة سنتات. الـ 10 مليون توكن المجانية كافية لتشغيل وتصحيح المشروع بالكامل قبل إطلاقه في الإنتاج.

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

يقوم Vercel AI SDK بوصف الأدوات بشكل توضيحي من خلال كائن tools ومخطط zod. يدعم Kimi K2.6 استدعاء الوظائف (function calling) بشكل أصلي، لذا يتلقى AI SDK استدعاءات tool_calls مهيكلة دون الحاجة لتحليل نصوص الردود. يسمح المعامل stopWhen: stepCountIs(n) بعدة خطوات متتالية — حيث يقوم النموذج باستدعاء الأداة، والحصول على النتيجة، والاستمرار.

import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
import { generateText, tool, stepCountIs } from 'ai';
import { z } from 'zod';

const gonka = createOpenAICompatible({
  name: 'gonka',
  baseURL: 'https://gate.joingonka.ai/v1',
  apiKey: process.env.GONKA_API_KEY,
});

const { text } = await generateText({
  model: gonka('MiniMaxAI/MiniMax-M2.7'),
  stopWhen: stepCountIs(5),
  tools: {
    weather: tool({
      description: 'معرفة حالة الطقس في المدينة',
      inputSchema: z.object({ city: z.string() }),
      execute: async ({ city }) => ({ city, tempC: 17 }),
    }),
  },
  prompt: 'ما هي حالة الطقس في موسكو؟ أجب بجملة واحدة.',
});

console.log(text);

يقوم النموذج باستدعاء أداة weather، ويحصل على النتيجة ويصيغ الرد النهائي. تبلغ تكلفة الدورة الكاملة حوالي $0.000048 عبر Gonka مقارنة بـ $0.03-0.10 لدى Anthropic أو OpenAI. بالنسبة للتطبيقات الوكيلة (agentic)، حيث يتوسع كل طلب من المستخدم إلى 5-10 خطوات، يتم قياس التوفير في بيئة الإنتاج بآلاف الدولارات شهرياً.

إذا كنت تبني تطبيق AI باستخدام لغة Python، ألقِ نظرة على دليل LangChain — حيث يتم اتباع نفس النهج باستخدام فئة متوافقة مع OpenAI.

Vercel AI SDK + Gonka = تطبيقات AI جاهزة للإنتاج باستخدام TypeScript بتكلفة زهيدة. يربط createOpenAICompatible البوابة (Gateway) بدون أي تعديلات (forks)، ويعمل generateText و streamText كالمعتاد، مع دعم أصلي لاستدعاء الأدوات (tool calling) و Next.js route handlers — كل ذلك مقابل $0.003 لكل مليون رمز (token) بدلاً من $2.5-15 لدى OpenAI و Anthropic.

تريد معرفة المزيد؟

استكشف الأقسام الأخرى أو ابدأ في كسب GNK الآن.

احصل على 10 ملايين رمز مجاني →