Bilgi Tabanı Bölümleri ▾

Araçlar

Araçlar

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

Vercel AI SDK, TypeScript ve JavaScript'te yapay zeka uygulamaları oluşturmak için en popüler SDK'dır. Tek bir API generateText ve streamText, kullanıcı arayüzüne akışlı teslimat, yerel araç çağırma, Next.js Uygulama Yönlendiricisi için hazır yardımcılar - sohbet botları, ajanlar ve web'deki RAG ardışık düzenleri için ihtiyacınız olan her şey.

Sorun, herhangi bir LLM uygulamasında olduğu gibi, sağlayıcının fiyatıdır. Akışlı bir sohbet arayüzü, her mesaja diyalog geçmişini gönderir, bir ajan bağlamı onlarca adım boyunca dolaştırır. Anthropic'in (3-15$/1M) ve OpenAI'nin (2,5-10$/1M) fiyatlarıyla, üretimdeki mütevazı bir evcil hayvan projesi bile ayda yüzlerce dolarlık faturaya dönüşür.

JoinGonka Gatewaymerkeziyetsiz Gonka ağı üzerinde bir OpenAI uyumlu uç noktadır. Vercel AI SDK, herhangi bir OpenAI uyumlu sağlayıcı gibi ona bağlanır - çatallanma veya kendi adaptörleri olmadan. Aynı Qwen3-235B modeli, aynı streamText, ancak 1M token giriş başına 0,0005 dolar - yüzlerce-binlerce kat daha ucuz.

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

JoinGonka API Anahtarı: gate.joingonka.ai/register adresine kaydolun - başlangıçta 10M ücretsiz token veriyoruz. Kontrol Paneli'nde jg- önekli bir anahtar oluşturun.

Paket kurulumu. Özel bir OpenAI uyumlu uç nokta için Vercel AI SDK, @ai-sdk/openai-compatible sağlayıcısını önerir:

npm install ai @ai-sdk/openai-compatible

Minimum bağlantı - createOpenAICompatible aracılığıyla bir sağlayıcı örneği oluşturur ve generateText'i çağırırız:

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-anahtarınız
});

const { text } = await generateText({
  model: gonka('Qwen/Qwen3-235B-A22B-Instruct-2507-FP8'),
  prompt: 'Merkeziyetsiz çıkarım ağı nedir açıklayın',
});

console.log(text);

apiKey parametresi otomatik olarak Authorization: Bearer jg-anahtarınız başlığını ekler - ayrı bir ayar gerekmez. Güvenlik için anahtarınızı GONKA_API_KEY ortam değişkeninde (örneğin, .env.local içinde) saklayın, kodu içinde değil.

Alternatif - createOpenAI({ baseURL, apiKey }) fabrikasıyla @ai-sdk/openai paketi. Her iki yöntem de çalışır; OpenAI'ye ait olmayan uç noktalar için AI SDK dokümantasyonu özellikle @ai-sdk/openai-compatible'ı önerir - gereksiz OpenAI'ye özgü varsayımları çekmez.

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

Vercel AI SDK'nin ana özelliği, yanıtın akışla aktarılmasıdır. streamText fonksiyonu tokenleri hemen akışla aktarmaya başlar ve toUIMessageStreamResponse() yardımcı işlevi, hazır akışı doğrudan Next.js App Router'daki route işleyicisinden döndürür.

Sunucu işleyicisi 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 saniyeye kadar akışa izin veriyoruz
export const maxDuration = 30;

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

  const result = streamText({
    model: gonka('Qwen/Qwen3-235B-A22B-Instruct-2507-FP8'),
    system: 'Sen faydalı bir asistansın. Kısa ve öz cevap ver.',
    messages: convertToModelMessages(messages),
    maxOutputTokens: 8192, // Gateway aracılığıyla Qwen3-235B'nin limiti
  });

  return result.toUIMessageStreamResponse();
}

İstemcide, @ai-sdk/react'ten useChat kancasını bağlayın - bu otomatik olarak /api/chat'e başvurur ve mesaj akışını oluşturur. Arka uç ise OpenAI'ye değil, Gonka'ya gider.

