Como usar o TOON com LLMs

LLM
Engenharia imediata

Se você já colou uma grande matriz JSON no ChatGPT ou Claude, provavelmente sentiu a dor da janela de contexto se fechando. JSON é fantástico para APIs da web, mas para Large Language Models (LLMs), é um desperdício incrível. Repetir nomes de campos como "id":, "name": e "timestamp": para cada registro não é apenas redundante; ele queima tokens que custam dinheiro real e espaço de contexto valioso.

É aqui que o TOON (Notação de Objeto de Tabela) brilha. Não é apenas um formato de dados; é uma estratégia para otimizar as interações LLM. Ao eliminar a taxa de sintaxe do JSON e adicionar cabeçalhos de estrutura explícitos, o TOON permite que você passe mais dados para seus modelos e obtenha resultados estruturados mais confiáveis ​​em troca.

A economia simbólica do TOON

Por que se preocupar em mudar de formato? A matemática é simples. Em uma matriz JSON padrão de objetos, o esquema é repetido para cada linha. Se você tiver uma lista de 50 usuários, estará pagando pelos nomes dos campos 50 vezes.

TOON elimina essa redundância declarando o esquema uma vez no cabeçalho. Os dados seguem em um formato denso e simplificado. Na prática, isso normalmente resulta em uma redução de 30-60% no uso de tokens para matrizes uniformes em comparação com JSON formatado. Quando você lida com enormes janelas de contexto ou chamadas de API de alto volume, essa eficiência se traduz diretamente em contas mais baixas e menor latência.

Envio de dados: a regra "Mostre, não conte"

Quando você precisa de um LLM para analisar dados, sua estratégia imediata é crucial. Os iniciantes costumam escrever longos parágrafos explicando o formato dos dados. Com TOON, você não precisa fazer isso.

LLMs são mecanismos de correspondência de padrões. Eles entendem o TOON intuitivamente porque ele parece um híbrido de YAML e CSV – formatos que eles viram bilhões de vezes durante o treinamento.

Para enviar dados, basta envolvê-los em um bloco de código protegido. Você pode rotulá-lo como toon, mas mesmo que o marcador de sintaxe do modelo não o suporte oficialmente, o modelo entende a estrutura imediatamente.

Exemplo de entrada

Em vez de descrever o esquema, basta fornecer o bloco:

O cabeçalho users[3]{id,name,role,lastLogin} informa ao modelo tudo o que ele precisa saber: o tipo de entidade, a contagem (3 linhas) e a ordem dos campos. O recuo controla a hierarquia. Essa natureza de "autodocumentação" libera seu prompt para se concentrar na tarefa lógica real, em vez de nas instruções de análise de sintaxe.

Aqui está o registro de atividades do usuário. Os dados estão no formato TOON (recuo de 2 espaços, cabeçalhos explícitos). 

usuários[3]{id,nome,função,últimoLogin}: 
1,Alice,administradora,2025-01-15T10:30:00Z 
2,Bob,usuário,2025-01-14T15:22:00Z 
3,Charlie,usuário,2025-01-13T09:45:00Z 

Tarefa: Analise os logs e identifique quais usuários não fizeram login nas últimas 24 horas. 

Gerando resultados confiáveis

Conseguir um LLM para ler dados é fácil; conseguir gerar dados estruturados válidos é a parte difícil. Os modelos adoram ter alucinações, truncar JSON ou esquecer os colchetes.

TOON adiciona uma camada de segurança por meio de sua sintaxe de cabeçalho, especificamente a contagem [N]. Quando você pede a um modelo para gerar TOON, você está pedindo que ele se comprometa com uma estrutura antes de gerar os dados.

Solicitando geração

Para obter os melhores resultados, forneça o formato de cabeçalho esperado e instrua o modelo a preencher as linhas.

Ao pedir ao modelo para calcular [N], você força um processo de "cadeia de pensamento" onde o modelo deve planejar o tamanho da saída. Essa restrição aparentemente pequena reduz significativamente a probabilidade de o modelo cortar no meio de uma lista.

