Gustavo Ramos
Voltar para o blog
Primeiros Passos

O Que Realmente Acontece Quando Você Chama uma API de LLM

Publicado em1 de julho de 20264 min de leitura
aillmapibeginnersprompt-engineering

Chamar uma API de LLM pela primeira vez parece mágica, e tratar aquilo como mágica é exatamente o que causa bugs mais tarde — custos inesperados, respostas cortadas no meio da frase, ou um prompt que funciona hoje e quebra depois de uma pequena edição. Por baixo da mágica, uma chamada de API de LLM é um processo bem mecânico, e entender essa mecânica torna tudo muito menos misterioso na hora de construir com ela.

Não é uma conversa, é um documento

O maior mal-entendido é achar que o modelo "lembra" da sua conversa como uma pessoa lembraria. Não lembra. Toda vez que você envia uma mensagem, na verdade você está enviando o histórico inteiro da conversa de volta para o modelo, desde o início. O que parece memória numa interface de chat é, na real, só o cliente reenviando a transcrição completa a cada turno, com sua nova mensagem no final. O modelo não tem estado entre chamadas — a própria requisição é o estado.

Isso importa na prática: quanto mais longa a conversa fica, mais texto é enviado (e cobrado) a cada mensagem, até você bater num limite rígido.

Tokens: a unidade real de tudo

Modelos não processam texto caractere por caractere nem palavra por palavra — processam tokens, que são aproximadamente pedaços de alguns caracteres. "Automação" pode ser um token; uma palavra rara ou um trecho de código pode ser dividido em vários. Isso importa por dois motivos concretos:

  • Custo e limites são medidos em tokens, não em caracteres ou palavras. Uma regra de bolso aproximada para inglês é cerca de 4 caracteres por token, mas código e texto fora do inglês costumam tokenizar de forma menos eficiente.
  • A janela de contexto — a quantidade máxima de texto que um modelo consegue considerar de uma vez, contando tanto o seu prompt quanto a resposta dele — é um orçamento de tokens, não de palavras. Um modelo com janela de contexto grande consegue lidar com um documento inteiro; um com janela pequena vai truncar em silêncio ou dar erro em algo que parecia razoavelmente curto.

Uma primeira chamada de verdade

Veja como é uma chamada de API real, reduzida ao essencial, usando o Vercel AI SDK (uma forma comum de chamar diferentes provedores de modelo através de uma interface consistente):

import { generateText } from "ai";

const { text } = await generateText({
  model: "anthropic/claude-sonnet-4-5",
  prompt: "Explique o que é um token, em uma frase, para um iniciante.",
});

console.log(text);

Três coisas acontecem aqui, em ordem: seu prompt (mais, num app de chat de verdade, o histórico anterior da conversa) é tokenizado e enviado ao provedor; o modelo gera uma resposta um token de cada vez, cada novo token influenciado por tudo que veio antes; a resposta pronta volta em text. Não há consulta a banco de dados, nem memória externa — só uma grande quantidade de texto entrando, e uma continuação desse texto saindo.

Prompts são a interface inteira

Como não existe outro canal para influenciar o comportamento do modelo além do texto que você envia, a redação do prompt importa mais do que na maioria das APIs que você já usou antes. Dois prompts que parecem quase idênticos para você, como humano — "resuma isso" versus "resuma isso em exatamente três bullet points, ordenados por urgência" — podem gerar saídas com utilidade bem diferente. Isso não é uma peculiaridade a ser contornada; é a superfície real da API. Ser específico sobre formato, tamanho e restrições no próprio prompt faz boa parte do trabalho que, numa API tradicional, seria feito por parâmetros da requisição.

Onde entra a saída estruturada

Texto livre é ótimo para uma interface de chat, mas a maioria das aplicações reais precisa da resposta num formato previsível — um objeto JSON com campos específicos, não um parágrafo que você tem que interpretar na mão. Essa é uma técnica separada, relacionada (generateObject com um schema, em vez de generateText) que vale a pena aprender logo depois desta — mas o modelo mental de tokens-e-janela-de-contexto deste post é a base sobre a qual tudo o resto se constrói. Quando você passa a enxergar uma chamada de LLM como "tokenizar, enviar todo o histórico relevante, gerar um token de cada vez", boa parte do comportamento que parecia mágico começa a parecer um sistema comum e depurável.

Gerado por Claude Sonnet 5 (seeded manually via Claude Code) · 1 de julho de 2026 · verificado em build antes da publicação