Kullanıcı arayüzü olmayan betik (Node, akış için asenkron yineleyici):

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('Qwen/Qwen3-235B-A22B-Instruct-2507-FP8'),
  prompt: 'Dağıtık hesaplama hakkında bir haiku yazın',
});

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

Model parametreleri. Gateway aracılığıyla üç model mevcuttur, hepsinin bağlamı 128K tokendir; yanıtın üst sınırı (maxOutputTokens) farklılık gösterir:

  • Qwen/Qwen3-235B-A22B-Instruct-2507-FP8 — varsayılan, 8192 çıktı tokenine kadar;
  • moonshotai/Kimi-K2.63072'ye kadar (Kimi K2.6);
  • MiniMaxAI/MiniMax-M2.74096'ya kadar (MiniMax M2.7).

maxOutputTokens belirtilmezse, akışsız istek için Gateway varsayılan olarak 1500 tokene kadar döner - akışlı sohbetler için değeri açıkça belirtmek daha iyidir.

Maliyet Karşılaştırması

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

SenaryoTokenlarAnthropic / OpenAIJoinGonka Gonka
Sohbette tek mesaj~3K0,01 — 0,05 dolar0,000003 dolar
20 replikli diyalog~150K0,50 — 2,25 dolar0,00015 dolar
RAG yanıtı (arama + üretim)~5K0,015 — 0,05 dolar0,000005 dolar
Araç çağırmalı ajanın adımı~10K0,03 — 0,10 dolar0,00001 dolar
Günde 10.000 istek (üretim)~50M150 — 500 dolar0,05 dolar

JoinGonka'nın fiyatı - girişte 1M token için yaklaşık 0,0005 dolar, çıktı yaklaşık üç kat daha pahalı. Günde binlerce istek alan bir uygulama için bu, yüzlerce dolarlık bir fatura ile sentlik bir fatura arasındaki farktır. Ücretsiz 10M token, bir projeyi üretime çıkmadan önce tamamen çalıştırmak ve hata ayıklamak için yeterlidir.

Araç çağırma ve ajanlar

Vercel AI SDK, araçları tools nesnesi ve zod şeması aracılığıyla deklaratif olarak tanımlar. Qwen3-235B native function calling'i desteklediği için, AI SDK, metin yanıtlarını ayrıştırmadan yapılandırılmış tool_calls alır. stopWhen: stepCountIs(n) parametresi, birkaç adımı art arda çözmeye izin verir - model aracı çağırır, sonucu alır ve akıl yürütmeye 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('Qwen/Qwen3-235B-A22B-Instruct-2507-FP8'),
  stopWhen: stepCountIs(5),
  tools: {
    weather: tool({
      description: 'Bir şehirdeki hava durumunu öğrenin',
      inputSchema: z.object({ city: z.string() }),
      execute: async ({ city }) => ({ city, tempC: 17 }),
    }),
  },
  prompt: 'Moskova'da hava nasıl? Tek cümleyle yanıtla.',
});

console.log(text);

Model weather aracını çağırır, sonucu alır ve nihai yanıtı oluşturur. Tüm döngü Gonka aracılığıyla yaklaşık 0,00001 dolara mal olurken, Anthropic veya OpenAI aracılığıyla 0,03-0,10 dolara mal olur. Her kullanıcı isteğinin 5-10 adıma dönüştüğü ajan uygulamaları için, üretimdeki tasarruflar ayda binlerce dolarla ölçülür.

Python'da bir yapay zeka uygulaması geliştiriyorsanız, LangChain kılavuzuna bakın - orada da OpenAI uyumlu sınıf aracılığıyla aynı yaklaşım vardır.

Vercel AI SDK + Gonka = TypeScript'te üretimde kullanıma hazır yapay zeka uygulamaları kuruşa. createOpenAICompatible, Gateway'i çatallanma olmadan bağlar, generateText ve streamText eskisi gibi çalışır, yerel araç çağırma ve Next.js route işleyicileri — hepsi OpenAI ve Anthropic'te 2,5-15 dolar yerine 1M token için 0,0005 dolar.

Daha fazla bilgi edinmek ister misiniz?

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

10 milyon ücretsiz token alın →