Sections de la base de connaissances ▾

Navigation

▸ Commencez ici Par rôles

Catégories

Outils 37
Glossaire 12

Outils

Vercel AI SDK + Gonka AI — Applications IA en TypeScript pour une bouchée de pain

Vercel AI SDK est le SDK le plus populaire pour créer des applications d'IA avec TypeScript et JavaScript. Une API unifiée generateText et streamText, streaming vers l'UI, appel d'outils natif, helpers prêts à l'emploi pour Next.js App Router — tout ce dont vous avez besoin pour des chatbots, des agents et des pipelines RAG sur le web.

Le problème est le même que pour toute application LLM : le coût du fournisseur. L'interface de chat en streaming envoie l'historique du dialogue à chaque message, un agent fait transiter le contexte à travers des dizaines d'étapes. Avec les tarifs d'Anthropic ($3-15/1M) et d'OpenAI ($2.5-10/1M), même un petit projet personnel en production se transforme en une facture de plusieurs centaines de dollars par mois.

JoinGonka Gateway — un endpoint compatible OpenAI au-dessus du réseau décentralisé Gonka. Vercel AI SDK s'y connecte comme à n'importe quel fournisseur compatible OpenAI — sans fork, sans adaptateurs personnalisés. Les mêmes modèles ouverts que chez les hébergeurs commerciaux — MiniMax M2.7, DeepSeek V4 Flash et GLM-5.3 Flash — et le même streamText, mais pour $0.0069/1M jetons en entrée — des dizaines de fois moins cher.

Étape 1 : Obtenir la clé et connecter le fournisseur

Clé API JoinGonka : inscrivez-vous sur gate.joingonka.ai/register — nous offrons 3M jetons gratuits au départ. Créez une clé avec le préfixe jg- dans le Dashboard.

Installation des packages. Pour un endpoint compatible OpenAI personnalisé, le SDK Vercel AI recommande le provider @ai-sdk/openai-compatible :

npm install ai @ai-sdk/openai-compatible

Connexion minimale — créez une instance du provider via createOpenAICompatible et appelez 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-votre-clé
});

const { text } = await generateText({
  model: gonka('MiniMaxAI/MiniMax-M2.7'),
  prompt: 'Expliquez ce qu'est un réseau d'inférence décentralisé',
});

console.log(text);

Le paramètre apiKey ajoute automatiquement l'en-tête Authorization: Bearer jg-votre-clé — aucune configuration supplémentaire n'est nécessaire. Conservez la clé dans une variable d'environnement GONKA_API_KEY (par exemple dans .env.local) et non dans le code.

Alternative — le package @ai-sdk/openai avec la factory createOpenAI({ baseURL, apiKey }). Les deux méthodes fonctionnent ; pour les endpoints n'appartenant pas à OpenAI, la documentation du SDK AI recommande @ai-sdk/openai-compatible — il n'inclut pas d'hypothèses spécifiques à OpenAI inutiles.

Étape 2 : Streaming et gestionnaire de route Next.js

La fonctionnalité principale du SDK Vercel AI est la diffusion en continu (streaming) de la réponse. La fonction streamText commence à streamer les jetons immédiatement, et le helper toUIMessageStreamResponse() renvoie le flux prêt à l'emploi directement depuis le route handler dans Next.js App Router.

Gestionnaire côté serveur 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,
});

// on autorise un streaming jusqu'à 30 secondes
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: 'Tu es un assistant utile. Réponds de manière concise et précise.',
    messages: convertToModelMessages(messages),
    maxOutputTokens: 8192, // limite de sortie via Gateway
  });

  return result.toUIMessageStreamResponse();
}

Côté client, connectez le hook useChat de @ai-sdk/react — il appelle lui-même /api/chat et affiche le flux de messages. Le backend communique alors avec Gonka, et non avec OpenAI.

Script sans UI (Node, async-iterator sur le flux) :

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: 'Écris un haïku sur le calcul distribué',
});

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

