Cada comparação de modelos que você lê é ou uma tabela de benchmarks que ninguém consegue reproduzir, ou uma análise baseada em impressões sobre dois modelos que o autor já preferia. Por isso, em 2 de setembro de 2026, fizemos a versão chata: os mesmos três prompts, enviados uma única vez a doze modelos atuais pela nossa própria API, com o tempo de stream medido e cobrado ao preço que uma chave NinjaChat realmente paga. Nada do que está abaixo foi editado, selecionado a dedo ou reexecutado para parecer melhor.
A versão curta: todos os doze escreveram uma função correta de fusão de intervalos cujos próprios testes passaram. O GPT-5.6 Terra foi o modelo mais rápido até o primeiro token em média e o programador mais veloz no geral, em menos de três segundos. O GPT-5.6 Luna e o gpt-oss-120b empataram como os mais baratos, em cerca de um décimo de centavo para as três respostas. As duas respostas individuais mais caras do dia foram o conselho para fundadores do Kimi K3, que raciocinou por 1.034 tokens e levou 27 segundos, e o código do Claude Opus 5, que também é o código mais completo que alguém escreveu. No meio-termo, as diferenças interessantes não foram sobre correção. Foram sobre quanto tempo cada modelo pensa antes de falar, qual provedor o serviu e quanto tudo isso custa.
Como medimos
- Data e local: 2 de setembro de 2026, uma tarde, um laptop em uma conexão doméstica nos EUA.
- Rota: todas as requisições foram para a API do NinjaChat,
POST /api/v1/chat/completions, com uma chave normal de playground. A latência que você vê inclui nosso roteamento, o provedor que escolhemos e o tempo próprio do provedor. A coluna "Servido por" identifica esse provedor para cada resposta. - Modelos: Claude Opus 5, GPT-5.5, GPT-5.6 Sol, GPT-5.6 Terra, GPT-5.6 Luna, Kimi K3, Gemini 3.7 Flash, GLM-5.2, GLM-4.7, MiniMax M3, gpt-oss-120b e Qwen 3.8 Flash.
- Configurações: temperatura 0,7, limite de 2.500 tokens de saída, streaming ativado com relatório de uso, todos os outros parâmetros deixados nos valores padrão de cada modelo. A maioria desses modelos raciocina por padrão, e nossa API reporta tokens de raciocínio separadamente da saída visível, então ambas as colunas aparecem em todas as tabelas. Dois provedores, DeepInfra para o GLM-4.7 e Fireworks para o GLM-5.2, reportam o raciocínio dentro da contagem de saída, portanto essas linhas mostram um número de saída alto e zero na coluna de raciocínio.
- Temporização: o tempo até o primeiro token é quando o primeiro caractere visível da resposta chegou, após qualquer raciocínio oculto. O tempo total é até o fechamento do stream. As requisições rodaram uma de cada vez, nunca em paralelo, após uma requisição de aquecimento para cada modelo, de modo que nada abaixo inclui uma inicialização a frio do nosso lado.
- Custo: o valor que nossa API reportou como cobrado por cada requisição, arredondado à décima milésima de dólar. Nada é estimado a partir de uma tabela de preços.
- Uma execução por célula. Sem tentativas repetidas, sem melhor de três. Uma segunda execução não reproduzirá esses números até a casa decimal. Deve reproduzir o ranking.
Os três prompts foram copiados literalmente das seções de Saídas Reais nas páginas dos nossos modelos, então o que você vê aqui é a mesma tarefa que essas páginas mostram:
- "Escreva uma função Python que funde intervalos sobrepostos, mais três testes curtos. Mantenha a resposta inteira abaixo de 40 linhas de código."
- "Em cerca de 120 palavras, diga a um fundador de primeira viagem quando escolher um monolito em vez de microsserviços, e o único sinal que indica que é hora de separar."
- "Reescreva esta frase de três formas, cada uma em um tom claramente diferente (direto, descontraído, executivo): 'Nosso app torna o controle financeiro fácil.' Identifique cada uma."
Prompt 1: fundir intervalos sobrepostos
Ordenado pelo tempo total. Todas as respostas abaixo passaram em seus próprios testes quando executamos o código.
| Modelo | Servido por | Tempo até 1º token | Tempo total | Tokens de saída | Tokens de raciocínio | Cobrado por esta resposta |
|---|---|---|---|---|---|---|
| GPT-5.6 Terra | OpenAI | 1,5 s | 2,9 s | 184 | 0 | $0,0023 |
| Gemini 3.7 Flash | 2,8 s | 3,3 s | 232 | 445 | $0,0052 | |
| MiniMax M3 | Fireworks | 3,3 s | 4,9 s | 285 | 271 | $0,0008 |
| gpt-oss-120b | Fireworks | 4,4 s | 6,3 s | 280 | 434 | $0,0006 |
| GPT-5.6 Luna | OpenAI | 5,9 s | 7,2 s | 171 | 374 | $0,0007 |
| Claude Opus 5 | Anthropic | 3,7 s | 8,6 s | 621 | 89 | $0,0180 |
| Qwen 3.8 Flash | Novita | 8,1 s | 9,1 s | 175 | 757 | $0,0005 |
| GPT-5.6 Sol | OpenAI | 8,8 s | 10,7 s | 194 | 26 | $0,0046 |
| GLM-5.2 | Fireworks | 12,9 s | 14,6 s | 989 | 0 | $0,0045 |
| Kimi K3 | Fireworks | 16,5 s | 21,7 s | 309 | 771 | $0,0166 |
| GPT-5.5 | OpenAI | 9,5 s | 29,4 s | 196 | 60 | $0,0079 |
| GLM-4.7 | DeepInfra | 60,6 s | 67,1 s | 1363 | 0 | $0,0031 |
Doze de doze em correção, o que indica que esse é um problema resolvido para qualquer modelo atual. As diferenças estão no gosto, em como o modelo gasta tokens e, em um caso, no que "teste" significa.
A resposta mais enxuta veio do GLM-4.7: quatorze linhas, sem comentários, sem uma verificação separada para entrada vazia, porque o loop a trata.
def merge_intervals(intervals):
intervals.sort(key=lambda x: x[0])
merged = []
for start, end in intervals:
if not merged or start > merged[-1][1]:
merged.append([start, end])
else:
merged[-1][1] = max(merged[-1][1], end)
return merged
O Claude Opus 5 foi na direção oposta. Escreveu a única versão com docstring, três funções de teste nomeadas cobrindo entradas vazias, unitárias, adjacentes, desordenadas e aninhadas, e uma observação explicando que intervalos adjacentes se fundem porque a comparação é fechada, com a mudança de um caractere caso se queira semântica meio-aberta. É também a resposta com maior chance de ter irritado um leitor rigoroso: o bloco de código tem exatamente 40 linhas, contra um prompt que pedia menos de 40. O Kimi K3 escreveu a próxima versão mais cuidadosa, com uma função de teste com três casos comentados e uma entrada desordenada e aninhada.
A família GPT produziu praticamente a mesma função quatro vezes. O Terra fez isso em 2,9 segundos sem tokens de raciocínio e sem docstring, a resposta mais rápida do prompt. O Sol adicionou uma docstring e retornou tuplas. O Luna raciocinou por 374 tokens a caminho da resposta GPT mais curta. O GPT-5.5 escreveu a mesma função que o Sol, mas seu stream parou: primeiro token aos 9,5 segundos, último token aos 29,4, para 196 tokens de saída. Esse é o tipo de evento de execução única que uma segunda tentativa provavelmente não repetiria, e é exatamente por isso que o mencionamos.
O MiniMax M3 é a linha que merece ser lida duas vezes. Seus três "testes" são instruções print com o valor esperado em um comentário ao lado, portanto não podem falhar. O código está correto, e nós o executamos, mas o modelo respondeu a uma pergunta diferente da que foi feita. Quatro modelos — Gemini 3.7 Flash, GLM-4.7, MiniMax M3 e Qwen 3.8 Flash — ordenam a lista do chamador in place, o que é aceitável em um trecho e um bug em uma biblioteca.
As linhas lentas são linhas de provedor. O GLM-4.7, servido pelo DeepInfra, levou um minuto inteiro até o primeiro caractere; o provedor conta o raciocínio dentro dos 1.363 tokens de saída que reportou. O Kimi K3 no Fireworks raciocinou por 771 tokens e levou 22 segundos.
Veredicto: Terra para uma função como essa. Opus 5 se você quiser a resposta que te ensina algo, e aceitar as 40 linhas.
Prompt 2: monolito ou microsserviços
| Modelo | Servido por | Tempo até 1º token | Tempo total | Tokens de saída | Tokens de raciocínio | Cobrado por esta resposta |
|---|---|---|---|---|---|---|
| MiniMax M3 | Fireworks | 2,5 s | 4,0 s | 177 | 76 | $0,0004 |
| GPT-5.6 Luna | OpenAI | 2,6 s | 4,4 s | 165 | 75 | $0,0003 |
| GPT-5.6 Terra | OpenAI | 2,4 s | 4,6 s | 167 | 0 | $0,0021 |
| Gemini 3.7 Flash | 4,3 s | 4,6 s | 160 | 901 | $0,0081 | |
| GPT-5.5 | OpenAI | 2,7 s | 5,0 s | 163 | 31 | $0,0061 |
| gpt-oss-120b | Fireworks | 5,5 s | 6,5 s | 180 | 70 | $0,0003 |
| Claude Opus 5 | Anthropic | 2,7 s | 7,5 s | 332 | 23 | $0,0092 |
| GPT-5.6 Sol | OpenAI | 7,0 s | 10,0 s | 164 | 238 | $0,0082 |
| GLM-5.2 | Fireworks | 15,0 s | 16,5 s | 1259 | 0 | $0,0057 |
| Kimi K3 | Fireworks | 23,8 s | 26,9 s | 170 | 1034 | $0,0185 |
| Qwen 3.8 Flash | Novita | 29,9 s | 30,9 s | 162 | 3810 | $0,0019 |
| GLM-4.7 | DeepInfra | 78,9 s | 86,2 s | 1063 | 0 | $0,0024 |
Todos os modelos deram o mesmo conselho principal: comece com um monolito, que é o conselho correto. A questão estava realmente na segunda parte: identifique o único sinal de que é hora de separar. As respostas se dividiram em dois campos.
O campo organizacional disse que o sinal são as pessoas. Kimi K3: "as equipes não conseguem mais fazer deploy de forma independente", com um aviso de que separar ao longo das costuras erradas resulta em "um monolito distribuído: toda a dor operacional, nenhuma independência." O Gemini 3.7 Flash chamou de "gargalo organizacional" e acrescentou a frase "microsserviços são uma ferramenta para escalar organizações humanas e a velocidade de deploy, não bases de código em estágio inicial." O GLM-5.2 chamou de "contention de deploy". O GLM-4.7 disse "atrito organizacional" e ofereceu um teste: se nenhuma pessoa consegue mais entender o sistema inteiro, você superou o monolito.
O campo do gargalo disse que o sinal é uma parte específica do sistema. O Claude Opus 5 foi concreto: "um transcodificador de vídeo intensivo em CPU famindo sua API", e encerrou com a melhor frase do dia: "Todo o resto — 'parece bagunçado', 'a Netflix faz assim' — não é um sinal." GPT-5.6 Sol: "separe quando uma parte bem definida do produto repetidamente precisar ser implantada ou escalada de forma independente, e o monolito mensurável impedir isso", depois "extraia apenas essa fronteira, dê a ela uma interface e um dono claros, e deixe todo o resto junto." O Luna acrescentou a frase que os outros esqueceram: extraia, "meça a melhoria" e pare por aí. O MiniMax M3 chegou à mesma ideia com menos palavras e uma linha memorável: "A separação prematura mata mais startups do que código ruim."
A tabela mostra o que o texto oculta. O Opus 5 chegou a 162 palavras contra uma meta de 120, a resposta mais longa do prompt. O Qwen 3.8 Flash raciocinou por 3.810 tokens, mais de vinte vezes o que escreveu, e levou 31 segundos para dizer algo sensato. O Sol raciocinou por 238 tokens, levou dez segundos e foi cobrado quase quatro vezes o custo da resposta do Terra, por um parágrafo que é melhor em uma frase.
Veredicto: Opus 5 se você quiser a resposta que encaminharia a um fundador. GPT-5.5 ou Terra para o melhor parágrafo por segundo. MiniMax M3 se o ponto for que isso custou quatro centésimos de centavo.
Prompt 3: três tons
| Modelo | Servido por | Tempo até 1º token | Tempo total | Tokens de saída | Tokens de raciocínio | Cobrado por esta resposta |
|---|---|---|---|---|---|---|
| gpt-oss-120b | Fireworks | 1,6 s | 1,8 s | 62 | 41 | $0,0002 |
| GPT-5.6 Luna | OpenAI | 1,6 s | 2,1 s | 44 | 0 | $0,0001 |
| GPT-5.6 Sol | OpenAI | 2,2 s | 3,2 s | 47 | 0 | $0,0011 |
| GPT-5.6 Terra | OpenAI | 2,4 s | 3,3 s | 54 | 0 | $0,0008 |
| GPT-5.5 | OpenAI | 2,2 s | 3,4 s | 47 | 0 | $0,0016 |
| MiniMax M3 | Fireworks | 3,0 s | 3,4 s | 55 | 191 | $0,0004 |
| Gemini 3.7 Flash | 3,3 s | 3,4 s | 57 | 429 | $0,0037 | |
| Claude Opus 5 | Anthropic | 2,8 s | 3,9 s | 101 | 28 | $0,0035 |
| Qwen 3.8 Flash | Novita | 6,3 s | 6,7 s | 44 | 48 | $0,0001 |
| Kimi K3 | Fireworks | 9,2 s | 10,2 s | 69 | 413 | $0,0076 |
| GLM-5.2 | Fireworks | 10,8 s | 11,3 s | 747 | 0 | $0,0034 |
| GLM-4.7 | DeepInfra | 68,6 s | 69,7 s | 1049 | 0 | $0,0024 |
Este é o prompt que expõe a leitura descuidada. O gpt-oss-120b e o Qwen 3.8 Flash devolveram a frase original, sem alteração, como versão "direta". É uma leitura defensável da palavra "direto" e uma falha óbvia da palavra "reescreva". O gpt-oss-120b faz isso em todas as execuções deste teste que já realizamos, portanto é um hábito, não um acidente.
Dois modelos escreveram uma linha descontraída com voz própria de verdade. Kimi K3: "Orçamento? Fácil demais. Nosso app faz as contas pra você!" Claude Opus 5: "Controlar as finanças era uma tarefa chata — agora é basicamente um toque, um deslize e pronto." O Opus 5 também escreveu a única versão executiva com uma afirmação concreta, "reduzindo a gestão financeira a alguns minutos por mês", onde todos os outros recorreram a abstrações. Sete dos doze usaram "prático" em algum lugar, e onze dos doze usaram "otimiza" na versão executiva. A versão executiva do Gemini, "otimização orçamentária fluida e clareza fiscal," é a que você deve mostrar à sua equipe de marketing como aviso.
A história de custo é a verdadeira aqui. O GLM-4.7 levou 70 segundos para produzir 32 palavras, porque seu provedor reportou 1.049 tokens de saída para elas, a maior parte sendo raciocínio que ele não detalha. O Luna e o Qwen 3.8 Flash fizeram o trabalho por um centésimo de centavo cada, o Luna em dois segundos. Se seu produto reescreve frases em escala, esta é uma decisão de custo, não de qualidade — a menos que você queira especificamente a voz do Opus 5 ou do Kimi.
Veredicto: Opus 5 ou Kimi K3 para textos que um humano vai ler, Luna para textos que um pipeline vai ler.
O dia inteiro em uma tabela
O que cada modelo foi cobrado pelas três respostas, do mais barato ao mais caro, com o provedor que o serviu e o preço de lista que cada modelo cobra na API do NinjaChat em 2 de setembro de 2026.
| Modelo | Cobrado pelas três respostas | Tempo médio até 1º token | Resposta mais lenta | Servido por | Preço de entrada / saída por 1M tokens |
|---|---|---|---|---|---|
| GPT-5.6 Luna | $0,0011 | 3,4 s | 7,2 s | OpenAI | $0,2 / $1,2 |
| gpt-oss-120b | $0,0011 | 3,8 s | 6,5 s | Fireworks | $0,35 / $0,75 |
| MiniMax M3 | $0,0016 | 2,9 s | 4,9 s | Fireworks | $0,3 / $1,2 |
| Qwen 3.8 Flash | $0,0025 | 14,8 s | 30,9 s | Novita | $0,15 / $0,47 |
| GPT-5.6 Terra | $0,0052 | 2,1 s | 4,6 s | OpenAI | $2 / $12 |
| GLM-4.7 | $0,0079 | 69,4 s | 86,2 s | DeepInfra | $0,6 / $2,2 |
| GLM-5.2 | $0,0136 | 12,9 s | 16,5 s | Fireworks | $1,4 / $4,4 |
| GPT-5.6 Sol | $0,0139 | 6,0 s | 10,7 s | OpenAI | $4 / $20 |
| GPT-5.5 | $0,0156 | 4,8 s | 29,4 s | OpenAI | $5 / $30 |
| Gemini 3.7 Flash | $0,0170 | 3,5 s | 4,6 s | $1,5 / $7,5 | |
| Claude Opus 5 | $0,0307 | 3,1 s | 8,6 s | Anthropic | $5 / $25 |
| Kimi K3 | $0,0427 | 16,5 s | 26,9 s | Fireworks | $3 / $15 |
Três padrões emergem disso.
O raciocínio é o preço oculto. O Kimi K3 está listado abaixo dos três modelos de fronteira e terminou como o modelo mais caro do dia, porque raciocinou por 400 a 1.000 tokens em cada prompt, incluindo a reescrita. O Gemini 3.7 Flash custou mais que o GPT-5.5 pelo mesmo motivo. A resposta mais cara do Sol não foi a mais longa, foi a que ele mais pensou. Se você não precisa de cadeia de raciocínio para uma tarefa, escolha um modelo que não faça isso por padrão, ou reduza o esforço de raciocínio onde a API permitir.
Barato agora é genuinamente bom. O Luna, o gpt-oss-120b e o MiniMax M3 escreveram código correto, conselhos sensatos e textos utilizáveis por entre um décimo e um sexto de centavo cada, os três prompts incluídos. Dois anos atrás, essa categoria de modelo teria falhado no prompt de programação.
O provedor é parte da latência. O GLM-4.7 é um modelo rápido no papel e foi a coisa mais lenta no teste, porque o provedor que o serviu levou um minuto para iniciar cada resposta. O Kimi K3 e o GLM-5.2 no Fireworks foram rápidos assim que começaram a escrever e lentos antes disso. Os modelos da OpenAI, Google e Anthropic responderam diretamente dos laboratórios. É por isso que nossa API mostra uptime e latência por provedor, não por modelo, e por isso a coluna "Servido por" está em todas as tabelas acima.
Qual modelo para quê
- Você quer a melhor resposta e custo é secundário: Claude Opus 5. O código mais completo, a resposta para fundadores que você realmente encaminharia, a única reescrita com uma afirmação concreta, e 3 segundos até o primeiro token em média.
- Você quer qualidade de fronteira a um preço intermediário: GPT-5.6 Terra. Mais rápido até o primeiro token em todo o conjunto, sem raciocínio a menos que a pergunta precise, menos da metade da conta do Sol no dia.
- Você quer o modelo OpenAI mais capaz independente do preço: GPT-5.5, mas observe seu teto de 32K tokens de saída antes de apontá-lo para gerações longas.
- Você está rodando um pipeline de alto volume: GPT-5.6 Luna ou MiniMax M3. Um décimo a um sexto de centavo para todo o exercício, tudo em menos de cinco segundos nos dois prompts de prosa.
- Você quer um modelo grande de peso aberto com contexto longo: Kimi K3 para a escrita, GLM-5.2 para o preço, e reserve tempo para o raciocínio em ambos.
- Você quer textos que as pessoas vão ler: Opus 5, depois Kimi K3. Evite os dois modelos que devolveram a frase original.
Execute você mesmo
Todos os modelos acima estão a um model de distância na API do NinjaChat, que é compatível com OpenAI. Uma conta verificada por telefone começa com um saldo inicial de US$ 0,50, sem cartão até você recarregar. Troque o id e reexecute qualquer prompt deste artigo. A resposta informa o que foi cobrado e qual provedor te atendeu.
curl https://www.ninjachat.ai/api/v1/chat/completions \
-H "Authorization: Bearer $NINJACHAT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-terra",
"messages": [{"role": "user", "content": "In about 120 words, tell a first-time founder when to choose a monolith over microservices, and the one signal that means it is time to split."}],
"max_tokens": 2500,
"temperature": 0.7,
"stream": true,
"stream_options": {"include_usage": true}
}'
import time
from openai import OpenAI
client = OpenAI(base_url="https://www.ninjachat.ai/api/v1", api_key="YOUR_KEY")
for model in ["claude-opus-5", "gpt-5.6-terra", "minimax-m3"]:
t0 = time.perf_counter()
first = None
stream = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": "Rewrite three ways (plain, playful, executive): Our app makes budgeting easy."}],
max_tokens=2500,
temperature=0.7,
stream=True,
stream_options={"include_usage": True},
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content and first is None:
first = time.perf_counter() - t0
if chunk.usage:
print(model, "reasoning tokens:", chunk.usage.completion_tokens_details.reasoning_tokens)
print(model, "first token", round(first, 2), "s, total", round(time.perf_counter() - t0, 2), "s")
Os preços ao vivo de todos os modelos, sem necessidade de chave, estão em GET https://www.ninjachat.ai/api/v1/models. O lado do consumidor são os mesmos modelos em uma janela de chat: escolha qualquer um em /models com um plano pago.
Perguntas frequentes
Qual modelo de IA foi o mais rápido neste teste? GPT-5.6 Terra: 2,1 segundos até o primeiro token em média, e a resposta completa mais rápida no prompt de programação com 2,9 segundos. MiniMax M3 e Claude Opus 5 vieram a seguir, ambos em torno de três segundos até o primeiro token em média.
Qual modelo de IA foi o mais barato? GPT-5.6 Luna e gpt-oss-120b empataram em cerca de um décimo de centavo pelas três respostas, conforme cobrado pela API do NinjaChat em 2 de setembro de 2026. O MiniMax M3 ficou logo atrás.
Algum modelo errou na tarefa de programação? Não. Todos os doze produziram uma função de fusão cujos próprios testes passaram. O Claude Opus 5 atingiu o limite de 40 linhas exatamente, o MiniMax M3 imprimiu seus resultados em vez de afirmá-los com assert, e quatro modelos ordenam a lista do chamador in place, o que vale saber se você copiar o código para uma biblioteca.
Por que o GLM-4.7 e o Kimi K3 são tão lentos nas tabelas? Raciocínio e hospedagem, combinados. Ambos pensam longamente antes de escrever, e o provedor que serviu o GLM-4.7 naquela tarde levou cerca de um minuto para iniciar cada resposta e reportou o raciocínio dentro da contagem de saída. Em um provedor diferente, ou com o esforço de raciocínio reduzido, ambos ficariam no meio da tabela.
Por que o mesmo modelo custa valores diferentes em prompts diferentes? Porque tokens de raciocínio são cobrados como saída. O GPT-5.6 Sol gastou 26 tokens de raciocínio no prompt de código e 238 no prompt de fundador, então a resposta sobre fundadores custou quase o dobro da resposta de código, apesar de ser mais curta.
Posso reproduzir isso? Sim. Os três prompts estão impressos acima literalmente, as configurações estão listadas em Como medimos, e o trecho Python mede qualquer modelo da mesma forma que fizemos e imprime seus tokens de raciocínio. Espere que os números absolutos variem entre execuções e que o ranking se mantenha.
