Aller au contenu principal

API Gemini Flash comparées : prix, contexte et limites NSFW

Comparez quatre API Gemini Flash : prix, contexte, raisonnement et limites sur le contenu adulte, avec un script de streaming à copier.

Auteur
Lydia
Publié
Lecture
13 min de lecture
Mis à jour
Deux personnes discutent de bols blancs dans un atelier de céramique doté d'un four turquoise.

Un modèle Flash peut classer des tickets de support, rédiger le texte de sortie d'un créateur ou franchir l'étape suivante d'une boucle d'agent. Ces tâches demandent des quantités de raisonnement différentes, et le tarif le plus bas par token ne donne pas toujours la tâche terminée la moins chère. Commencez par 2.5 Flash pour l'extraction et la rédaction courante, 3.5 Flash Lite pour les lignes simples en gros volume et 3.7 Flash pour le code et les outils en plusieurs étapes. 3 Flash Preview convient aux tours courts dans sa limite d'entrée de 256 000 tokens. Pour la fiction adulte, 2.5 Flash et Preview vont le plus loin dans nos tests, mais tous deux adoucissent ou refusent le plus souvent la scène intime écrite. Pour une lecture plus longue et riche en raisonnement, consultez le guide de Gemini 3.1 Pro.

Prix et limites

Les tarifs sont en USD par million de tokens. Les quatre routes acceptent le texte, les images et la vidéo téléversée ; 2.5 Flash et 3 Flash Preview acceptent aussi l'audio, contrairement à Lite et à 3.7. La vidéo téléversée est limitée à 14 Mo par requête. Aucune n'accepte un PDF ni une partie de fichier générique : extrayez son texte ou convertissez les pages utiles en images.

RouteLimite d'entréeEntrée sans cacheEntrée en cacheSortieEffort par défaut / minimalmax_tokens par défaut
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

ID de modèle : 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. Chaque route autorise jusqu'à 65 536 tokens de sortie, la sortie JSON, jusqu'à 128 définitions d'outils, temperature, top-p, seed et quatre séquences d'arrêt, mais n'offre aucun contrôle parallel_tool_calls. Le mode objet JSON contrôle la syntaxe, pas les noms de vos champs ni leur véracité ; conservez dans le script ci-dessous les vérifications de clé, de type et de source. Sur les routes Gemini 3, laissez temperature à la valeur par défaut recommandée de 1,0 et contrôlez la structure avec response_format et le message système.

Deux points de ce tableau sont faciles à confondre :

  • Lite n'est pas la moins chère par token. Ses tarifs d'entrée et de sortie sont supérieurs à ceux de 2.5 Flash. Sa facture peut être plus basse s'il utilise moins de tokens de sortie ; comparez le seuil de rentabilité plus bas.
  • Définissez l'effort explicitement. minimal est rejeté sur 2.5 Flash. Sur 3.7 Flash, le schéma liste minimal, mais la page du modèle indique que cet endpoint le rejette ; utilisez donc low comme plancher. Faire passer un script de Lite à une autre route sans définir l'effort le fait aussi passer de minimal à medium.

Ce que coûte un lot

Prenez 10 000 tickets de support, chacun d'environ 500 tokens d'entrée (consigne plus ticket) et une réponse JSON de 80 tokens.

RouteCoût par ticket10 000 tickets, sans réflexion supplémentaireSi la réflexion ajoute 700 tokens de sortie par 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

Les tokens de réflexion sont facturés comme de la sortie et comptent dans max_tokens ; 700 tokens de réflexion supplémentaires par ticket peuvent dominer la facture. Définissez l'effort explicitement et utilisez la sortie facturée pour affiner l'estimation ; minimal ne garantit pas un raisonnement nul.

Avec 500 tokens d'entrée et exactement 80 tokens de sortie facturés, Lite coûte $0,00035. À taille d'entrée égale, 2.5 Flash dépasse ce coût à 88 tokens de sortie facturés : une réponse de 80 tokens plus huit tokens de réflexion. Si Lite raisonne aussi au-delà de ces 80 tokens, son seuil de rentabilité monte. Choisissez entre les deux d'après la sortie facturée totale et les lignes correctes, pas d'après le seul libellé d'effort.

Une consigne fixe placée au début de chaque requête coûte moins cher lorsque la réponse l'indique comme mise en cache : 1 000 requêtes qui partagent un préfixe de 20 000 tokens coûtent $5,70 d'entrée sans cache sur 2.5 Flash et $0,57 si tout est facturé en cache. Placez d'abord les consignes partagées et les définitions d'outils, puis les dates et les ID de ticket. Le guide de mise en cache de Google décrit les succès implicites comme opportunistes : un préfixe stable augmente la probabilité, sans garantir de remise. Budgétez au tarif sans cache tant que la réponse hébergée n'indique pas de tokens en cache.