Tarefa: Retornar uma lista de usuários ativos com a função "usuário". 
Formato: Use TOON. Defina o valor [N] no cabeçalho para corresponder ao número exato de linhas que você gera. 

Formato esperado: 
usuários[N]{id,nome,função,últimoLogin}: 

Validando com modo estrito

Ao receber a resposta do LLM, você não deve apenas confiar nela. É aqui que o modo estrito da biblioteca TOON se torna uma superpotência para aplicações de produção.

Se você estiver usando a biblioteca TypeScript, a decodificação com modo estrito valida se as linhas geradas correspondem à contagem de cabeçalhos:

Isso permite capturar programaticamente saídas de modelo "preguiçosas" ou truncamentos de rede imediatamente, em vez de descobrir dados inválidos no downstream em seu aplicativo.

importar {decodificar} de '@toon-format/toon'; 

tente { 
// Se o modelo disser [5], mas fornecer 4 linhas, isso gerará um erro. 
dados const = decodificar (modelOutput, {estrito: verdadeiro}); 
console.log('Dados válidos recebidos:', dados); 
} pegar (erro) { 
console.error('Alucinação ou truncamento do modelo detectado:', error.message); 
} 

Otimização avançada: o truque da guia

Se você é obcecado por otimização (e no mundo dos LLMs, provavelmente deveria ser), você pode obter ainda mais eficiência escolhendo sabiamente seus delimitadores.

As vírgulas são padrão, mas as tabulações (\t) são frequentemente representadas como um único token em muitos vocabulários de tokenizadores. Além disso, as guias raramente aparecem dentro de campos de texto natural, o que reduz a necessidade de caracteres de escape (como colocar strings entre aspas).

Você pode codificar seus dados usando guias antes de enviá-los ao modelo:

Apenas lembre-se de informar o modelo no prompt: "Os dados são TOON separados por tabulações." Isso cria uma representação hipercompacta que é incrivelmente fácil para o modelo analisar e gerar.

const toonPrompt = codificar(dados, { delimitador: '\t' }); 

Um exemplo completo de fluxo de trabalho

Vejamos um cenário do mundo real: filtragem de logs do sistema. Você deseja enviar logs brutos para o modelo e obter de volta uma lista estruturada de erros.

O prompt:

A saída do modelo:

Logs do sistema no formato TOON (separados por guias): 

eventos[4]{id,nível,mensagem,timestamp}: 
1, erro, tempo limite de conexão, 2025-01-15T10:00:00Z 
2, aviso, consulta lenta, 2025-01-15T10:05:00Z 
3,informações,Login do usuário,2025-01-15T10:10:00Z 
4, erro, erro de banco de dados025-01-15T10:15:00Z 

Tarefa: Extraia todos os eventos com nível 'erro'. Retorne o resultado como TOON válido com uma contagem de cabeçalho atualizada. 

O resultado:

eventos[2]{id,nível,mensagem,timestamp}: 
1, erro, tempo limite de conexão, 2025-01-15T10:00:00Z 
4, erro, erro de banco de dados, 2025-01-15T10:15:00Z 

O modelo filtrou corretamente a lista e, principalmente, atualizou o cabeçalho para events[2]. Ao decodificar essa resposta, você obtém um array limpo e de tipo seguro, pronto para a lógica do seu aplicativo.

Resumo

TOON preenche a lacuna entre a legibilidade humana e a eficiência da máquina. Respeita as restrições de custo dos LLMs ao mesmo tempo que fornece a estrutura necessária para o desenvolvimento robusto de software.

  1. Mantenha-o pequeno: Use de 2 a 5 linhas em seus exemplos; o modelo irá generalizar.
  1. Seja explícito: Defina os cabeçalhos claramente para que o modelo conheça o esquema.
  1. Validar estritamente: Use os metadados do formato para detectar erros de geração.

Ao abandonar o JSON para suas cargas imediatas, você não estará apenas salvando tokens: estará construindo um pipeline de IA mais confiável.