Mga Seksyon ng Base ng Kaalaman ▾

Mga Gamit

Mga Tool

Vercel AI SDK + Gonka AI — AI Applications sa TypeScript sa Maliit na Halaga

Ang Vercel AI SDK ay ang pinakapopular na SDK para sa paglikha ng mga AI application sa TypeScript at JavaScript. Isang pinag-isang API na generateText at streamText, streaming output sa UI, native tool calling, handa nang mga helper para sa Next.js App Router — lahat ng kailangan para sa mga chatbot, ahente at RAG-pipelines sa web.

Ang problema ay pareho sa anumang LLM application — ang presyo ng provider. Ang isang streaming chat interface ay nagpapadala ng kasaysayan ng diyalogo sa bawat mensahe, ang isang ahente ay nagpapalipat-lipat ng konteksto sa dose-dosenang mga hakbang. Sa mga presyo ng Anthropic ($3-15/1M) at OpenAI ($2.5-10/1M), kahit isang simpleng pet-project sa prod ay nagiging isang bill na daan-daang dolyar bawat buwan.

Ang JoinGonka Gateway — ay isang OpenAI-compatible endpoint sa itaas ng desentralisadong network ng Gonka. Ikokonekta ng Vercel AI SDK dito tulad ng sa anumang OpenAI-compatible na provider — nang walang fork, nang walang sariling mga adapter. Ang parehong modelo na Qwen3-235B, ang parehong streamText, ngunit para sa $0.0005/1M token sa input — daan-daan hanggang libu-libong beses na mas mura.

Hakbang 1: Kumuha ng Susi at Ikonekta ang Provider

API Key ng JoinGonka: magparehistro sa gate.joingonka.ai/register — sa simula ay binibigyan ka namin ng 10M na libreng token. Sa Dashboard, lumikha ng key na may prefix na jg-.

Pag-install ng Pakete. Para sa custom na OpenAI-compatible na endpoint, inirerekomenda ng Vercel AI SDK ang provider na @ai-sdk/openai-compatible:

npm install ai @ai-sdk/openai-compatible

Minimal na Koneksyon — lumikha ng isang instance ng provider sa pamamagitan ng createOpenAICompatible at tawagin ang 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('Qwen/Qwen3-235B-A22B-Instruct-2507-FP8'),
  prompt: 'Ipaliwanag kung ano ang isang desentralisadong network ng inference',
});

console.log(text);

Awtomatikong idinagdag ng parameter na apiKey ang header na Authorization: Bearer jg-your-key — hindi na kailangan ng hiwalay na setup. Itago ang key sa isang environment variable na GONKA_API_KEY (halimbawa, sa .env.local), at hindi sa code.

Alternatibo — package @ai-sdk/openai na may pabrika createOpenAI({ baseURL, apiKey }). Parehong gumagana ang dalawang paraan; para sa mga endpoint na hindi pag-aari ng OpenAI, inirerekomenda ng dokumentasyon ng AI SDK ang @ai-sdk/openai-compatible — hindi ito humihila ng labis na mga assumption na partikular sa OpenAI.

Hakbang 2: Streaming at Next.js route handler

Ang pangunahing feature ng Vercel AI SDK — sabay-sabay na paghahatid ng tugon. Ang function na streamText ay nagsisimulang mag-stream ng mga token kaagad, at ang helper na toUIMessageStreamResponse() ay naghahatid ng handa nang stream direkta mula sa route handler sa 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,
});

// pahintulutan ang streaming hanggang 30 segundo
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: 'Ikaw ay isang kapaki-pakinabang na assistant. Sumagot nang maikli at diretso sa punto.',
    messages: convertToModelMessages(messages),
    maxOutputTokens: 8192, // limitasyon ng Qwen3-235B sa pamamagitan ng Gateway
  });

  return result.toUIMessageStreamResponse();
}

Sa client, ikonekta ang hook na useChat mula sa @ai-sdk/react — awtomatiko itong tumatawag sa /api/chat at nagre-render ng stream ng mga mensahe. Ang backend naman ay kumukonnect sa Gonka, at hindi sa OpenAI.

Script na walang UI (Node, async-iterator sa stream):

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: 'Sumulat ng haiku tungkol sa distributed computing',
});

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