La remise Batch de la grille tarifaire de Google, qui divise par deux son prix catalogue, relève de son propre service asynchrone. Chaque requête envoyée à SpicyAPI est facturée aux tarifs ci-dessus, et un quota gratuit de Google AI Studio ou un abonnement Google ne la paie pas. Google indique aussi 3.7 Flash à $0,75 en entrée et $3,75 en sortie jusqu'au 31 décembre 2026, puis le double à partir du 1er janvier 2027. C'est le calendrier publié par Google, pas un futur tarif SpicyAPI annoncé ; revérifiez le catalogue hébergé avant de budgétiser un lancement en 2027.

Quelle route pour quelle tâche

TâcheCommencer parPourquoiMonter en gamme quand
Étiquetage, routage, extraction de champs2.5 Flash, lowTarifs les plus bas ; la fenêtre de 1M absorbe une transcription entièreDes champs sont faux sur un échantillon : passez à medium, puis essayez 3.7 Flash
Des millions de lignes courtes et simples3.5 Flash Liteminimal par défaut, sortie la plus rapide des quatre dans nos tests (environ 118 tokens/s contre 37 à 98)Il faut du jugement par ligne, pas seulement du formatage
Traduction, réécriture, textes produit2.5 Flash ou LitePeu cher et stable à faible effortLe ton compte : 3.7 Flash
Conversation tour par tour3 Flash Preview, lowRoute pour tours courts, avec quelques complétions de fiction adulte dans nos tests ; le plus souvent adoucie ou refusée au niveau L4Contexte de document entier : utilisez une route 1M. C'est un modèle en préversion ; nommez votre solution de repli avant de vous y fier
Boucles d'agent et code3.7 FlashConçu pour l'usage d'outils et le travail en plusieurs étapesLe coût par étape compte plus que la qualité : Lite ou 2.5 Flash

Les connaissances s'arrêtent en janvier 2025 sur 2.5 Flash et en mars 2026 sur 3.5 Flash Lite ; placez donc les faits plus récents, comme les prix ou les versions de bibliothèques, dans le prompt.

Trois tâches de créateur et la route à utiliser

Extraire un brief de sortie. Donnez à 2.5 Flash le titre approuvé, les personnages, la date de sortie et la durée, et demandez une ligne avec ces quatre champs plus le lieu. Si le brief ne nomme jamais de lieu, la ligne utile contient null ; le modèle n'invente pas un hôtel ou un studio à partir du thème.

Rédiger un texte promotionnel public. Un brief fictif pour Last Train pourrait approuver Mara et Jon comme personnages et un clip de 45 secondes. Demandez trois légendes courtes n'utilisant que ces faits. Une légende qui ajoute « 4K », un son natif ou une date de sortie non confirmée est un brouillon raté, même si le ton séduit. Utilisez Lite ou 2.5 Flash pour la première passe ; réservez une route plus chère à une réécriture qui exige vraiment un meilleur jugement.

Préparer un transfert au support. Fournissez l'ID de tâche, son état observé et le symptôme du client. Demandez une note concise qui conserve l'ID et distingue « queued » de « failed ». Le modèle peut organiser les éléments ; il ne peut pas découvrir l'état réel de la tâche à partir d'un ticket qui ne le contient jamais.

Pour un lot de rédaction plus long, 1 000 requêtes de 20 000 tokens d'entrée sans cache et de 2 000 tokens de sortie facturés chacune coûtent $10,45 sur 2.5 Flash ou $20,25 sur 3.7 Flash à ces tarifs. C'est pourquoi il est utile de séparer une première passe courante d'une étape de décision coûteuse, plutôt que de basculer toute la charge sur la route la plus récente.

Limites du contenu adulte par route

Le catalogue indique que ces routes n'ont aucun filtre de contenu ajouté par SpicyAPI ; cela ne supprime pas les politiques de contenu propres aux modèles. D'après nos tests de septembre 2026, les modèles diffèrent dans ce qu'ils écrivent d'eux-mêmes. Niveaux : L1 suggestif, L2 scène sensuelle sous-entendue, L3 intense, L4 scène intime écrite entre adultes. Le niveau extrême combine contrainte et jeux de coups avec de la violence explicite entre adultes, trois requêtes par catégorie.

