Sezioni dell'archivio conoscenza ▾
Navigazione
▸ Inizia qui Per ruoloCategorie
- Cursor + Gonka AI — LLM economico per la codifica
- Claude Code + Gonka AI — LLM per terminale
- OpenClaw + Gonka AI — agenti AI accessibili
- OpenCode: il tuo modello nel terminale
- Continue.dev + Gonka AI — AI per VS Code/JetBrains
- Cline + Gonka AI — Agente AI in VS Code
- Aider + Gonka AI — Programmazione a coppie con AI
- LangChain + Gonka AI — Applicazioni AI a un costo minimo
- n8n + Gonka AI — automazione con AI economica
- Open WebUI + Gonka AI — il tuo ChatGPT
- LibreChat + Gonka AI — ChatGPT open-source
- Hermes Agent + DeepSeek sulla rete Gonka — agente autonomo a costi irrisori
- Kilo Code + Gonka AI — agente AI in VS Code
- Roo Code + Gonka AI — agente AI autonomo in VS Code
- LlamaIndex + Gonka AI — Applicazioni RAG a basso costo
- PydanticAI + Gonka — Agenti AI tipizzati a basso costo
- Vercel AI SDK + Gonka AI — Applicazioni AI in TypeScript a basso costo
- TanStack AI + Gonka — Applicazioni AI in TypeScript a basso costo
- Avvio rapido API — curl, Python, TypeScript
- JoinGonka Gateway — panoramica completa
- Management Keys — SaaS su Gonka
- L'API AI più economica: confronto tra i fornitori 2026
- Limite di richieste Cursor Pro raggiunto — analisi e alternativa economica
- Claude Code costa meno — analisi del conto e switch
- Cline brucia soldi — perché l'agente consuma così tanto
- OpenClaw costa caro: perché l'agente brucia token e come risparmiare
- OpenRouter: un'alternativa economica — confronto con JoinGonka Gateway
- Il miglior modello AI per il coding nel 2026: confronto e prezzi
- Alternativa economica a GitHub Copilot senza limiti
- Alternativa economica a Windsurf senza crediti e limiti
- L'API più economica per AI-agent nel 2026
- ZCode: inferenza GLM economica al posto del GLM Coding Plan
- JetBrains IDE + JoinGonka Gateway — il tuo endpoint invece dei crediti
- GitHub Copilot BYOK — i tuoi modelli invece della quota
- Zed + JoinGonka Gateway — inferenza economica nell'editor
- Pi + JoinGonka Gateway — agente terminale con inferenza economica
- Codex CLI: la tua chiave invece dell'abbonamento
Strumenti
TanStack AI + Gonka — Applicazioni AI in TypeScript a basso costo
TanStack AI (@tanstack/ai) è un SDK type-safe per TypeScript dal team di TanStack (autori di Query, Router, Table). Architettura provider-agnostic: chat in streaming, tool calling nativo, agenti, output strutturato e multimodalità tramite un unico set di adattatori. Binding pronti per React, Vue, Svelte, Solid e Preact (useChat e altri hook) più headless-client per il server.
Il problema è lo stesso di qualsiasi framework AI: il prezzo dell'inferenza. TanStack AI supporta nativamente OpenAI, Anthropic e Gemini, ma le tariffe dirette di questi provider ($2.50–15 per 1M di token) rendono costosi le chat e gli agenti in produzione: i dialoghi in streaming e i cicli di tool consumano rapidamente milioni di token.
Una caratteristica chiave di TanStack AI è la funzione openaiCompatible(): un modo di prim'ordine per connettere qualsiasi endpoint compatibile con OpenAI. Ciò significa che JoinGonka Gateway si integra senza adattatori personalizzati: basta specificare baseURL, chiave e lista dei modelli. Il risultato: la stessa chat e gli stessi agenti type-safe, ma a $0.0069/1M di token tramite la rete decentralizzata Gonka invece di $2.50–15 di OpenAI.
Passo 1: Installa TanStack AI e ottieni la chiave
Installazione pacchetti (core + OpenAI-adapter, in cui risiede openaiCompatible):
# pnpm
pnpm add @tanstack/ai @tanstack/ai-openai
# npm
npm install @tanstack/ai @tanstack/ai-openaiPer un'interfaccia chat su React, aggiungi il client e gli hook:
pnpm add @tanstack/ai-client @tanstack/ai-reactAPI-key JoinGonka: se non ne hai ancora una, registrati su gate.joingonka.ai/register, ottieni 3M di token gratuiti e crea una chiave jg-xxx nella Dashboard → API Keys. Una sola chiave e un solo saldo funzionano sia per il formato OpenAI che per quello Anthropic.
Passo 2: Collega Gonka tramite openaiCompatible
In TanStack AI, il provider personalizzato compatibile con OpenAI si configura tramite la funzione openaiCompatible(): si definiscono una volta baseURL, apiKey e l'elenco dei modelli, per poi scegliere il modello ad ogni chiamata. Il nostro Gateway utilizza il formato Chat Completions, quindi manteniamo api: 'chat-completions' (valore di default).
import { openaiCompatible } from '@tanstack/ai-openai'
// Provider Gonka — configurato una volta
export const gonka = openaiCompatible({
name: 'gonka',
baseURL: 'https://gate.joingonka.ai/v1',
apiKey: process.env.GONKA_API_KEY!, // jg-la-tua-chiave
api: 'chat-completions',
models: [
'MiniMaxAI/MiniMax-M2.7', // default
'deepseek-ai/DeepSeek-V4-Flash-0731',
'zai-org/GLM-5.3-Flash', // modello di reasoning
],
})Streaming-chat sul server (ad esempio, route-handler in qualsiasi fullstack-framework o TanStack Start). La lunghezza della risposta si imposta tramite modelOptions — questo è l'unico punto per i parametri wire nativi (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 }, // limite di output tramite Gateway
})
return toServerSentEventsResponse(stream)
}React-client tramite l'hook useChat — trasmette le risposte dal server alla 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('Cos'è Gonka?')}>
Chiedi
</button>
</div>
)
}Senza server: lo stesso provider funziona nello script o nel backend direttamente — chiama chat() e leggi lo stream. La connessione a Gonka è identica per tutte le varianti.
Parametri dei modelli tramite Gateway: il contesto è di 200K token per MiniMax M2.7, 380K per DeepSeek V4 Flash e 390K per GLM-5.3 Flash. Il limite max_tokens è 8192 per MiniMax M2.7 e GLM-5.3 Flash, 32768 per DeepSeek V4 Flash. Se max_tokens non è specificato, il default per non-stream è 1500, quindi per risposte lunghe impostalo esplicitamente.
Confronto dei costi
TanStack AI funziona comodamente sia tramite le tariffe dirette di OpenAI/Anthropic che tramite Gonka: cambia solo il baseURL. Ma il prezzo differisce di ordini di grandezza. Confrontiamo i carichi tipici di un'applicazione in produzione su TanStack AI:
| Scenario | Token | OpenAI / Anthropic | JoinGonka Gonka |
|---|---|---|---|
| Una risposta chat in streaming | ~3K | $0.008 — $0.045 | $0.000028 |
| Ciclo agente con tool calling | ~15K | $0.04 — $0.22 | $0.00014 |
| 1 000 dialoghi al giorno | ~3M | $7.50 — $45 | $0.028 |
| Mese in produzione (~100M) | ~100M | $250 — $1 500 | $0.96 |
L'approccio provider-agnostic di TanStack AI significa che passare a Gonka richiede solo la modifica di una riga (baseURL), senza riscrivere il codice. Nel frattempo, i tuoi strumenti type-safe, l'output strutturato e i React hook rimangono invariati. Per un'app con migliaia di utenti, la differenza è di decine di migliaia di dollari al mese.
Prezzo Gonka: ingresso ~$0.0069 per 1M di token, uscita ×3. È centinaia o migliaia di volte più economico delle tariffe dirette di OpenAI e Anthropic.
Strumenti type-safe e selezione del modello
La caratteristica principale di TanStack AI è il contratto unificato toolDefinition(): lo strumento viene descritto una sola volta (input/output tramite Zod, ArkType, Valibot o JSON Schema), mentre l'implementazione viene collegata sul server o sul client. MiniMax M2.7, DeepSeek V4 Flash e GLM-5.3 Flash supportano il tool calling nativo tramite Gonka, quindi gli agenti funzionano in modo affidabile, senza dover analizzare risposte testuali.
import { chat, toolDefinition } from '@tanstack/ai'
import { gonka } from './gonka'
import { z } from 'zod'
const getWeather = toolDefinition({
name: 'getWeather',
description: 'Scopri il meteo in una città',
inputSchema: z.object({ city: z.string() }),
outputSchema: z.object({ tempC: z.number() }),
}).server(async ({ city }) => {
return { tempC: 21 } // la tua chiamata API reale
})
const stream = chat({
adapter: gonka('MiniMaxAI/MiniMax-M2.7'),
messages: [{ role: 'user', content: 'Che tempo fa a Mosca?' }],
tools: [getWeather],
modelOptions: { max_tokens: 8192 },
})Quale modello scegliere:
- MiniMaxAI/MiniMax-M2.7 — default, equilibrio tra velocità e qualità, contesto lungo. Limite di risposta 8192.
- deepseek-ai/DeepSeek-V4-Flash-0731 — uno dei contesti più lunghi della rete (380K), prompt grandi ed economici. Limite di risposta 32768.
- zai-org/GLM-5.3-Flash — modello di reasoning: ragiona prima di rispondere, eccellente nella logica complessa; il contesto più lungo della rete (390K). Limite di risposta 8192; il ragionamento consuma parte dei
max_tokens.
Grazie al runtime adapter switching in TanStack AI, è possibile mantenere tutti e tre i modelli in un unico provider e passare da uno all'altro al volo — ad esempio, compiti con ragionamento su GLM-5.3 Flash, risposte veloci su MiniMax.
Vuoi saperne di più?
Esplora altre sezioni o inizia a guadagnare GNK subito.
Ottieni token gratuiti →