Gemini 3.6 Flash vs Kimi K2.7 Code
Qual usar e quando
Escolha o gemini-3.6-flash quando o trabalho exigir áudio ou seu envelope mais amplo: ele aceita texto, imagem, vídeo e áudio na entrada, traz contexto de 1048576 tokens com até 65536 tokens de saída, e tarifa a entrada de áudio à parte a $5 por milhão de tokens de áudio mais $0.5 em cache. Escolha o kimi-k2.7-code para trabalho de texto, imagem e vídeo onde o custo por token importa, já que seus $0.95 de entrada e $4 de saída saem cerca de 1.6x e 1.9x mais baratos que os $1.5 e $7.5 do Gemini, e ele acrescenta um sinalizador de raciocínio ao lado de chat, código e ferramentas. As contrapartidas: o Kimi limita-se a 256000 de contexto e 32768 de saída, e suas leituras de cache são $0.19 contra $0.15.
Benchmarks
Publicado pelos provedores: Alibaba (Qwen) Anthropic DeepSeek Google Moonshot OpenAI Tencent Z.ai
Preços
| Gemini 3.6 Flash | Kimi K2.7 Code | Δ | |
|---|---|---|---|
| Entrada / 1M tokens | $1.5 | $0.95 | 1.6× |
| Saída / 1M tokens | $7.5 | $4 | 1.9× |
| Leitura de cache / 1M tokens | $0.15 | $0.19 | 0.79× |
Tarifas do catálogo em tempo real, lidas no momento do build; a página de cada modelo traz a tabela de preços atual.
Onde cada um fica: preço de entrada por 1M tokens entre os 76 modelos de chat com esta unidade de cobrança (escala logarítmica)
Capacidades
| Gemini 3.6 Flash | Kimi K2.7 Code | |
|---|---|---|
| Uso de ferramentas | sim | sim |
| Controle de raciocínio | sempre ativo | sempre ativo |
| Saída estruturada | sim | - |
| Cache de prompts | implícito + explícito | implícito (automático) |
| Tempo de vida do cache | não publicado | não publicado |
| Prefixo mínimo em cache | 4096 tokens | não publicado |
Especificações
| Gemini 3.6 Flash | Kimi K2.7 Code | |
|---|---|---|
| Modalidades de entrada | texto imagem áudio vídeo | texto imagem vídeo |
| Modalidades de saída | texto | texto |
| Lançamento | 2026-07-21 | 2026-06 |
| Corte de conhecimento | 2026-03 | - |
| Janela de contexto | 1M | 256K |
| Saída máxima | 66K | 33K |
| Parâmetro de raciocínio | thinkingLevel |
|
| Valores aceitos |
| type
keep
|
| Padrão | medium | thinking on with Preserved Thinking on |
As especificações são transcritas da documentação de cada provedor; quando um provedor não publica um dado, a linha é omitida, e não inferida. Fontes completas: Gemini 3.6 Flash · Kimi K2.7 Code
Um prompt, os dois modelos, medidos pelo gateway
Gemini 3.6 Flash passou · 3 sentences
Enabling reasoning causes the model to generate thousands of internal "thinking" tokens behind the scenes to process logic before delivering the final response. Because our vendor bills us for every token generated—including these intermediate processing steps—our billable output volume per query surged significantly. Since output tokens carry a much higher unit cost than input tokens, this jump in processing volume directly doubled our overall spend.
saída 893 tok (+816 raciocínio) latência 4.7 s
Kimi K2.7 Code passou · 3 sentences
Enabling reasoning mode causes the model to generate an internal chain-of-thought before producing each answer, and that hidden reasoning text is billed like any other output. Those extra reasoning tokens typically add up to much more than the final response itself, so every API call now costs significantly more than before. Because our overall usage volume did not change, the doubled bill reflects that each query consumes roughly twice as many billable tokens.
saída 259 tok (+174 raciocínio) latência 5.4 s
Se a instrução é seguida (exatamente três frases, dá para contar), a adequação ao público (tom para um CFO) e a diferença de cobrança causada pelo raciocínio oculto, que os medidores de tokens abaixo deixam à mostra.
Gemini 3.6 Flash passou · 8/8 cases
Here is the fixed function along with an explanation of the bugs: ```python def longest_run(xs): if not xs: return 0 best = 1 cur = 1 for i in range(1, len(xs)): if xs[i] == xs[i - 1]: cur += 1 else: cur = 1 best = max(best, cur) return best ``` ### Explanation The original function initialized `cur` and `best` to `0` and incremented `cur` on matching adjacent items, which meant it was counting identical adjacent *pairs* rather than the total number of *elements* in a run. This caused single-element inputs to skip the loop and return `0` instead of `1`, and undercounted all run lengths by 1 (for example, a run of two items at the end of the list resulted in `cur = 1`). […]
saída 2034 tok (+1768 raciocínio) latência 10.0 s
Kimi K2.7 Code passou · 8/8 cases
```python def longest_run(xs): if not xs: return 0 best = 1 cur = 1 for i in range(1, len(xs)): if xs[i] == xs[i - 1]: cur += 1 best = max(best, cur) else: cur = 1 return best ``` The bug is that the function counts *transitions* between equal neighbors instead of counting the items themselves, so a single-element list never enters the loop and returns `0` instead of `1`. Likewise, resetting `cur` to `0` on a mismatch forgets the current item that starts a new run, which causes runs that end at the last index to be undercounted. Initializing both `best` and `cur` to `1` and resetting `cur` to `1` fixes both issues.
saída 410 tok (+222 raciocínio) latência 9.4 s
Se a correção está mesmo certa (dá para executar), a densidade da explicação e a eficiência em tokens em uma tarefa bem delimitada.
Gemini 3.6 Flash passou · 5/5 fields, guidance "withheld"
```json { "company": "Meridian Robotics", "quarter": "September quarter", "revenue_usd_m": 412, "growth_pct": null, "guidance": "withheld" } ```
saída 2843 tok (+2783 raciocínio) latência 13.1 s
Kimi K2.7 Code passou · 5/5 fields, guidance "withheld pending the Q4 close"
```json { "company": "Meridian Robotics", "quarter": "September quarter", "revenue_usd_m": 412, "growth_pct": 11, "guidance": "withheld pending the Q4 close" } ```
saída 721 tok (+663 raciocínio) latência 13.2 s
Aderência ao schema (sem campos inventados), pressão para alucinar (o texto diz explicitamente que o guidance não foi divulgado) e diferenças no caminho de saída estruturada.
Gemini 3.6 Flash falhou · 60 words, 0 banned, 0 questions
72: reducing 73: your 74: monthly 75: token 76: spend. S6 (21): 77: You 78: can 79: easily 80: set 81: custom 82: expiration 83: rules, 84: configure 85: TTL 86: settings, 87: and 88: manage 89: cache 90: invalidation 91: across 92: all 93: vendors 94: from 95: one 96: centralized 97: dashboard. S7 (23): 98: Start 99: optimizing […]
saída 4092 tok (+3929 raciocínio) latência 16.3 s
Kimi K2.7 Code passou · 120 words, 0 banned, 1 question
We're introducing Prompt Cache for our API Gateway, a new capability that stores prompt responses across multiple AI providers. By caching replies, you reduce redundant calls, lower latency, and cut costs without changing how you build. Teams using several model providers can now reuse identical prompt results instantly, keeping traffic consistent and budgets predictable. Responses are keyed by provider, model, and exact prompt, so you always get the right result. Configure TTL, hit thresholds, and eviction rules from a single dashboard. It fits into your existing routing and requires no code changes. Setup takes minutes and works with your current endpoints. Want to see how much latency and spend you can trim? Check the docs to enable Prompt Cache today.
saída 2375 tok (+2235 raciocínio) latência 38.6 s
Respeito às restrições (limite de palavras, lista de palavras proibidas, uma única pergunta), a marca de estilo de cada modelo e o controle do tamanho.
Troque de um para o outro mudando uma linha
Os dois ids estão em todas as abas abaixo; o par de linhas destacado é a única alteração. O endpoint, a chave e o formato da requisição são os mesmos.
from openai import OpenAI
client = OpenAI(
base_url="https://synthorai.io/v1",
api_key="sk-syn-...",
)
resp = client.chat.completions.create(
model="gemini-3.6-flash",
# model="kimi-k2.7-code", # descomente esta linha, comente a linha acima
messages=[{"role": "user", "content": "Summarize this diff"}],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://synthorai.io/v1",
apiKey: "sk-syn-...",
});
const resp = await client.chat.completions.create({
model: "gemini-3.6-flash",
// model: "kimi-k2.7-code", // descomente esta linha, comente a linha acima
messages: [{ role: "user", content: "Summarize this diff" }],
});
console.log(resp.choices[0].message.content);curl https://synthorai.io/v1/chat/completions \
-H "Authorization: Bearer sk-syn-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.6-flash",
# "model": "kimi-k2.7-code", # descomente esta linha, comente a linha acima
"messages": [{"role": "user", "content": "Hello"}]
}'package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://synthorai.io/v1"),
option.WithAPIKey("sk-syn-..."),
)
resp, _ := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
Model: "gemini-3.6-flash",
// Model: "kimi-k2.7-code", // descomente esta linha, comente a linha acima
Messages: []openai.ChatCompletionMessageParamUnion{
openai.UserMessage("Summarize this diff"),
},
})
fmt.Println(resp.Choices[0].Message.Content)
}import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.*;
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://synthorai.io/v1")
.apiKey("sk-syn-...")
.build();
ChatCompletion resp = client.chat().completions().create(
ChatCompletionCreateParams.builder()
.model("gemini-3.6-flash")
// .model("kimi-k2.7-code") // descomente esta linha, comente a linha acima
.addUserMessage("Summarize this diff")
.build());
System.out.println(resp.choices().get(0).message().content().orElse(""));Perguntas frequentes
Qual é mais barato, Gemini 3.6 Flash ou Kimi K2.7 Code?
Kimi K2.7 Code sai mais barato na linha “Entrada / 1M tokens” ($0.95 contra $1.5, 1.6× de diferença). Outras linhas podem pender para o outro lado: a tabela acima mostra todos os preços, e o custo real depende do seu mix de uso.
Posso fazer um teste A/B de Gemini 3.6 Flash contra Kimi K2.7 Code sem duas integrações?
Sim. Os dois são servidos pelo mesmo endpoint compatível com OpenAI, com uma única chave de API. Para trocar, basta mudar uma linha, a string do modelo; assim você pode direcionar uma parte do tráfego para cada um e comparar as contas diretamente.
Gemini 3.6 Flash e Kimi K2.7 Code suportam cache de prompts?
Sim. Os dois cobram as leituras de cache abaixo da tarifa de entrada, então cargas de trabalho com prefixo já em cache custam menos do que os preços de tabela sugerem. Os valores exatos de leitura de cache estão na tabela de preços acima.