RouteL1 à L3L4 scène intimeNiveau extrême
2.5 FlashFourni2 sur 9, toutes deux avec un prompt système5 sur 6
3 Flash PreviewFourni1 sur 8, le plus souvent adoucie6 sur 6
3.5 Flash LiteL1 et L2 propres ; L3 1 sur 30 sur 94 sur 6
3.7 FlashLe plus souvent fourni0 sur 9Variable

Avis : 2.5 Flash, 3 Flash Preview, 3.5 Flash Lite, 3.7 Flash.

Les deux complétions L4 sur 2.5 Flash reposaient sur une fiction cadrée par le système ; les demandes directes ont toutes été refusées dans ce test. Si une scène intime écrite est votre livrable essentiel, choisissez un autre modèle. Ces routes Flash restent utiles pour les briefs de sortie, les plannings et l'étiquetage de messages autour d'un travail pour adultes.

Essayez d'abord dans Playground

  1. Ouvrez Gemini 2.5 Flash et passez à l'onglet Playground (l'envoi exige une connexion).
  2. Collez un ticket de support et demandez les champs catégorie et urgent, avec la liste déroulante de raisonnement sur Low.
  3. Ouvrez Gemini 3.5 Flash Lite, réglez le raisonnement sur minimal, exécutez les mêmes tickets et comparez les étiquettes correctes et la sortie facturée.

Un script de lot en streaming

Une fois les règles validées dans Playground, installez le client compatible avec python3 -m pip install openai, enregistrez ce code sous classify_tickets.py, définissez SPICY_API_KEY et exécutez python3 classify_tickets.py. Il effectue au plus deux requêtes facturables, une par ticket d'exemple. Le client valide les deux champs et laisse les lignes en échec non résolues. Il n'achète pas automatiquement de réponses de remplacement.

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))

La reprise des requêtes et les détails du streaming sont décrits dans la documentation du chat.

Laissez un agent préparer l'appel

Pour classer des tickets de façon répétée, demandez à votre agent de code d'utiliser le SpicyAPI Skill : « Read google/gemini-2.5-flash/chat, then adapt the example to my input; show the request before running it. » La consultation via la CLI est spicyapi models get google/gemini-2.5-flash/chat --json ; celle via MCP est spicyapi_model_get avec model: "google/gemini-2.5-flash/chat". Les appels de chat utilisent un client compatible ou l'API de chat ; les commandes de tâches média ne génèrent pas de réponses de chat.

Résoudre les échecs courants

ProblèmeChangement direct
minimal rejetéUtilisez low sur 2.5 Flash et 3.7 Flash
JSON vide ou tronquéVérifiez d'abord le motif de fin et la tâche d'origine. Augmentez max_tokens seulement si la limite de tokens a coupé la réponse ; la réflexion partage ce budget. Un flux interrompu demande une reprise, pas une nouvelle tentative automatique plus grande. Exigez stop, l'usage final et [DONE] avant d'importer
Les réponses de Lite s'arrêtent tôtSon max_tokens par défaut est de 4 096 ; définissez-le explicitement
400 sur une partie médiaVérifiez sa forme : utilisez image_url ou un video_url téléversé ; l'audio se limite à 2.5 Flash et Preview. Les parties PDF/fichier ne sont pas prises en charge.
400 quand vous renvoyez une cléLa requête d'origine peut être terminée ou encore en cours ; aucune des deux réponses ne peut être rejouée sur cette connexion. Inspectez sa tâche et son règlement avant de budgétiser une nouvelle génération
Clés JSON inventéesNommez chaque clé dans le message système et rejetez les clés en trop dans votre client
Entrée de plus de 256 000 tokens3 Flash Preview la rejette ; utilisez une route de 1 048 576 tokens
Erreur de passerelle après environ 100 secondesActivez stream: true

Le choix pratique

Utilisez 2.5 Flash pour l'extraction validée et la rédaction courante, Lite quand une tâche simple profite d'un raisonnement minimal, et 3.7 Flash pour le code ou le travail d'outils en plusieurs étapes. Gardez Preview pour un flux à tours courts qui tient dans sa fenêtre d'entrée plus petite. Aucune de ces routes n'est un choix fiable quand la fiction adulte explicite est le livrable essentiel ; les limites enregistrées comptent plus que le nom Flash.

Aussi en English · 日本語 · 한국어 · Deutsch · Español · Português (Brasil) · Русский · Italiano · Polski

Essayez par vous-même

Vous ne payez que ce que vous lancez : ni forfait, ni abonnement.

Créé avec MiniMax H3 · ByteDance Seedance 2.0 Fast