Mga Parameter ng Modelo. Sa pamamagitan ng Gateway, may tatlong models na available, lahat ay may 128K tokens na konteksto; magkaiba ang output limit (maxOutputTokens):

  • Qwen/Qwen3-235B-A22B-Instruct-2507-FP8 — default, hanggang 8192 na output tokens;
  • moonshotai/Kimi-K2.6 — hanggang 3072 (Kimi K2.6);
  • MiniMaxAI/MiniMax-M2.7 — hanggang 4096 (MiniMax M2.7).

Kung ang maxOutputTokens ay hindi tinukoy, para sa non-stream na kahilingan, ang Gateway ay sa default ay magbabalik ng hanggang 1500 na token — para sa mga streaming chat, mas mahusay na tukuyin nang malinaw ang halaga.

Paghahambing ng Gastos

Ang Vercel AI SDK ay karaniwang nasa likod ng isang interactive na interface — chat, ahente, katulong sa application. Ang bawat mensahe ay humihila ng kasaysayan ng diyalogo, ang bawat hakbang ng ahente — ang konteksto ng mga tool. Samakatuwid, ang aktwal na gastos ay kinakalkula hindi sa bawat kahilingan, kundi sa workload ng produkto. Paghambingin natin ang tipikal na mga senaryo:

ScenarioTokensAnthropic / OpenAIJoinGonka Gonka
Isang mensahe sa chat~3K$0.01 — $0.05$0.000003
Diyalogo ng 20 replika~150K$0.50 — $2.25$0.00015
RAG-sagot (paghahanap + henerasyon)~5K$0.015 — $0.05$0.000005
Hakbang ng ahente na may tool calling~10K$0.03 — $0.10$0.00001
10,000 requests bawat araw (prod)~50M$150 — $500$0.05

Ang presyo ng JoinGonka ay humigit-kumulang $0.0005 bawat 1M token sa input, ang output ay halos tatlong beses na mas mahal. Para sa isang application na may libu-libong kahilingan bawat araw, ito ang pagkakaiba sa pagitan ng isang bill na daan-daang dolyar at isang bill na mga sentimo. Sapat na ang libreng 10M token upang ganap na mapatakbo at ma-debug ang proyekto bago ito ilunsad.

Pagtawag ng Tool at mga Ahente

Inilalarawan ng Vercel AI SDK ang mga tool nang deklaratibo sa pamamagitan ng object na tools at schema ng zod. Sinusuportahan ng Qwen3-235B ang native function calling, kaya nakukuha ng AI SDK ang structured na tool_calls nang walang pag-parse ng mga text na sagot. Pinapayagan ng parameter na stopWhen: stepCountIs(n) ang ilang magkakasunod na hakbang — tumatawag ang modelo ng tool, nakakakuha ng resulta at nagpapatuloy.

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: 'Alamin ang panahon sa lungsod',
      inputSchema: z.object({ city: z.string() }),
      execute: async ({ city }) => ({ city, tempC: 17 }),
    }),
  },
  prompt: 'Anong panahon sa Moscow? Sagutin sa isang pangungusap.',
});

console.log(text);

Tinatawagan ng modelo ang tool na weather, nakukuha ang resulta at bumubuo ng pangwakas na sagot. Ang buong cycle ay nagkakahalaga ng humigit-kumulang $0.00001 sa pamamagitan ng Gonka kumpara sa $0.03-0.10 sa Anthropic o OpenAI. Para sa mga application ng ahente, kung saan ang bawat kahilingan ng user ay nagbubukas sa 5-10 hakbang, ang pag-iimpok sa produksyon ay sinusukat sa libu-libong dolyar bawat buwan.

Kung bumubuo ka ng AI application sa Python, tingnan ang gabay sa LangChain — doon ay pareho ang diskarte sa pamamagitan ng OpenAI-compatible na klase.

Vercel AI SDK + Gonka = production-ready AI applications sa TypeScript sa maliit na halaga. createOpenAICompatible kinokonekta ang Gateway nang walang forks, gumagana ang generateText at streamText gaya ng dati, native tool calling at Next.js route handlers — lahat sa $0.0005/1M token sa halip na $2.5-15 sa OpenAI at Anthropic.

Gusto mo pang matuto?

Galugarin ang iba pang mga seksyon o simulang kumita ng GNK ngayon.

Kumuha ng libreng 10M token →