Các phần cơ sở kiến thức ▾
Điều hướng
▸ Bắt đầu tại đây Theo vai tròDanh mục
- Cursor + Gonka AI — LLM giá rẻ để viết mã
- Claude Code + Gonka AI — LLM cho thiết bị đầu cuối
- OpenClaw + Gonka AI — tác nhân AI giá cả phải chăng
- OpenCode + Gonka AI — AI miễn phí cho mã
- Continue.dev + Gonka AI — AI cho VS Code/JetBrains
- Cline + Gonka AI — tác nhân AI trong VS Code
- Aider + Gonka AI — lập trình cặp đôi với AI
- LangChain + Gonka AI — ứng dụng AI giá rẻ
- n8n + Gonka AI — tự động hóa với AI giá rẻ
- Open WebUI + Gonka AI — ChatGPT của riêng bạn
- LibreChat + Gonka AI — ChatGPT mã nguồn mở
- Hermes Agent + Gonka AI — tác nhân tự động với chi phí thấp
- Kilo Code + Gonka AI — Tác nhân AI trong VS Code
- Roo Code + Gonka AI — tác nhân AI tự động trong VS Code
- LlamaIndex + Gonka AI — Ứng dụng RAG giá rẻ
- PydanticAI + Gonka — các tác nhân AI có kiểu dữ liệu với chi phí thấp
- Vercel AI SDK + Gonka AI — Ứng dụng AI trên TypeScript giá rẻ
- TanStack AI + Gonka — Ứng dụng AI trên TypeScript giá rẻ
- Khởi động nhanh API — curl, Python, TypeScript
- JoinGonka Gateway — đánh giá đầy đủ
- Management Keys — SaaS trên Gonka
- API AI rẻ nhất: so sánh các nhà cung cấp 2026
- Hết giới hạn yêu cầu Cursor Pro — phân tích và giải pháp thay thế giá rẻ
- Claude Code rẻ hơn — phân tích hóa đơn và chuyển đổi
- Cline tiêu tốn nhiều tiền — tại sao tác nhân lại tốn kém như vậy
- OpenClaw đắt đỏ — tại sao tác nhân đốt token và cách tiết kiệm
- OpenRouter: giải pháp thay thế giá rẻ — so sánh với JoinGonka Gateway
- Mô hình AI tốt nhất cho lập trình năm 2026: so sánh và giá cả
- Giải pháp thay thế GitHub Copilot giá rẻ không giới hạn
- Giải pháp thay thế Windsurf giá rẻ, không credit và không giới hạn
- API rẻ nhất cho AI agent năm 2026
- ZCode: suy luận GLM giá rẻ thay thế cho GLM Coding Plan
Công cụ
TanStack AI + Gonka — Ứng dụng AI trên TypeScript giá rẻ
TanStack AI (@tanstack/ai) là một SDK an toàn kiểu dữ liệu (type-safe) cho TypeScript từ nhóm TanStack (tác giả của Query, Router, Table). Kiến trúc Provider-agnostic: trò chuyện trực tuyến (streaming-chat), tool calling gốc, đại lý (agents), xuất dữ liệu có cấu trúc và đa phương thức thông qua một bộ adapter thống nhất. Các binding đã sẵn sàng cho React, Vue, Svelte, Solid và Preact (useChat và các hook khác) cộng với headless-client cho phía server.
Vấn đề vẫn tương tự như bất kỳ framework AI nào khác — chi phí inference. TanStack AI hỗ trợ sẵn OpenAI, Anthropic và Gemini, nhưng biểu giá trực tiếp của các nhà cung cấp này ($2.50–15 cho mỗi 1M token) khiến cho trò chuyện production và các đại lý trở nên đắt đỏ: các cuộc đối thoại streaming và vòng lặp công cụ nhanh chóng tiêu tốn hàng triệu token.
Đặc điểm chính của TanStack AI là hàm openaiCompatible(): cách tốt nhất để kết nối bất kỳ endpoint nào tương thích với OpenAI. Điều này có nghĩa là JoinGonka Gateway tích hợp mà không cần adapter tùy chỉnh — bạn chỉ cần chỉ định baseURL, khóa và danh sách các mô hình. Kết quả: cùng một kiểu trò chuyện an toàn và đại lý, nhưng với chi phí $0.003/1M token thông qua mạng lưới phi tập trung Gonka thay vì $2.50–15 tại OpenAI.
Bước 1: Cài đặt TanStack AI và nhận khóa
Cài đặt gói (phần cốt lõi + bộ điều hợp OpenAI, nơi chứa openaiCompatible):
# pnpm
pnpm add @tanstack/ai @tanstack/ai-openai
# npm
npm install @tanstack/ai @tanstack/ai-openaiĐối với giao diện trò chuyện trên React, hãy thêm client và hook:
pnpm add @tanstack/ai-client @tanstack/ai-reactAPI-key JoinGonka: nếu chưa có, hãy đăng ký tại gate.joingonka.ai/register, nhận 10 triệu token miễn phí và tạo khóa jg-xxx trong Dashboard → API Keys. Một khóa và một số dư hoạt động cho cả định dạng OpenAI và Anthropic.
Bước 2: Kết nối Gonka qua openaiCompatible
Trong TanStack AI, một provider tùy chỉnh tương thích với OpenAI được thiết lập bằng hàm openaiCompatible(): bạn cấu hình baseURL, apiKey và danh sách các mô hình một lần, sau đó chọn mô hình cho mỗi lần gọi. Gateway của chúng tôi sử dụng định dạng Chat Completions, vì vậy chúng tôi để api: 'chat-completions' (đây là giá trị mặc định).
import { openaiCompatible } from '@tanstack/ai-openai'
// Provider Gonka — thiết lập một lần
export const gonka = openaiCompatible({
name: 'gonka',
baseURL: 'https://gate.joingonka.ai/v1',
apiKey: process.env.GONKA_API_KEY!, // jg-your-key
api: 'chat-completions',
models: [
'moonshotai/Kimi-K2.6', // mặc định
'MiniMaxAI/MiniMax-M2.7',
],
})Streaming chat trên server (ví dụ: route handler trong bất kỳ fullstack framework nào hoặc TanStack Start). Chúng ta thiết lập độ dài phản hồi thông qua modelOptions — đây là điểm duy nhất cho các tham số wire gốc (max_tokens, temperature):
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 }, // giới hạn output thông qua Gateway
})
return toServerSentEventsResponse(stream)
}React-client thông qua hook useChat — stream phản hồi từ server ra UI:
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 là gì?')}>
Hỏi
</button>
</div>
)
}Không cần server: cùng một provider hoạt động trực tiếp trong script hoặc backend — hãy gọi chat() và đọc luồng (stream). Kết nối tới Gonka là giống nhau cho mọi phương thức.
Tham số mô hình qua Gateway: ngữ cảnh (context) cho cả hai mô hình là 200K token. Giới hạn max_tokens là 8192 cho tất cả các mô hình trong mạng lưới. Nếu max_tokens không được chỉ định, mặc định cho non-stream là 1500, vì vậy hãy đặt nó một cách rõ ràng cho các phản hồi dài.
So sánh chi phí
TanStack AI hoạt động tiện lợi qua cả mức giá trực tiếp của OpenAI/Anthropic và qua Gonka — chỉ cần thay đổi baseURL. Nhưng giá cả chênh lệch tới hàng chục lần. Hãy so sánh các tải trọng điển hình của ứng dụng production trên TanStack AI:
| Kịch bản | Token | OpenAI / Anthropic | JoinGonka Gonka |
|---|---|---|---|
| Một câu trả lời streaming | ~3K | $0.008 — $0.045 | $0.000014 |
| Vòng lặp đại lý với tool calling | ~15K | $0.04 — $0.22 | $0.000072 |
| 1 000 cuộc trò chuyện mỗi ngày | ~3M | $7.50 — $45 | $0.014 |
| Tháng production (~100M) | ~100M | $250 — $1 500 | $0.48 |
Cách tiếp cận Provider-agnostic của TanStack AI có nghĩa là việc chuyển sang Gonka chỉ cần chỉnh sửa một dòng (baseURL), thay vì viết lại mã. Đồng thời, các công cụ type-safe, đầu ra có cấu trúc và React-hook của bạn vẫn không thay đổi. Đối với một ứng dụng có hàng nghìn người dùng, sự khác biệt là hàng chục nghìn đô la mỗi tháng.
Giá của Gonka: đầu vào ~$0.003 cho 1M token, đầu ra ×3. Mức giá này rẻ hơn hàng trăm đến hàng nghìn lần so với biểu giá trực tiếp của OpenAI và Anthropic.
Công cụ an toàn kiểu và lựa chọn mô hình
Tính năng chính của TanStack AI là hợp đồng thống nhất toolDefinition(): một công cụ được mô tả một lần (input/output thông qua Zod, ArkType, Valibot hoặc JSON Schema), và việc triển khai được gắn vào phía server hoặc client. Kimi K2.6 và MiniMax-M2.7 hỗ trợ native tool calling thông qua Gonka, vì vậy các agent hoạt động đáng tin cậy — mà không cần phải phân tích cú pháp các phản hồi văn bản.
import { chat, toolDefinition } from '@tanstack/ai'
import { gonka } from './gonka'
import { z } from 'zod'
const getWeather = toolDefinition({
name: 'getWeather',
description: 'Kiểm tra thời tiết ở một thành phố',
inputSchema: z.object({ city: z.string() }),
outputSchema: z.object({ tempC: z.number() }),
}).server(async ({ city }) => {
return { tempC: 21 } // gọi API thực tế của bạn
})
const stream = chat({
adapter: gonka('MiniMaxAI/MiniMax-M2.7'),
messages: [{ role: 'user', content: 'Thời tiết ở Moscow thế nào?' }],
tools: [getWeather],
modelOptions: { max_tokens: 8192 },
})Chọn mô hình nào:
- moonshotai/Kimi-K2.6 — mạnh về lập trình, suy luận và các kịch bản agent. Giới hạn phản hồi 8192.
- MiniMaxAI/MiniMax-M2.7 — mặc định, cân bằng giữa tốc độ và chất lượng, ngữ cảnh dài. Giới hạn phản hồi 8192.
Nhờ tính năng runtime adapter switching trong TanStack AI, bạn có thể giữ cả hai mô hình trong cùng một provider và chuyển đổi giữa chúng một cách tức thì — ví dụ: các tác vụ agent phức tạp sử dụng Kimi, các phản hồi nhanh sử dụng MiniMax.
Muốn tìm hiểu thêm?
Khám phá các phần khác hoặc bắt đầu kiếm GNK ngay bây giờ.
Nhận 10M tokens miễn phí →