Paramètres des modèles. Trois modèles sont disponibles via Gateway : contexte de 200K jetons pour MiniMax M2.7, 380K pour DeepSeek V4 Flash et 390K pour GLM-5.3 Flash ; la limite de réponse (maxOutputTokens) est de 8192 pour MiniMax M2.7 et GLM-5.3 Flash, et 32768 pour DeepSeek V4 Flash :

  • MiniMaxAI/MiniMax-M2.7 — par défaut (MiniMax M2.7) ;
  • deepseek-ai/DeepSeek-V4-Flash-0731 (DeepSeek V4 Flash, contexte 380K) ;
  • zai-org/GLM-5.3-Flash (GLM-5.3 Flash, modèle de raisonnement — réfléchit avant de répondre).

Si maxOutputTokens n'est pas défini, pour une requête non-stream, le Gateway retournera par défaut jusqu'à 1500 jetons — pour les chats en streaming, il est préférable de spécifier la valeur explicitement.

Comparaison des coûts

Vercel AI SDK se trouve généralement derrière une interface interactive — chat, agent, assistant dans une application. Chaque message entraîne l'historique du dialogue, chaque étape de l'agent entraîne le contexte des outils. Par conséquent, le coût réel n'est pas calculé par requête unique, mais par charge de production. Comparons les scénarios typiques :

ScénarioJetonsAnthropic / OpenAIJoinGonka Gonka
Un message dans le chat~3K$0.01 — $0.05$0.000028
Dialogue de 20 répliques~150K$0.50 — $2.25$0.0014
Réponse RAG (recherche + génération)~5K$0.015 — $0.05$0.000048
Étape d'agent avec tool calling~10K$0.03 — $0.10$0.000096
10 000 requêtes par jour (prod)~50M$150 — $500$0.48

Le prix de JoinGonka est d'environ $0.0069 pour 1M de jetons en entrée, la sortie est environ trois fois plus chère. Pour une application avec des milliers de requêtes par jour, c'est la différence entre une facture de centaines de dollars et une facture de quelques centimes. Les 3M jetons gratuits suffisent pour lancer les premières requêtes du projet.

Appel d'outils et agents

Vercel AI SDK décrit les outils de manière déclarative via l'objet tools et le schéma zod. Les modèles du réseau prennent en charge l'appel de fonction natif, donc l'AI SDK reçoit des tool_calls structurés sans avoir à analyser les réponses textuelles. Le paramètre stopWhen: stepCountIs(n) permet plusieurs étapes consécutives — le modèle appelle l'outil, reçoit le résultat et continue.

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: 'Connaître la météo dans une ville',
      inputSchema: z.object({ city: z.string() }),
      execute: async ({ city }) => ({ city, tempC: 17 }),
    }),
  },
  prompt: 'Quel temps fait-il à Moscou ? Réponds en une seule phrase.',
});

console.log(text);

Le modèle appelle l'outil weather, reçoit le résultat et formule la réponse finale. Le cycle complet coûte environ $0.000048 via Gonka contre $0.03-0.10 chez Anthropic ou OpenAI. Pour les applications d'agents où chaque demande utilisateur se déploie en 5-10 étapes, les économies en production se chiffrent en milliers de dollars par mois.

Si vous construisez une application d'IA en Python, consultez le guide LangChain — la même approche y est utilisée via une classe compatible OpenAI.

Vercel AI SDK + Gonka = applications d'IA prêtes pour la production en TypeScript à moindre coût. createOpenAICompatible connecte la Gateway sans forks, generateText et streamText fonctionnent normalement, tool calling natif et route handlers Next.js — le tout pour $0.0069/1M jetons au lieu de 2,5-15 $ chez OpenAI et Anthropic.

Vous voulez en savoir plus ?

Explorez d'autres sections ou commencez à gagner des GNK dès maintenant.

Obtenir des jetons gratuits →