ส่วนของฐานความรู้ ▾

การนำทาง

▸ เริ่มต้นที่นี่ ตามบทบาท

หมวดหมู่

เครื่องมือ 54
อภิธานศัพท์ 12

เครื่องมือ

Vercel AI SDK + Gonka AI — แอปพลิเคชัน AI บน TypeScript ราคาถูก

Vercel AI SDK เป็น SDK ที่ได้รับความนิยมสูงสุดสำหรับการสร้างแอปพลิเคชัน AI บน TypeScript และ JavaScript ด้วย API เดียวอย่าง generateText และ streamText, การสตรีมผลลัพธ์ไปยัง UI, tool calling แบบเนทีฟ, และตัวช่วยสำเร็จรูปสำหรับ Next.js App Router — มีทุกอย่างที่คุณต้องการสำหรับแชทบอท, เอเจนต์, และ RAG-pipelines บนเว็บ

ปัญหาคือเรื่องเดียวกับแอป LLM ทั่วไป นั่นคือราคาของผู้ให้บริการ อินเทอร์เฟซแชทแบบสตรีมมิ่งจะส่งประวัติการสนทนาในทุกข้อความ และเอเจนต์จะดึงบริบทผ่านขั้นตอนต่างๆ มากมาย ด้วยราคาของ Anthropic ($3-15/1M) และ OpenAI ($2.5-10/1M) แม้แต่โปรเจกต์ pet-project เล็กๆ ที่ใช้งานจริง (prod) ก็อาจกลายเป็นค่าใช้จ่ายหลายร้อยดอลลาร์ต่อเดือนได้

JoinGonka Gateway — คือเอนด์พอยต์ที่เข้ากันได้กับ OpenAI ซึ่งอยู่เหนือ เครือข่ายแบบกระจายศูนย์ Gonka Vercel AI SDK สามารถเชื่อมต่อกับมันได้เหมือนกับผู้ให้บริการที่เข้ากันได้กับ OpenAI อื่นๆ — ไม่ต้อง fork, ไม่ต้องใช้ adapter ของตัวเอง โมเดลเปิดตัวเดียวกันกับโฮสต์เชิงพาณิชย์ — MiniMax M2.7, DeepSeek V4 Flash และ GLM-5.3 Flash — ใช้ streamText ตัวเดิม แต่ด้วยราคาเพียง $0.0062/1M tokens สำหรับ input ซึ่งถูกกว่าหลายสิบเท่า

ขั้นตอนที่ 1: รับคีย์และเชื่อมต่อผู้ให้บริการ

คีย์ API ของ JoinGonka: ลงทะเบียนที่ gate.joingonka.ai/register — เริ่มต้นเราแจก โทเคนฟรี 3M ใน 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: 'Explain what a decentralized inference network is',
});

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 route handler

จุดเด่นที่สุดของ Vercel AI SDK คือการส่งคำตอบแบบสตรีม ฟังก์ชัน streamText เริ่มสตรีมโทเคนทันที และตัวช่วย toUIMessageStreamResponse() ส่งสตรีมที่พร้อมใช้กลับจาก route handler ใน Next.js App Router ได้เลย

เซิร์ฟเวอร์แฮนด์เลอร์ 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();
}

ฝั่งไคลเอนต์ให้เชื่อมฮุก useChat จาก @ai-sdk/react — มันจะเรียก /api/chat เองและเรนเดอร์สตรีมข้อความให้ แบ็กเอนด์จะยิงไปที่ Gonka ไม่ใช่ OpenAI

สคริปต์แบบไม่มี UI (Node, 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);
}

พารามิเตอร์ของโมเดล ผ่าน Gateway มีสามโมเดลให้ใช้: คอนเท็กซ์ 180K โทเคนสำหรับ MiniMax M2.7, 380K สำหรับ DeepSeek V4 Flash และ 390K สำหรับ GLM-5.3 Flash; เพดานคำตอบ (maxOutputTokens) คือ 8192 สำหรับ MiniMax M2.7 และ GLM-5.3 Flash, 32768 สำหรับ DeepSeek V4 Flash:

  • MiniMaxAI/MiniMax-M2.7 — ค่าเริ่มต้น (MiniMax M2.7);
  • deepseek-ai/DeepSeek-V4-Flash-0731 (DeepSeek V4 Flash, คอนเท็กซ์ 380K);
  • zai-org/GLM-5.3-Flash (GLM-5.3 Flash, โมเดล reasoning — คิดก่อนตอบ)

