Bilgi Tabanı Bölümleri ▾

Navigasyon

▸ Buradan başlayın Rol bazlı

Kategoriler

Araçlar 54
Sözlük 12

Araçlar

Vercel AI SDK + Gonka AI — TypeScript'te yapay zeka uygulamaları kuruşa

Vercel AI SDK, TypeScript ve JavaScript ile AI uygulamaları geliştirmek için en popüler SDK'dir. generateText ve streamText için tek bir API, UI'da akışlı çıktı (streaming), yerel tool calling, Next.js App Router için hazır yardımcılar — web'deki chatbotlar, ajanlar ve RAG pipeline'ları için ihtiyacınız olan her şey.

Sorun, herhangi bir LLM uygulamasındaki ile aynıdır: sağlayıcı maliyeti. Akışlı sohbet arayüzü her mesajda diyalog geçmişini gönderir, ajan bağlamı düzinelerce adım boyunca taşır. Anthropic ($3-15/1M) ve OpenAI ($2.5-10/1M) fiyatlarıyla, üretim ortamındaki mütevazı bir pet-proje bile ayda yüzlerce dolarlık faturalara dönüşür.

JoinGonka Gateway — merkeziyetsiz Gonka ağı üzerinde çalışan OpenAI uyumlu bir uç noktadır. Vercel AI SDK, ona herhangi bir OpenAI uyumlu sağlayıcı gibi bağlanır — fork olmadan, kendi adaptörleri olmadan. Ticari barındırıcılarla aynı açık modeller — MiniMax M2.7, DeepSeek V4 Flash ve GLM-5.3 Flash — ve aynı streamText, ancak 1M token giriş başına $0.0062 maliyetle — onlarca kat daha ucuz.

Adım 1: Anahtar alın ve sağlayıcıyı bağlayın

JoinGonka API anahtarı: gate.joingonka.ai/register adresinden kaydol — başlangıçta 3M ücretsiz token veriyoruz. Dashboard'da jg- önekli bir anahtar oluştur.

Paket kurulumu. Kendi OpenAI uyumlu endpoint'in için Vercel AI SDK @ai-sdk/openai-compatible sağlayıcısını öneriyor:

npm install ai @ai-sdk/openai-compatible

Minimum bağlantı — createOpenAICompatible ile bir sağlayıcı örneği oluşturup generateText'i çağırıyoruz:

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: 'Explain what a decentralized inference network is',
});

console.log(text);

apiKey parametresi Authorization: Bearer jg-your-key başlığını otomatik ekler — ayrı bir ayar gerekmez. Anahtarı kodda değil, GONKA_API_KEY ortam değişkeninde sakla (örneğin .env.local içinde).

Alternatif — @ai-sdk/openai paketi ve createOpenAI({ baseURL, apiKey }) fabrikası. İki yöntem de çalışıyor; OpenAI'ye ait olmayan endpoint'ler için AI SDK dokümantasyonu tam da @ai-sdk/openai-compatible'ı öneriyor — gereksiz OpenAI'ye özgü varsayımları beraberinde getirmiyor.

Adım 2: Akış ve Next.js route işleyicisi

Vercel AI SDK'nın en önemli özelliği yanıtı akış halinde sunması. streamText fonksiyonu token'ları hemen akıtmaya başlar, toUIMessageStreamResponse() yardımcısı ise hazır akışı doğrudan Next.js App Router'daki route handler'dan verir.

Sunucu tarafı 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,
});

// allow streaming for up to 30 seconds
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: 'You are a helpful assistant. Answer briefly and to the point.',
    messages: convertToModelMessages(messages),
    maxOutputTokens: 8192, // Gateway output cap
  });

  return result.toUIMessageStreamResponse();
}

İstemci tarafında @ai-sdk/react içindeki useChat hook'unu bağla — kendisi /api/chat'e gider ve mesaj akışını render eder. Arka uç bu sırada OpenAI'ye değil Gonka'ya bağlanır.

UI'sız betik (Node, akış üzerinde async iterator):

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: 'Write a haiku about distributed computing',
});

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

