Pular para o conteúdo principal

APIs Gemini Flash comparadas: preço, contexto e limites NSFW

Compare quatro APIs Gemini Flash por preço, contexto, raciocínio e limites com conteúdo adulto, com um script de streaming que você pode copiar.

Autor
Lydia
Publicado
Leitura
13 min de leitura
Atualizado
Duas pessoas conversam sobre tigelas brancas em um ateliê de cerâmica com um forno turquesa.

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.

RotaLimite de entradaEntrada sem cacheEntrada em cacheSaídaEsforço padrão / mínimomax_tokens padrão
Gemini 2.5 Flash1.048.576$0,285$0,0285$2,375medium / low16.384
Gemini 3 Flash Preview256.000$0,45$0,045$2,70medium / minimal16.384
Gemini 3.5 Flash Lite1.048.576$0,30$0,03$2,50minimal / minimal4.096
Gemini 3.7 Flash1.048.576$0,675$0,0675$3,375medium / low16.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 lista minimal, mas a página do modelo diz que esse endpoint o rejeita; por isso use low como piso ali. Trocar um script do Lite para outra rota sem definir o esforço também o muda de minimal para medium.

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.

RotaCusto por ticket10.000 tickets, sem raciocínio extraSe 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

TrabalhoComece comPor quêSuba quando
Rotulagem, roteamento, extração de campos2.5 Flash, lowMenores tarifas; a janela de 1M comporta uma transcrição inteiraCampos saem errados em uma amostra: suba para medium e depois teste o 3.7 Flash
Milhões de linhas curtas e simples3.5 Flash LitePadrã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 produto2.5 Flash ou LiteBarato e estável com pouco esforçoO tom importa: 3.7 Flash
Chat turno a turno3 Flash Preview, lowRota de turnos curtos, com algumas conclusões de ficção adulta em nossos testes; no nível L4, geralmente suavizada ou recusadaContexto 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ódigo3.7 FlashFeito para uso de ferramentas e trabalho em várias etapasO 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.

RotaL1 a L3L4 cena íntimaNível extremo
2.5 FlashEntregue2 de 9, ambas com prompt de sistema5 de 6
3 Flash PreviewEntregue1 de 8, geralmente suavizada6 de 6
3.5 Flash LiteL1 e L2 limpos; L3 1 de 30 de 94 de 6
3.7 FlashEm sua maioria entregue0 de 9Misto

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

  1. Abra o Gemini 2.5 Flash e mude para a aba Playground (para enviar é preciso fazer login).
  2. Cole um ticket de suporte e peça os campos de categoria e urgente, com o menu suspenso de raciocínio em Low.
  3. 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.

python
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

ProblemaMudança direta
minimal rejeitadoUse low no 2.5 Flash e no 3.7 Flash
JSON vazio ou cortadoVerifique 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 cedoO max_tokens padrão dele é 4.096; defina-o explicitamente
400 em uma parte de mídiaVerifique 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 chaveA 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 inventadasNomeie cada chave na mensagem de sistema e rejeite as extras no seu cliente
Entrada acima de 256.000 tokensO 3 Flash Preview a rejeita; use uma rota de 1.048.576 tokens
Erro de gateway após cerca de 100 segundosAtive 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.

Também em English · 日本語 · 한국어 · Deutsch · Français · Español · Русский · Italiano · Polski

Experimente você mesmo

Você paga só pelo que executar — sem plano e sem assinatura.

Feito com MiniMax H3 · ByteDance Seedance 2.0 Fast