Seções da Base de Conhecimento ▾

Navegação

▸ Comece aqui Por funções

Categorias

Ferramentas 37
Glossário 12

Ferramentas

Vercel AI SDK + Gonka AI — Aplicações de IA em TypeScript por centavos

Vercel AI SDK — o SDK mais popular para criar aplicações de IA em TypeScript e JavaScript. Uma API unificada generateText e streamText, streaming para a UI, tool calling nativo, helpers prontos para Next.js App Router — tudo o que é necessário para chatbots, agentes e pipelines de RAG na web.

O problema é o mesmo de qualquer aplicação LLM — o preço do provedor. Uma interface de chat de streaming envia o histórico do diálogo em cada mensagem, um agente consome contexto em dezenas de passos. Com os preços da Anthropic ($3-15/1M) e da OpenAI ($2.5-10/1M), até um pequeno pet-project em produção vira uma fatura de centenas de dólares por mês.

JoinGonka Gateway — um endpoint compatível com OpenAI sobre a rede descentralizada Gonka. O Vercel AI SDK conecta-se a ele como a qualquer provedor compatível com OpenAI — sem forks, sem adaptadores próprios. O mesmo modelo Kimi K2.6, o mesmo streamText, mas por $0.0047/1M de tokens na entrada — centenas a milhares de vezes mais barato.

Passo 1: Obtenha a chave e conecte o provedor

API-key da JoinGonka: registre-se em gate.joingonka.ai/register — no início, oferecemos 1.5M de tokens gratuitos. No Dashboard, crie uma chave com o prefixo jg-.

Instalação de pacotes. Para um endpoint personalizado compatível com OpenAI, o Vercel AI SDK recomenda o provedor @ai-sdk/openai-compatible:

npm install ai @ai-sdk/openai-compatible

Conexão mínima — criamos uma instância do provedor através do createOpenAICompatible e invocamos 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-sua-chave
});

const { text } = await generateText({
  model: gonka('MiniMaxAI/MiniMax-M2.7'),
  prompt: 'Explique o que é uma rede de inferência descentralizada',
});

console.log(text);

O parâmetro apiKey adiciona automaticamente o cabeçalho Authorization: Bearer jg-sua-chave — nenhuma configuração adicional é necessária. Guarde a chave na variável de ambiente GONKA_API_KEY (por exemplo, no .env.local), e não no código.

Alternativa — o pacote @ai-sdk/openai com a fábrica createOpenAI({ baseURL, apiKey }). Ambos os métodos funcionam; para endpoints que não pertencem à OpenAI, a documentação do AI SDK aconselha especificamente o @ai-sdk/openai-compatible — pois não carrega suposições desnecessárias específicas da OpenAI.

Passo 2: Streaming e manipulador de rota Next.js

A principal característica do Vercel AI SDK é o streaming de resposta. A função streamText começa a transmitir tokens imediatamente, e o helper toUIMessageStreamResponse() entrega o fluxo pronto diretamente do route handler no App Router do Next.js.

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

// permitir streaming de até 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: 'Você é um assistente útil. Responda de forma breve e objetiva.',
    messages: convertToModelMessages(messages),
    maxOutputTokens: 8192, // limite de saída através do Gateway
  });

  return result.toUIMessageStreamResponse();
}

No cliente, conecte o hook useChat do @ai-sdk/react — ele se comunica automaticamente com /api/chat e renderiza o fluxo de mensagens. O backend, por sua vez, conecta-se ao Gonka, e não ao OpenAI.

Script sem UI (Node, async-iterator através do stream):

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: 'Escreva um haicai sobre computação distribuída',
});

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

Parâmetros de modelos. Através do Gateway, três modelos estão disponíveis: um contexto de 200K tokens para Kimi K2.6 e MiniMax M2.7, e 380K para DeepSeek V4 Flash; o limite de resposta (maxOutputTokens) é de até 8192 para cada um:

Se maxOutputTokens não estiver definido, o Gateway retornará por padrão até 1500 tokens para solicitações non-stream — para chats com streaming, é melhor especificar o valor explicitamente.

Comparação de custos

O Vercel AI SDK geralmente fica atrás de uma interface interativa — chat, agente, assistente no aplicativo. Cada mensagem arrasta o histórico do diálogo, cada passo do agente — o contexto das ferramentas. Portanto, o custo real não é calculado por uma única solicitação, mas pela carga de produção. Vamos comparar cenários típicos:

CenárioTokensAnthropic / OpenAIJoinGonka Gonka
Uma mensagem no chat~3K$0.01 — $0.05$0.000028
Diálogo de 20 réplicas~150K$0.50 — $2.25$0.0014
Resposta RAG (busca + geração)~5K$0.015 — $0.05$0.000048
Passo do agente com tool calling~10K$0.03 — $0.10$0.000096
10 000 solicitações por dia (prod)~50M$150 — $500$0.48

O preço da JoinGonka é de aproximadamente $0.0047 por 1M de tokens de entrada, a saída é aproximadamente três vezes mais cara. Para um aplicativo com milhares de solicitações por dia, essa é a diferença entre uma conta de centenas de dólares e uma de centavos. Os 1.5M de tokens gratuitos são suficientes para rodar as primeiras solicitações do projeto.

Tool calling e agentes

O Vercel AI SDK descreve ferramentas de forma declarativa através do objeto tools e do esquema zod. O Kimi K2.6 suporta function calling nativo, portanto, o AI SDK recebe tool_calls estruturados sem a necessidade de processar respostas de texto. O parâmetro stopWhen: stepCountIs(n) permite vários passos consecutivos — o modelo invoca a ferramenta, recebe o resultado e continua.

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: 'Saber a previsão do tempo na cidade',
      inputSchema: z.object({ city: z.string() }),
      execute: async ({ city }) => ({ city, tempC: 17 }),
    }),
  },
  prompt: 'Qual é a previsão do tempo em Moscou? Responda em uma frase.',
});

console.log(text);

O modelo invoca a ferramenta weather, recebe o resultado e forma a resposta final. Todo o ciclo custa cerca de $0.000048 através do Gonka, comparado a $0.03-$0.10 na Anthropic ou OpenAI. Para aplicações de agentes, onde cada solicitação do usuário se desdobra em 5-10 passos, a economia em produção é medida em milhares de dólares por mês.

Se você estiver criando uma aplicação de IA em Python, confira o guia sobre LangChain — ele usa a mesma abordagem através da classe compatível com OpenAI.

Vercel AI SDK + Gonka = aplicações de IA em TypeScript prontas para produção por um preço mínimo. O createOpenAICompatible conecta o Gateway sem forks, generateText e streamText funcionam normalmente, tool calling nativo e route handlers do Next.js — tudo por $0.0047/1M de tokens em vez de $2.5-15 da OpenAI e Anthropic.

Quer saber mais?

Explore outras seções ou comece a ganhar GNK agora mesmo.

Obter tokens gratuitos →