Model parametreleri. Gateway üzerinden üç model kullanılabilir: MiniMax M2.7'de 180K token bağlam, DeepSeek V4 Flash'ta 380K, GLM-5.3 Flash'ta 390K; yanıt üst sınırı (maxOutputTokens) MiniMax M2.7 ve GLM-5.3 Flash'ta 8192, DeepSeek V4 Flash'ta 32768:

  • MiniMaxAI/MiniMax-M2.7 — varsayılan (MiniMax M2.7);
  • deepseek-ai/DeepSeek-V4-Flash-0731 (DeepSeek V4 Flash, bağlam 380K);
  • zai-org/GLM-5.3-Flash (GLM-5.3 Flash, reasoning modeli — yanıt vermeden önce akıl yürütür).

maxOutputTokens belirtilmezse, non-stream bir istekte Gateway varsayılan olarak 1500 token'a kadar döner — streaming sohbetlerde değeri açıkça vermek daha iyi.

Maliyet Karşılaştırması

Vercel AI SDK genellikle etkileşimli bir arayüzün (sohbet, ajan, uygulama asistanı) arkasında bulunur. Her mesaj beraberinde diyalog geçmişini, her ajan adımı ise araç (tool) bağlamını getirir. Bu nedenle gerçek maliyet tek bir istek üzerinden değil, üretim (prod) yüküne göre hesaplanır. Tipik senaryoları karşılaştıralım:

SenaryoTokenAnthropic / OpenAIJoinGonka Gonka
Tek bir sohbet mesajı~3K$0.01 — $0.05$0.000028
20 mesajlık diyalog~150K$0.50 — $2.25$0.0014
RAG yanıtı (arama + üretme)~5K$0.015 — $0.05$0.000048
Tool calling ile ajan adımı~10K$0.03 — $0.10$0.000096
Günlük 10 000 istek (prod)~50M$150 — $500$0.48

JoinGonka fiyatı, girişte 1M token için yaklaşık $0.0062'dur; çıktı ise yaklaşık üç kat daha pahalıdır. Günlük binlerce istek içeren bir uygulama için bu, yüzlerce dolarlık fatura ile sent düzeyinde bir fatura arasındaki farktır. Ücretsiz 3M token, projenin ilk isteklerini gerçekleştirmek için yeterlidir.

Araç çağırma ve ajanlar

Vercel AI SDK, araçları tools nesnesi ve zod şeması üzerinden bildirimsel olarak tanımlar. Ağdaki modeller yerel function calling desteklediği için AI SDK, metin yanıtlarını ayrıştırmaya gerek kalmadan yapılandırılmış tool_calls alır. stopWhen: stepCountIs(n) parametresi arka arkaya birden fazla adıma izin verir — model bir aracı çağırır, sonucu alır ve devam eder.

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: 'Get the weather in a city',
      inputSchema: z.object({ city: z.string() }),
      execute: async ({ city }) => ({ city, tempC: 17 }),
    }),
  },
  prompt: 'What is the weather in Moscow? Answer in one sentence.',
});

console.log(text);

Model weather aracını çağırır, sonucu alır ve nihai yanıtı oluşturur. Tüm döngü Gonka üzerinden yaklaşık $0.000048 tutarken, Anthropic veya OpenAI'da $0.03-0.10 arasında. Her kullanıcı isteğinin 5-10 adıma yayıldığı ajan uygulamalarında, prodüksiyondaki tasarruf ayda binlerce dolarla ölçülüyor.

Python ile bir AI uygulaması geliştiriyorsanız, LangChain rehberine göz atın — orada aynı yaklaşım OpenAI uyumlu sınıf üzerinden işliyor.

Vercel AI SDK + Gonka = TypeScript ile cüzi fiyatlara production-ready AI uygulamaları. createOpenAICompatible, Gateway'i forksuz bağlar, generateText ve streamText her zamanki gibi çalışır, yerel tool calling ve Next.js route handlers — OpenAI ve Anthropic'teki $2.5-15 yerine $0.0062/1M token ile.

Daha fazla bilgi edinmek ister misiniz?

Diğer bölümleri keşfedin veya şimdi GNK kazanmaya başlayın.

Ücretsiz tokenleri al →