Secciones de la base de conocimientos ▾

Navegación

▸ Empiece aquí Por roles

Categorías

Herramientas 32
Glosario 12

Herramientas

Vercel AI SDK + Gonka AI — Aplicaciones de IA en TypeScript por centavos

Vercel AI SDK es el SDK más popular para crear aplicaciones de IA con TypeScript y JavaScript. API unificada para generateText y streamText, streaming en la UI, tool calling nativo, helpers listos para Next.js App Router — todo lo necesario para chatbots, agentes y pipelines de RAG en la web.

El problema es el mismo que en cualquier aplicación LLM: los costos del proveedor. El chat con streaming envía el historial del diálogo en cada mensaje, el agente mueve contexto durante decenas de pasos. Con los precios de Anthropic ($3-15/1M) y OpenAI ($2.5-10/1M), incluso un pet-project modesto en producción se convierte en cientos de dólares al mes.

JoinGonka Gateway — es un endpoint compatible con OpenAI sobre la red descentralizada Gonka. Vercel AI SDK se conecta a él como a cualquier proveedor compatible con OpenAI, sin forks ni adaptadores propios. El mismo modelo Kimi K2.6, el mismo streamText, pero a $0.003/1M de tokens de entrada: cientos a miles de veces más barato.

Paso 1: Obtener la clave y conectar el proveedor

API-key de JoinGonka: regístrate en gate.joingonka.ai/register — al inicio damos 10M de tokens gratuitos. En el Dashboard crea una clave con el prefijo jg-.

Instalación de paquetes. Para un endpoint personalizado compatible con OpenAI, Vercel AI SDK recomienda el proveedor @ai-sdk/openai-compatible:

npm install ai @ai-sdk/openai-compatible

Conexión mínima — creamos una instancia del proveedor mediante createOpenAICompatible y llamamos a 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-tu-clave
});

const { text } = await generateText({
  model: gonka('MiniMaxAI/MiniMax-M2.7'),
  prompt: 'Explica qué es una red de inferencia descentralizada',
});

console.log(text);

El parámetro apiKey añade automáticamente la cabecera Authorization: Bearer jg-tu-clave — no se requiere configuración adicional. Mantén la clave en la variable de entorno GONKA_API_KEY (por ejemplo, en .env.local), no en el código.

Alternativa — paquete @ai-sdk/openai con la fábrica createOpenAI({ baseURL, apiKey }). Ambos métodos funcionan; para endpoints que no pertenecen a OpenAI, la documentación de AI SDK sugiere específicamente @ai-sdk/openai-compatible — no arrastra suposiciones innecesarias específicas de OpenAI.

Paso 2: Streaming y Next.js route handler

La característica principal de Vercel AI SDK es la transmisión de respuestas. La función streamText comienza a transmitir tokens inmediatamente, y el ayudante toUIMessageStreamResponse() entrega el flujo resultante directamente desde el route handler en Next.js App Router.

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

// permitimos transmitir hasta 30 segundos
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: 'Eres un asistente útil. Responde de forma breve y concisa.',
    messages: convertToModelMessages(messages),
    maxOutputTokens: 8192, // límite de salida a través de Gateway
  });

  return result.toUIMessageStreamResponse();
}

En el cliente, conecta el hook useChat de @ai-sdk/react: este se dirige automáticamente a /api/chat y renderiza el flujo de mensajes. El backend se conecta a Gonka, no a OpenAI.

Script sin UI (Node, iterador asíncrono sobre el flujo):

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: 'Escribe un haiku sobre computación distribuida',
});

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

Parámetros de los modelos. A través del Gateway hay dos modelos disponibles, ambos con un contexto de 200K tokens; el límite de respuesta (maxOutputTokens) es de hasta 8192 en cada uno:

Si no se especifica maxOutputTokens, para una solicitud sin streaming, el Gateway devolverá por defecto hasta 1500 tokens; es mejor especificar el valor explícitamente para chats con streaming.

Comparación de costes

Vercel AI SDK suele estar detrás de una interfaz interactiva: chat, agente, asistente en la aplicación. Cada mensaje arrastra el historial del diálogo, cada paso del agente incluye el contexto de las herramientas. Por lo tanto, el costo real se calcula por la carga en producción. Comparemos escenarios típicos:

EscenarioTokensAnthropic / OpenAIJoinGonka Gonka
Un mensaje en el chat~3K$0.01 — $0.05$0.000014
Diálogo de 20 réplicas~150K$0.50 — $2.25$0.00072
Respuesta RAG (búsqueda + generación)~5K$0.015 — $0.05$0.000024
Paso del agente con tool calling~10K$0.03 — $0.10$0.000048
10 000 peticiones al día (prod)~50M$150 — $500$0.24

El precio de JoinGonka es de unos $0.003 por 1M de tokens de entrada, y la salida es aproximadamente tres veces más cara. Para una aplicación con miles de peticiones al día, es la diferencia entre una factura de cientos de dólares y unos pocos centavos. Los 10M de tokens gratuitos son suficientes para ejecutar y depurar completamente el proyecto antes de salir a producción.

Tool calling y agentes

Vercel AI SDK describe las herramientas de manera declarativa a través del objeto tools y el esquema zod. Kimi K2.6 admite function calling nativo, por lo que AI SDK recibe tool_calls estructurados sin necesidad de analizar respuestas de texto. El parámetro stopWhen: stepCountIs(n) permite realizar varios pasos consecutivos: el modelo invoca la herramienta, recibe el resultado y continúa.

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: 'Obtener el clima en la ciudad',
      inputSchema: z.object({ city: z.string() }),
      execute: async ({ city }) => ({ city, tempC: 17 }),
    }),
  },
  prompt: '¿Qué clima hace en Moscú? Responde en una sola oración.',
});

console.log(text);

El modelo invoca la herramienta weather, recibe el resultado y genera la respuesta final. El ciclo completo cuesta alrededor de $0.000048 a través de Gonka frente a $0.03-$0.10 en Anthropic u OpenAI. Para aplicaciones de agentes, donde cada solicitud del usuario se despliega en 5-10 pasos, el ahorro en producción se mide en miles de dólares al mes.

Si está construyendo una aplicación de IA en Python, consulte la guía de LangChain: allí se utiliza el mismo enfoque a través de la clase compatible con OpenAI.

Vercel AI SDK + Gonka = aplicaciones de IA listas para producción en TypeScript por una fracción del costo. createOpenAICompatible conecta el Gateway sin bifurcaciones, generateText y streamText funcionan como siempre, con tool calling nativo y Next.js route handlers, todo por $0.003/1M de tokens en lugar de $2.5-15 en OpenAI y Anthropic.

¿Quieres saber más?

Explora otras secciones o empieza a ganar GNK ahora mismo.

Obtener 10M de tokens gratuitos →