Hoje gostaria de compartilhar uma dica que pode ajudar você a reduzir o consumo de tokens e salvar dinheiro. Se você tem um JSON como esse:
``json``
{
"id": 1,
"todo": "Do something nice for someone you care about",
"completed": false,
"userId": 152
}
Irá utilizar 31 tokens. Site utilizado: https://token-calculator.net/
Se usar um versão em CSV:
``csv``
id,todo,completed,userId
1,"Do something nice for someone you care about",false,152
Irá utilizar 22 tokens. Site utilizado: https://token-calculator.net/
Então você irá salvar 31 - 22 => 9 tokens.
1 planilha onde você converte em um JSON com a mesma estrutura do JSON acima, mas a planilha tem 1000 linhas, então 1000 x 31 igual 31000 tokens.
Então se receber 1000 planilhas para processar serão 31000000 tokens.
Custo de inputs por 1 milhão usando Chatgpt 5.5 é $5, 31000000 / 1000000 => 31 x 5 => $155
Custo de outputs por 1 milhão usando Chatgpt 5.5 é $30.00 usando a mesma estrutura, 31000000 / 1000000 => 31 x 30.00 => $930
Total de custo: $155 + $930 => $1085
1 planilha onde você converte em um JSON com a mesma estrutura do JSON acima, mas a planilha tem 1000 linhas, 1000 x 22 igual 22000 tokens.
Então se receber 1000 planilhas para processar serão 22000000 tokens.
Custo de inputs por 1 milhão usando Chatgpt 5.5 é $5, 22000000 / 1000000 => 22 x 5 => $110
Custo de outputs por 1 milhão usando Chatgpt 5.5 é $30.00 usando a mesma estrutura, então 22000000 / 1000000 => 22 x 30 => $660
Total de custo: $110 + $660 => $770
O formato TOON
Também ouvi falar de um formato chamado TOON, que é bem lento pra ser serializado, mas tem uma economia boa em tokens. Ele é fortemente baseado em CSV. É uma mistura de CSV com YAML.
CSV vs JSON
Então, o TOON é muito bom para dados mais complexos. Mas em grande parte das vezes em que o dado é simples e comportado no formato de uma tabela, como no exemplo do post acima, o CSV vai ser menor que o TOON, reduzindo ainda mais o número de tokens.
CSV e seus desafios
O CSV tropeça quando o valor tem vírgula, aspas ou quebra de linha no meio: a coluna desalinha e o modelo lê o campo errado. Às vezes o que você economizou volta como tempo de conferir a saída.
Conclusão
Na prática, o CSV tropeça quando o valor tem vírgula, aspas ou quebra de linha no meio. O que mais me ajudou aqui foi tirar a conversão de JSON para CSV das mãos do modelo e deixar num script. Aí essa parte sai do custo de token e vira processamento de CPU e memória, que é praticamente de graça e não varia. O modelo recebe só o dado já formatado.
Como fazer a conversão
Você faz a conversão no código ou deixa o modelo cuidar disso?