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

การนำทาง

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

หมวดหมู่

เครื่องมือ 37
อภิธานศัพท์ 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.0069/1M tokens สำหรับ input ซึ่งถูกกว่าหลายสิบเท่า

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

JoinGonka API key: ลงทะเบียนที่ gate.joingonka.ai/register — เราแจก 3M โทเค็นฟรี ตั้งแต่เริ่มต้น ใน Dashboard ให้สร้างคีย์โดยใช้คำนำหน้า jg-

การติดตั้งแพ็คเกจ สำหรับ OpenAI-compatible endpoint แบบกำหนดเอง 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: 'อธิบายว่าเครือข่ายอินเฟอเรนซ์แบบกระจายศูนย์คืออะไร',
});

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

// อนุญาตให้สตรีมได้สูงสุด 30 วินาที
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: 'คุณเป็นผู้ช่วยที่มีประโยชน์ ตอบให้สั้นและตรงประเด็น',
    messages: convertToModelMessages(messages),
    maxOutputTokens: 8192, // จำกัดผลลัพธ์ผ่าน Gateway
  });

  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: 'เขียนไฮกุเกี่ยวกับการประมวลผลแบบกระจายตัว',
});

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

พารามิเตอร์ของโมเดล ผ่าน Gateway มีโมเดลให้ใช้งาน 3 รุ่น: บริบท 200K โทเคนสำหรับ 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.0069 ต่อ 1M โทเค็นขาเข้า ส่วนขาออกจะมีราคาแพงกว่าประมาณสามเท่า สำหรับแอปพลิเคชันที่มีคำขอหลายพันครั้งต่อวัน นี่คือความแตกต่างระหว่างค่าใช้จ่ายหลักร้อยดอลลาร์กับค่าใช้จ่ายเพียงไม่กี่เซนต์ โทเค็นฟรี 3M ก็เพียงพอที่จะเริ่มรันคำขอแรกของโปรเจกต์คุณได้แล้ว

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

Vercel AI SDK อธิบายเครื่องมือแบบประกาศผ่านวัตถุ tools และโครงสร้าง zod โมเดลในเครือข่ายรองรับ 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: 'Узнать погоду в городе',
      inputSchema: z.object({ city: z.string() }),
      execute: async ({ city }) => ({ city, tempC: 17 }),
    }),
  },
  prompt: 'Какая погода в Москве? Ответь одним предложением.',
});

console.log(text);

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

หากคุณกำลังสร้างแอปพลิเคชัน AI ด้วย Python ให้ดูคู่มือเกี่ยวกับ LangChain ซึ่งใช้วิธีการเดียวกันผ่านคลาสที่เข้ากันได้กับ OpenAI

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

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

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

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