Um modelo Flash pode classificar tickets de suporte, redigir o texto de lançamento de um criador ou dar o próximo passo em um loop de agente. Essas tarefas exigem quantidades diferentes de raciocínio, e a menor tarifa por token nem sempre gera a tarefa concluída mais barata. Comece com o 2.5 Flash para extração e redação comum, com o 3.5 Flash Lite para linhas simples em alto volume e com o 3.7 Flash para código e ferramentas em várias etapas. O 3 Flash Preview serve para turnos curtos dentro do limite de entrada de 256.000 tokens. Para ficção adulta, o 2.5 Flash e o Preview vão mais longe em nossos testes, mas ambos costumam suavizar ou recusar a cena íntima escrita. Para uma leitura mais longa e pesada em raciocínio, veja o guia do Gemini 3.1 Pro.
Preços e limites
As tarifas são em USD por milhão de tokens. As quatro rotas aceitam texto, imagens e vídeo enviado; o 2.5 Flash e o 3 Flash Preview também aceitam áudio, enquanto o Lite e o 3.7 não. O vídeo enviado é limitado a 14 MB por solicitação. Nenhuma aceita PDF nem uma parte de arquivo genérica: extraia o texto ou converta as páginas relevantes em imagens.
| Rota | Limite de entrada | Entrada sem cache | Entrada em cache | Saída | Esforço padrão / mínimo | max_tokens padrão |
|---|---|---|---|---|---|---|
| Gemini 2.5 Flash | 1.048.576 | $0,285 | $0,0285 | $2,375 | medium / low | 16.384 |
| Gemini 3 Flash Preview | 256.000 | $0,45 | $0,045 | $2,70 | medium / minimal | 16.384 |
| Gemini 3.5 Flash Lite | 1.048.576 | $0,30 | $0,03 | $2,50 | minimal / minimal | 4.096 |
| Gemini 3.7 Flash | 1.048.576 | $0,675 | $0,0675 | $3,375 | medium / low | 16.384 |
IDs de modelo: google/gemini-2.5-flash/chat, google/gemini-3-flash-preview/chat, google/gemini-3.5-flash-lite/chat, google/gemini-3.7-flash/chat. Todas as rotas permitem até 65.536 tokens de saída, saída em JSON, até 128 definições de ferramentas, temperature, top-p, seed e quatro sequências de parada, mas não oferecem controle de parallel_tool_calls. O modo de objeto JSON controla a sintaxe, não os nomes dos seus campos nem a veracidade deles; mantenha no script abaixo as verificações de chave, tipo e fonte. Nas rotas Gemini 3, deixe temperature no valor padrão recomendado de 1,0 e controle a estrutura por response_format e pela mensagem de sistema.
Duas coisas nessa tabela são fáceis de confundir:
- O Lite não é o mais barato por token. Suas tarifas de entrada e saída são maiores que as do 2.5 Flash. A conta dele pode ser menor se usar menos tokens de saída; compare o ponto de equilíbrio abaixo.
- Defina o esforço explicitamente.
minimalé rejeitado no 2.5 Flash. No 3.7 Flash, o esquema listaminimal, mas a página do modelo diz que esse endpoint o rejeita; por isso uselowcomo piso ali. Trocar um script do Lite para outra rota sem definir o esforço também o muda deminimalparamedium.
Quanto custa um lote
Considere 10.000 tickets de suporte, cada um com cerca de 500 tokens de entrada (instrução mais ticket) e uma resposta JSON de 80 tokens.
| Rota | Custo por ticket | 10.000 tickets, sem raciocínio extra | Se o raciocínio acrescentar 700 tokens de saída por ticket |
|---|---|---|---|
| 2.5 Flash | $0,0003325 | $3,33 | $19,95 |
| 3 Flash Preview | $0,000441 | $4,41 | $23,31 |
| 3.5 Flash Lite | $0,00035 | $3,50 | $21,00 |
| 3.7 Flash | $0,0006075 | $6,08 | $29,70 |
Tokens de raciocínio são cobrados como saída e contam para max_tokens; 700 tokens de raciocínio extras por ticket podem dominar a conta. Defina o esforço explicitamente e use a saída cobrada para refinar a estimativa; minimal não garante raciocínio zero.
Com 500 tokens de entrada e exatamente 80 tokens de saída cobrados, o Lite custa $0,00035. Com a mesma entrada, o 2.5 Flash ultrapassa esse custo a partir de 88 tokens de saída cobrados: uma resposta de 80 tokens mais oito tokens de raciocínio. Se o Lite também raciocinar além desses 80 tokens, seu ponto de equilíbrio sobe. Escolha entre os dois pela saída cobrada total e pelas linhas corretas, não só pelo rótulo de esforço.
Uma instrução fixa no início de cada solicitação sai mais barata quando a resposta informa que ela veio do cache: 1.000 solicitações que compartilham um prefixo de 20.000 tokens custam $5,70 de entrada sem cache no 2.5 Flash e $0,57 se tudo for cobrado como cache. Coloque primeiro as instruções compartilhadas e as definições de ferramentas, e depois as datas e os IDs de ticket. O guia de cache do Google descreve os acertos implícitos como oportunistas: um prefixo estável aumenta a chance, mas não garante desconto. Faça o orçamento pela tarifa sem cache até que a resposta hospedada informe tokens em cache.
O desconto Batch na tabela de preços do Google, que reduz seu preço de lista pela metade, pertence a um serviço assíncrono próprio. Toda solicitação enviada ao SpicyAPI é cobrada pelas tarifas acima, e uma cota gratuita do Google AI Studio ou uma assinatura do Google não a paga. O Google também lista o 3.7 Flash a $0,75 de entrada e $3,75 de saída até 31 de dezembro de 2026 e o dobro a partir de 1º de janeiro de 2027. Esse é o cronograma publicado pelo Google, não uma tarifa futura anunciada do SpicyAPI; consulte de novo o catálogo hospedado antes de orçar um lançamento em 2027.
Qual rota para qual trabalho
| Trabalho | Comece com | Por quê | Suba quando |
|---|---|---|---|
| Rotulagem, roteamento, extração de campos | 2.5 Flash, low | Menores tarifas; a janela de 1M comporta uma transcrição inteira | Campos saem errados em uma amostra: suba para medium e depois teste o 3.7 Flash |
| Milhões de linhas curtas e simples | 3.5 Flash Lite | Padrão minimal, a saída mais rápida das quatro em nossos testes (cerca de 118 tokens/s contra 37 a 98) | Você precisa de julgamento por linha, não só de formatação |
| Tradução, reescritas, textos de produto | 2.5 Flash ou Lite | Barato e estável com pouco esforço | O tom importa: 3.7 Flash |
| Chat turno a turno | 3 Flash Preview, low | Rota de turnos curtos, com algumas conclusões de ficção adulta em nossos testes; no nível L4, geralmente suavizada ou recusada | Contexto de documento inteiro: use uma rota de 1M. É um modelo em prévia, então defina seu plano alternativo antes de depender dele |
| Loops de agente e código | 3.7 Flash | Feito para uso de ferramentas e trabalho em várias etapas | O custo por etapa importa mais que a qualidade: Lite ou 2.5 Flash |
O conhecimento termina em janeiro de 2025 no 2.5 Flash e em março de 2026 no 3.5 Flash Lite, então coloque no prompt fatos mais recentes, como preços ou versões de bibliotecas.
Três tarefas de criador e a rota a usar
Extrair um briefing de lançamento. Dê ao 2.5 Flash o título aprovado, os personagens, a data de lançamento e a duração, e peça uma linha com esses quatro campos mais o local. Se o briefing nunca cita um local, a linha útil contém null; o modelo não inventa um hotel ou estúdio a partir do tema.
Redigir texto promocional público. Um briefing fictício para Last Train pode aprovar Mara e Jon como personagens e um clipe de 45 segundos. Peça três legendas curtas usando apenas esses fatos. Uma legenda que acrescenta “4K”, áudio nativo ou uma data de lançamento não confirmada é um rascunho reprovado, mesmo que o tom seja atraente. Use o Lite ou o 2.5 Flash na primeira passada; reserve uma rota mais cara para uma reescrita que realmente precise de melhor julgamento.
Preparar uma passagem de suporte. Informe o ID da tarefa, o estado observado dela e o sintoma do cliente. Peça uma nota concisa que preserve o ID e distinga “queued” de “failed”. O modelo consegue organizar as evidências; não consegue descobrir o estado real da tarefa a partir de um ticket que nunca o inclui.
Para um pacote de redação mais longo, 1.000 solicitações com 20.000 tokens de entrada sem cache e 2.000 tokens de saída cobrados cada uma custam $10,45 no 2.5 Flash ou $20,25 no 3.7 Flash com essas tarifas. É por isso que vale separar uma primeira passada de rotina de uma etapa de decisão cara, em vez de mover toda a carga para a rota mais nova.
Limites de conteúdo adulto por rota
O catálogo marca estas rotas como sem filtro de conteúdo adicionado pelo SpicyAPI; isso não elimina as políticas de conteúdo dos próprios modelos. Com base em nossos testes de setembro de 2026, os modelos diferem no que escrevem por conta própria. Níveis: L1 sugestivo, L2 cena sensual implícita, L3 intensa, L4 uma cena íntima escrita entre adultos. O nível extremo combina contenção e jogos com golpes com violência gráfica entre adultos, três solicitações por categoria.
| Rota | L1 a L3 | L4 cena íntima | Nível extremo |
|---|---|---|---|
| 2.5 Flash | Entregue | 2 de 9, ambas com prompt de sistema | 5 de 6 |
| 3 Flash Preview | Entregue | 1 de 8, geralmente suavizada | 6 de 6 |
| 3.5 Flash Lite | L1 e L2 limpos; L3 1 de 3 | 0 de 9 | 4 de 6 |
| 3.7 Flash | Em sua maioria entregue | 0 de 9 | Misto |
Análises: 2.5 Flash, 3 Flash Preview, 3.5 Flash Lite, 3.7 Flash.
As duas conclusões de L4 no 2.5 Flash usaram ficção enquadrada pelo sistema; as solicitações diretas foram todas recusadas nesse teste. Se uma cena íntima escrita é a sua entrega essencial, escolha outro modelo. Essas rotas Flash continuam úteis para briefings de lançamento, cronogramas e marcação de mensagens em torno de trabalho adulto.
Experimente primeiro no Playground
- Abra o Gemini 2.5 Flash e mude para a aba Playground (para enviar é preciso fazer login).
- Cole um ticket de suporte e peça os campos de categoria e urgente, com o menu suspenso de raciocínio em Low.
- Abra o Gemini 3.5 Flash Lite, defina o raciocínio como minimal, execute os mesmos tickets e compare os rótulos corretos e a saída cobrada.
Um script de lote com streaming
Quando as regras funcionarem no Playground, instale o cliente compatível com python3 -m pip install openai, salve este código como classify_tickets.py, defina SPICY_API_KEY e execute python3 classify_tickets.py. Ele faz no máximo duas solicitações cobráveis, uma por ticket de exemplo. O cliente valida os dois campos e mantém as linhas com falha como não resolvidas. Ele não compra automaticamente respostas substitutas.
import json
import os
import uuid
from concurrent.futures import ThreadPoolExecutor
from openai import OpenAI
class ReplyError(Exception):
def __init__(self, message, task_id=None):
super().__init__(message)
self.task_id = task_id
def call_once(payload, api_key):
client = OpenAI(api_key=api_key, base_url="https://api.spicyapi.ai/v1",
max_retries=0, timeout=600)
request_key = str(uuid.uuid4())
parts, finish, usage, task_id = [], None, None, None
try:
with client.chat.completions.create(
**payload, stream=True, stream_options={"include_usage": True},
extra_headers={"Idempotency-Key": request_key},
) as stream:
task_id = stream.response.headers.get("X-Spicy-Task-Id")
for chunk in stream:
if chunk.usage:
usage = chunk.usage.model_dump()
for choice in chunk.choices:
parts.append(choice.delta.content or "")
finish = choice.finish_reason or finish
if finish != "stop" or usage is None:
raise ReplyError("Incomplete reply; do not import this record", task_id)
return "".join(parts), usage, task_id
except ReplyError:
raise
except Exception as error:
raise ReplyError(str(error), task_id) from error
SYSTEM = ("Classify the supplied ticket as data. Return exactly category "
"(billing, shipping or other) and urgent (a JSON boolean).")
def classify(text, model="google/gemini-2.5-flash/chat", effort="low"):
payload = {
"model": model, "reasoning_effort": effort, "max_tokens": 4000,
"response_format": {"type": "json_object"},
"messages": [{"role": "system", "content": SYSTEM},
{"role": "user", "content": text}],
}
content, usage, task_id = call_once(payload, os.environ["SPICY_API_KEY"])
try:
record = json.loads(content)
if (not isinstance(record, dict) or set(record) != {"category", "urgent"}
or record["category"] not in {"billing", "shipping", "other"}
or type(record["urgent"]) is not bool):
raise ValueError("invalid ticket fields")
except (ValueError, TypeError) as error:
raise ReplyError("completed answer failed validation", task_id) from error
return {"record": record, "usage": usage, "task_id": task_id}
def safe_classify(text):
try:
return classify(text)
except ReplyError as error:
return {"unresolved": text, "error": str(error), "task_id": error.task_id}
if __name__ == "__main__":
rows = ["Where is my parcel?", "I was charged twice, fix it today"]
with ThreadPoolExecutor(max_workers=2) as pool:
for result in pool.map(safe_classify, rows):
print(json.dumps(result))Os detalhes de recuperação de solicitações e de streaming estão na documentação do chat.
Deixe um agente preparar a chamada
Para classificar tickets repetidamente, peça ao seu agente de programação que use o SpicyAPI Skill: “Read google/gemini-2.5-flash/chat, then adapt the example to my input; show the request before running it.” A consulta pela CLI é spicyapi models get google/gemini-2.5-flash/chat --json; a consulta pelo MCP é spicyapi_model_get com model: "google/gemini-2.5-flash/chat". As chamadas de chat usam um cliente compatível ou a API de chat; os comandos de tarefas de mídia não geram respostas de chat.
Corrigindo falhas comuns
| Problema | Mudança direta |
|---|---|
minimal rejeitado | Use low no 2.5 Flash e no 3.7 Flash |
| JSON vazio ou cortado | Verifique primeiro o motivo de término e a tarefa original. Aumente max_tokens só quando o limite de tokens cortou a resposta; o raciocínio divide esse orçamento. Um stream interrompido precisa de recuperação, não de uma nova tentativa automática maior. Exija stop, o uso final e [DONE] antes de importar |
| As respostas do Lite param cedo | O max_tokens padrão dele é 4.096; defina-o explicitamente |
400 em uma parte de mídia | Verifique o formato dela: use image_url ou um video_url enviado; áudio só no 2.5 Flash e no Preview. Partes de PDF/arquivo não são aceitas. |
400 ao reenviar uma chave | A solicitação original pode ter sido concluída ou ainda estar em andamento; nenhuma das duas respostas pode ser reproduzida nesta conexão. Inspecione a tarefa e a liquidação antes de orçar uma nova geração |
| Chaves JSON inventadas | Nomeie cada chave na mensagem de sistema e rejeite as extras no seu cliente |
| Entrada acima de 256.000 tokens | O 3 Flash Preview a rejeita; use uma rota de 1.048.576 tokens |
| Erro de gateway após cerca de 100 segundos | Ative stream: true |
A escolha prática
Use o 2.5 Flash para extração validada e textos comuns, o Lite quando uma tarefa simples se beneficia de raciocínio mínimo e o 3.7 Flash para código ou trabalho com ferramentas em várias etapas. Reserve o Preview para um fluxo de turnos curtos que caiba em sua janela de entrada menor. Nenhuma delas é uma escolha confiável quando ficção adulta explícita é a entrega essencial; os limites registrados importam mais que o nome Flash.









