Bilgi Tabanı Bölümleri ▾

Navigasyon

▸ Buradan başlayın Rol bazlı

Kategoriler

Araçlar 32
Sözlük 12

Araçlar

TanStack AI + Gonka — TypeScript'te AI Uygulamaları Kuruşlara

TanStack AI (@tanstack/ai), TanStack ekibinden (Query, Router, Table yazarları) TypeScript için tip güvenli bir SDK'dir. Provider-agnostic mimari: streaming chat, yerel tool calling, ajanlar, yapılandırılmış çıktı ve tek bir adaptör setiyle çok modluluk. React, Vue, Svelte, Solid ve Preact için hazır binding'ler (useChat ve diğer hook'lar) ve sunucu için headless istemci.

Her AI framework'ü ile aynı sorun söz konusu: çıkarım (inference) fiyatı. TanStack AI, OpenAI, Anthropic ve Gemini'yi kutudan çıktığı gibi destekler, ancak bu sağlayıcıların doğrudan tarifeleri ($2.50–15/1M token) üretim aşamasındaki sohbetleri ve ajanları pahalı hale getirir: streaming diyaloglar ve tool döngüleri hızla milyonlarca token tüketir.

TanStack AI'ın temel özelliği openaiCompatible() fonksiyonudur: her türlü OpenAI uyumlu uç noktayı bağlamanın birinci sınıf yolu. Bu, JoinGonka Gateway'in özel adaptörler gerekmeden entegre edilebileceği anlamına gelir; sadece baseURL, anahtar ve model listesini belirtmeniz yeterlidir. Sonuç: aynı tip güvenli sohbet ve ajanlar, ancak OpenAI'daki $2.50–15 yerine merkeziyetsiz Gonka ağı üzerinden $0.003/1M token maliyetle.

Adım 1: TanStack AI'yı yükleyin ve bir anahtar alın

Paket kurulumu (çekirdek + openaiCompatible'ın bulunduğu OpenAI adaptörü):

# pnpm
pnpm add @tanstack/ai @tanstack/ai-openai

# npm
npm install @tanstack/ai @tanstack/ai-openai

React üzerinde bir sohbet arayüzü için istemci ve kancaları ekleyin:

pnpm add @tanstack/ai-client @tanstack/ai-react

JoinGonka API Anahtarı: Hala yoksa - gate.joingonka.ai/register adresine kaydolun, 10M ücretsiz token alın ve Kontrol Paneli → API Anahtarları bölümünde jg-xxx anahtarını oluşturun. Tek bir anahtar ve tek bir bakiye, hem OpenAI hem de Anthropic formatı için çalışır.

Adım 2: Gonka'yı openaiCompatible aracılığıyla bağlayın

TanStack AI içinde, özel OpenAI uyumlu sağlayıcı openaiCompatible() fonksiyonu ile yapılandırılır: Bir kez baseURL, apiKey ve model listesini tanımlarsınız, ardından her çağrıda modeli seçersiniz. Gateway'imiz Chat Completions formatını kullandığı için api: 'chat-completions' değerini bırakıyoruz (varsayılan değerdir).

import { openaiCompatible } from '@tanstack/ai-openai'

// Gonka sağlayıcısı — tek seferlik yapılandırma
export const gonka = openaiCompatible({
  name: 'gonka',
  baseURL: 'https://gate.joingonka.ai/v1',
  apiKey: process.env.GONKA_API_KEY!, // jg-anahtarınız
  api: 'chat-completions',
  models: [
    'moonshotai/Kimi-K2.6', // varsayılan
    'MiniMaxAI/MiniMax-M2.7',
  ],
})

Sunucu tarafında Streaming-chat (örneğin herhangi bir fullstack framework veya TanStack Start içindeki route-handler). Yanıt uzunluğunu modelOptions üzerinden ayarlıyoruz — bu, native wire parametreleri (max_tokens, temperature) için tek noktadır:

import { chat, toServerSentEventsResponse } from '@tanstack/ai'
import { gonka } from './gonka'

export async function POST(request: Request) {
  const { messages } = await request.json()

  const stream = chat({
    adapter: gonka('MiniMaxAI/MiniMax-M2.7'),
    messages,
    modelOptions: { max_tokens: 8192 }, // Gateway üzerinden çıktı sınırı
  })

  return toServerSentEventsResponse(stream)
}

React-client ise useChat hook'u üzerinden sunucudan gelen yanıtları UI'ya stream eder:

import { useChat } from '@tanstack/ai-react'

function Chat() {
  const { messages, sendMessage, status } = useChat({ api: '/api/chat' })

  return (
    <div>
      {messages.map((m) => (
        <p key={m.id}><b>{m.role}:</b> {m.content}</p>
      ))}
      <button onClick={() => sendMessage('Gonka nedir?')}>
        Sor
      </button>
    </div>
  )
}

Sunucusuz: Aynı sağlayıcı doğrudan bir script veya backend içinde çalışır — chat() fonksiyonunu çağırın ve stream'i okuyun. Gonka bağlantısı tüm varyantlar için aynıdır.

Gateway üzerinden model parametreleri: Her iki modelin bağlam (context) kapasitesi 200K token'dır. max_tokens sınırı, ağdaki tüm modeller için 8192'dir. Eğer max_tokens belirtilmezse, non-stream için varsayılan değer 1500'dür, bu yüzden uzun yanıtlar için bunu açıkça belirtin.

Maliyet Karşılaştırması

TanStack AI, hem doğrudan OpenAI/Anthropic tarifeleriyle hem de Gonka ile aynı kolaylıkla çalışır; sadece baseURL değişir. Ancak fiyat kat kat farklıdır. TanStack AI üzerindeki tipik bir üretim uygulaması yüklerini karşılaştıralım:

SenaryoTokenOpenAI / AnthropicJoinGonka Gonka
Bir streaming sohbet yanıtı~3K$0.008 — $0.045$0.000014
Tool calling içeren ajan döngüsü~15K$0.04 — $0.22$0.000072
Günde 1 000 diyalog~3M$7.50 — $45$0.014
Üretim ayı (~100M)~100M$250 — $1 500$0.48

TanStack AI'ın provider-agnostic yaklaşımı, Gonka'ya geçişin kodu yeniden yazmadan sadece bir satır (baseURL) düzeltme gerektirdiğini gösterir. Bu esnada tip güvenli tool'larınız, yapılandırılmış çıktınız ve React hook'larınız değişmez. Binlerce kullanıcısı olan bir uygulama için fark ayda on binlerce dolardır.

Gonka fiyatı: giriş ~$0.003/1M token, çıkış ×3. Bu, OpenAI ve Anthropic'in doğrudan tarifelerinden yüzlerce/binlerce kat daha ucuzdur.

Tip güvenli araçlar ve model seçimi

TanStack AI'ın ana özelliği, tek tip toolDefinition() sözleşmesidir: Bir araç bir kez tanımlanır (Zod, ArkType, Valibot veya JSON Schema aracılığıyla giriş/çıkış), uygulama ise sunucu veya client tarafında bağlanır. Kimi K2.6 ve MiniMax-M2.7, Gonka üzerinden native tool calling desteği sunar, bu sayede metin yanıtlarını ayrıştırmanıza gerek kalmadan ajanlar güvenilir bir şekilde çalışır.

import { chat, toolDefinition } from '@tanstack/ai'
import { gonka } from './gonka'
import { z } from 'zod'

const getWeather = toolDefinition({
  name: 'getWeather',
  description: 'Şehirdeki hava durumunu öğren',
  inputSchema: z.object({ city: z.string() }),
  outputSchema: z.object({ tempC: z.number() }),
}).server(async ({ city }) => {
  return { tempC: 21 } // gerçek API çağrınız
})

const stream = chat({
  adapter: gonka('MiniMaxAI/MiniMax-M2.7'),
  messages: [{ role: 'user', content: 'Moskova\'da hava durumu nasıl?' }],
  tools: [getWeather],
  modelOptions: { max_tokens: 8192 },
})

Hangi modeli seçmeli:

  • moonshotai/Kimi-K2.6 — kodlama, muhakeme (reasoning) ve ajan senaryolarında güçlüdür. Yanıt sınırı 8192.
  • MiniMaxAI/MiniMax-M2.7 — varsayılan, hız ve kalite dengesi, uzun bağlam. Yanıt sınırı 8192.

TanStack AI'daki runtime adapter switching sayesinde her iki modeli tek sağlayıcıda tutabilir ve anlık olarak aralarında geçiş yapabilirsiniz — örneğin, ağır ajan görevleri için Kimi, hızlı yanıtlar için MiniMax.

TanStack AI + Gonka = TypeScript tabanlı, tip güvenli, çok düşük maliyetli AI uygulamaları. openaiCompatible üzerinden bağlantı tek satırda yapılır ve streaming chat, ajanlar ve tool'lar OpenAI'daki $2.50–15 yerine $0.003/1M token maliyetle çalışır. 10M ücretsiz token binlerce diyalog için yeterlidir.

Daha fazla bilgi edinmek ister misiniz?

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

10M ücretsiz jeton alın →