ถ้าไม่กำหนด maxOutputTokens สำหรับคำขอแบบ non-stream Gateway จะคืนค่าเริ่มต้นสูงสุด 1500 โทเคน — สำหรับแชตแบบสตรีมมิ่ง แนะนำให้ระบุค่าอย่างชัดเจน

การเปรียบเทียบค่าใช้จ่าย

โดยปกติแล้ว Vercel AI SDK จะอยู่เบื้องหลังอินเทอร์เฟซแบบโต้ตอบ เช่น แชท, เอเจนท์ หรือผู้ช่วยในแอปพลิเคชัน ข้อความแต่ละข้อความจะดึงประวัติการสนทนามาด้วย และแต่ละขั้นตอนของเอเจนท์จะมาพร้อมกับบริบทของเครื่องมือ ดังนั้นค่าใช้จ่ายจริงไม่ได้คำนวณจากคำขอเดียว แต่คำนวณจากภาระงานจริง (production load) มาเปรียบเทียบสถานการณ์ทั่วไปกัน:

สถานการณ์โทเค็นAnthropic / OpenAIJoinGonka Gonka
ข้อความในแชท 1 ข้อความ~3K$0.01 — $0.05$0.000028
การสนทนา 20 ครั้ง~150K$0.50 — $2.25$0.0014
คำตอบ RAG (ค้นหา + สร้าง)~5K$0.015 — $0.05$0.000048
ขั้นตอนของเอเจนท์พร้อม tool calling~10K$0.03 — $0.10$0.000096
10,000 คำขอต่อวัน (โปรดักชั่น)~50M$150 — $500$0.48

ราคาของ JoinGonka อยู่ที่ประมาณ $0.0062 ต่อ 1M โทเค็นขาเข้า ส่วนขาออกจะมีราคาแพงกว่าประมาณสามเท่า สำหรับแอปพลิเคชันที่มีคำขอหลายพันครั้งต่อวัน นี่คือความแตกต่างระหว่างค่าใช้จ่ายหลักร้อยดอลลาร์กับค่าใช้จ่ายเพียงไม่กี่เซนต์ โทเค็นฟรี 3M ก็เพียงพอที่จะเริ่มรันคำขอแรกของโปรเจกต์คุณได้แล้ว

Tool calling และเอเจนต์

Vercel AI SDK ประกาศเครื่องมือแบบ declarative ผ่านออบเจ็กต์ tools และสคีมา zod โมเดลในเครือข่ายรองรับ native 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: '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);

โมเดลเรียกเครื่องมือ weather รับผลลัพธ์ แล้วสร้างคำตอบสุดท้าย วัฏจักรทั้งหมดมีค่าใช้จ่ายประมาณ $0.000048 ผ่าน Gonka เทียบกับ $0.03-0.10 ของ Anthropic หรือ OpenAI สำหรับแอปพลิเคชันแบบ agent ที่แต่ละคำขอของผู้ใช้ขยายเป็น 5-10 ขั้นตอน การประหยัดในโปรดักชันคิดเป็นหลายพันดอลลาร์ต่อเดือน

หากคุณสร้างแอป AI ด้วย Python ลองดูคำแนะนำเกี่ยวกับ LangChain — ที่นั่นใช้แนวทางเดียวกันผ่านคลาสที่เข้ากันได้กับ OpenAI

Vercel AI SDK + Gonka = แอปพลิเคชัน AI สำหรับ production ด้วย TypeScript ในราคาประหยัด createOpenAICompatible เชื่อมต่อ Gateway ได้โดยไม่ต้องทำ fork, ใช้งาน generateText และ streamText ได้ตามปกติ, รองรับ native tool calling และ Next.js route handlers ทั้งหมดนี้ในราคา $0.0062/1M โทเค็น แทนที่จะเป็น $2.5-15 เหมือนกับ OpenAI และ Anthropic

ต้องการเรียนรู้เพิ่มเติมหรือไม่?

สำรวจส่วนอื่นๆ หรือเริ่มรับ GNK ทันที

รับโทเค็นฟรี →