Seções da Base de Conhecimento ▾

Navegação

▸ Comece aqui Por funções

Categorias

Ferramentas 32
Glossário 12

Ferramentas

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

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

O problema é o mesmo que em qualquer aplicação LLM — o preço do provedor. O chat com streaming envia o histórico do diálogo a cada mensagem, o agente processa o contexto através de dezenas de passos. Com os preços da Anthropic ($3-15/1M) e OpenAI ($2.5-10/1M), até um projeto de estimação modesto em produção vira uma conta 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 qualquer provedor compatível com OpenAI — sem forks, sem adaptadores próprios. O mesmo modelo Kimi K2.6, o mesmo streamText, mas a $0.003/1M de tokens de entrada — centenas a milhares de vezes mais barato.

Passo 1: Obtenha a chave e conecte o provedor

API-key do JoinGonka: registre-se em gate.joingonka.ai/register — no início, fornecemos 10M 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 via createOpenAICompatible e chamamos 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 extra é necessária. Salve a chave na variável de ambiente GONKA_API_KEY (por exemplo, em .env.local), e não no código.

Alternativa — pacote @ai-sdk/openai com a factory createOpenAI({ baseURL, apiKey }). Ambos os métodos funcionam; para endpoints que não pertencem à OpenAI, a documentação do AI SDK sugere especificamente o @ai-sdk/openai-compatible — ele não traz suposições extras específicas da OpenAI.

Passo 2: Streaming e manipulador de rota Next.js

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

Manipulador de 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 por 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 direta.',
    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 acessa automaticamente o /api/chat e renderiza o fluxo de mensagens. O backend conecta-se ao Gonka, e não à OpenAI.

Script sem UI (Node, iterador assíncrono sobre o fluxo):

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

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

Parâmetros dos modelos. Através do Gateway, dois modelos estão disponíveis, ambos com um contexto de 200K tokens; o limite de resposta (maxOutputTokens) é de até 8192 em cada um:

Se maxOutputTokens não for definido, para uma requisição non-stream, o Gateway retornará por padrão até 1500 tokens — 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 na aplicação. Cada mensagem carrega o histórico do diálogo, cada passo do agente inclui o contexto das ferramentas. Portanto, o custo real é calculado pela carga em produção. Vamos comparar cenários típicos:

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

O preço do JoinGonka é cerca de $0.003 por 1M de tokens de entrada, e a saída é aproximadamente três vezes mais cara. Para uma aplicação com milhares de requisições ao dia, é a diferença entre uma conta de centenas de dólares e uma conta de centavos. Os 10M de tokens gratuitos são suficientes para rodar e depurar completamente o projeto antes de ir para produção.

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 prontas para produção em TypeScript por um custo baixíssimo. O createOpenAICompatible conecta o Gateway sem forks, generateText e streamText funcionam como sempre, com tool calling nativo e Next.js route handlers — tudo por $0.003/1M de tokens em vez de $2.5-15 na OpenAI e Anthropic.

Quer saber mais?

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

Obtenha 10M de tokens gratuitos →