Migrer de Gemini 3.7 Flash vers Gemini 3.8 Flash : checklist pratique
Google a lancé Gemini 3.8 Flash le 2 septembre 2026, trois semaines après Gemini 3.7 Flash, avec le même prix de lancement et une vitesse comparable. L’ID du modèle est gemini-3.8-flash, sans suffixe de prévisualisation, et sa fiche le décrit comme « basé sur Gemini 3.7 Flash ». Pour une simple invite de chat, remplacer l’ID suffit. Dès que vous utilisez la réflexion, l’échantillonnage ou une boucle d’outils, vérifiez toutefois ces neuf points.
Essayez Apidog dès aujourd’hui
Ce guide s’appuie sur la page What’s new in Gemini 3.8 Flash et le guide développeur Gemini 3. Chaque étape fournit un exemple pour l’API Interactions, désormais privilégiée par Google, et pour le point de terminaison hérité generateContent.
Vous pouvez copier ces fragments dans Apidog et les tester sur le point de terminaison actif avant le déploiement. Pour une présentation du modèle, consultez ce qu’est Gemini 3.8 Flash.
Gemini 3.8 Flash « travaille plus dur » sur les tâches complexes : il effectue des étapes de raisonnement plus courtes, vérifie son travail et appelle les outils de manière itérative. Ces gains peuvent augmenter la consommation de jetons. La migration doit donc couvrir la configuration et le budget par route.
Ce qui change — et ce qui ne change pas
| Domaine | Gemini 3.7 Flash | Gemini 3.8 Flash |
|---|---|---|
| ID du modèle | gemini-3.7-flash |
gemini-3.8-flash |
| Contexte / sortie | 1 048 576 / 65 536 | Identique |
| Prix jusqu’au 31 décembre 2026 | 0,75 $ / 3,75 $ par million de jetons | Identique |
| Prix à partir du 1er janvier 2027 | — | 1,50 $ / 7,50 $ pour les deux modèles |
| Niveaux de réflexion |
low, medium, high
|
Identiques ; minimal provoque une erreur ; medium par défaut |
| Jetons par tâche | Référence | Environ 30 % de jetons de sortie supplémentaires en moyenne |
| Résultats de fonction |
call_id + name
|
Les deux sont obligatoires |
| Support | Entièrement supporté, aucune date de dépréciation | Modèle actuel |
Les prix proviennent de la page de tarification Gemini API, où les lignes Flash 3.6, 3.7 et 3.8 sont identiques.
Étape 0 : décider si la migration est nécessaire
La migration n’est pas obligatoire. Google indique dans son post de lancement que Gemini 3.7 Flash « reste entièrement pris en charge », sans date de fin publiée.
Le prix par jeton est inchangé, mais la consommation peut augmenter. Selon Artificial Analysis, Gemini 3.8 Flash en niveau de réflexion élevé utilise environ 48 000 jetons de sortie par tâche sur leur index, soit 30 % de plus que Gemini 3.7 Flash. Le coût passe ainsi d’environ 0,40 $ à 0,58 $ par tâche, tandis que le score de l’index progresse de 56 à 59. La précision d’utilisation des outils sur τ³-Banking augmente de 12 points, jusqu’à 45 %.
En pratique :
- restez sur 3.7 Flash si votre charge est courte, sensible à la latence ou déjà validée ;
- migrez vers 3.8 Flash si vous privilégiez la capacité sur les tâches complexes ;
- utilisez la comparaison Gemini 3.8 Flash vs Gemini 3.7 Flash pour choisir route par route.
Étape 1 : remplacer l’ID du modèle
API Interactions
{"model": "gemini-3.7-flash", "input": "..."}
{"model": "gemini-3.8-flash", "input": "..."}
API generateContent
POST /v1beta/models/gemini-3.7-flash:generateContent
POST /v1beta/models/gemini-3.8-flash:generateContent
SDK Python
client.interactions.create(
model="gemini-3.8-flash",
input=...,
generation_config={"thinking_level": "medium"},
)
client.models.generate_content(
model="gemini-3.8-flash",
contents=...,
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(thinking_level="low")
),
)
Si vous n’avez jamais utilisé Interactions, consultez le guide de l’API Gemini 3.8 Flash. L’ancien tutoriel Gemini 3.7 Flash couvre uniquement generateContent.
Checklist de migration en neuf points
1. Remplacer thinking_level: "minimal" par "low"
Gemini 3.8 Flash accepte low, medium et high. La valeur minimal provoque une erreur de validation. Sans configuration explicite, le niveau par défaut est medium.
Avant :
{"generation_config": {"thinking_level": "minimal"}}
Après :
{"generation_config": {"thinking_level": "low"}}
Format hérité :
{"generationConfig": {"thinkingConfig": {"thinkingLevel": "low"}}}
low est le remplacement direct de minimal pour les routes sensibles à la latence. Consultez la documentation Google sur la réflexion et le guide Quel niveau utiliser par itinéraire.
Attention : Gemini 3 Pro utilise
highpar défaut. Ne copiez pas sa configuration sans la vérifier.
2. Supprimer temperature, top_p et top_k
Google recommande de conserver la température par défaut de 1.0 pour les modèles Gemini 3. Une valeur plus basse peut provoquer des boucles ou dégrader les performances.
Avant :
{"generationConfig": {"temperature": 0.2, "topP": 0.9, "topK": 40}}
Après :
{"generationConfig": {"thinkingConfig": {"thinkingLevel": "medium"}}}
Pour obtenir du JSON reproductible, utilisez plutôt les sorties structurées. Elles imposent un schéma sans modifier l’échantillonnage.
3. Remplacer thinking_budget par thinking_level
thinking_budget était un plafond entier de jetons. thinking_level est une énumération de chaînes ; il n’existe donc pas de conversion arithmétique directe.
Avant :
{"generationConfig": {"thinkingConfig": {"thinkingBudget": 4096}}}
Après :
{"generationConfig": {"thinkingConfig": {"thinkingLevel": "low"}}}
Choisissez le niveau selon l’intention :
-
lowpour la latence ; -
mediumpour les routes standard ; -
highpour les agents et les tâches multi-étapes.
Les jetons de réflexion sont toujours facturés comme des jetons de sortie et apparaissent dans usageMetadata.thoughtsTokenCount. Le contrôle des coûts passe donc d’un plafond strict à un niveau par route et à des assertions dans vos tests.
4. Supprimer candidate_count
Gemini 3 et les versions ultérieures ne prennent pas en charge plusieurs candidats.
Avant :
{"generationConfig": {"candidateCount": 2}}
Après :
{"generationConfig": {}}
Supprimez également tout code qui accède à candidates[1] ou aux indices suivants. Si vous sélectionniez le meilleur candidat, utilisez un niveau de réflexion supérieur afin que le modèle vérifie sa réponse en interne.
5. Ajouter call_id et name aux résultats de fonction
Sur Gemini 3.8 Flash, chaque résultat de fonction doit inclure l’identifiant de l’appel et le nom de la fonction. Un résultat qui ne renvoie que le nom échoue à l’étape suivante.
API Interactions :
{
"previous_interaction_id": "<id de l'étape function_call>",
"input": [
{
"type": "function_result",
"name": "get_weather",
"call_id": "<id de l'étape function_call>",
"result": [
{
"type": "text",
"text": "{\"temp_c\": 24}"
}
]
}
]
}
L’étape function_call fournit id, name et arguments. Recopiez id et name tels quels.
Dans l’API héritée, functionResponse utilise :
-
id, correspondant à l’ID de la partiefunctionCall; -
name; -
response.
Référez-vous à la documentation Google sur les appels de fonction et au guide Gemini 3.8 Flash sur les appels de fonction.
6. Renvoyer les signatures de pensée sans modification
Les modèles Gemini 3 ajoutent des signatures de pensée aux parties de réponse. Lorsque vous reconstruisez le tour suivant, renvoyez chaque partie exactement comme reçue, signatures incluses — pas uniquement le texte.
Avec Interactions, vous pouvez laisser Google conserver l’état :
{
"previous_interaction_id": "<id>"
}
Si vous définissez store: false, vous devez conserver et renvoyer vous-même l’historique, les blocs de pensée et les signatures.
Avec generateContent, l’application gère toujours l’historique. Vérifiez tout code qui reconstruit contents à partir d’une copie tronquée de la dernière réponse.
7. Prévoir davantage de jetons par route
Cette évolution ne produit aucune erreur : elle est donc facile à manquer. Google précise que le modèle peut utiliser davantage de jetons sur les tâches longues et complexes, surtout avec des niveaux d’effort élevés.
Planifiez par route :
-
Routes sensibles à la latence :
low. Artificial Analysis mesure environ 0,8 minute et 0,24 $ par tâche, contre 2,5 minutes et 0,58 $ avechigh. -
Routes standard :
medium, autour de 0,41 $ par tâche sur le même index. - Boucles d’agents : prévoyez davantage de tours d’appel d’outils et limitez la boucle par nombre de tours, pas uniquement par nombre de jetons.
Revoyez aussi la limite de 65 536 jetons de sortie. Une invite qui produisait 40 000 jetons avec Gemini 3.7 Flash peut désormais s’en approcher. La ventilation des prix de Gemini 3.8 Flash permet d’estimer le coût aux trois niveaux.
8. Mesurer media_resolution_high sur les PDF et la vidéo
Gemini 3.8 Flash accepte le texte, les images, la vidéo, l’audio et les PDF. La résolution média modifie le nombre de jetons consommés, avec un coût qui varie selon le type de média.
Ne réutilisez pas automatiquement une configuration haute résolution de Gemini 3.7 Flash. Testez un PDF et une vidéo représentatifs à chaque résolution, puis comparez :
usageMetadata.promptTokenCount
Un réglage économique pour une page PDF peut devenir coûteux sur une vidéo longue.
9. Supprimer les appels de segmentation d’image
La segmentation d’image n’est pas prise en charge par les modèles Gemini 3. Si votre pipeline demandait à Gemini 3.8 Flash de produire des masques, le chemin échouera au lieu de renvoyer une sortie exploitable.
La fiche du modèle Gemini 3.8 Flash indique également que la génération d’images, la génération audio et l’API Live ne sont pas prises en charge.
Construire un plan de régression dans Apidog
Deux changements importants — les paramètres de réflexion et les boucles d’outils — ainsi qu’une consommation de jetons différente nécessitent une comparaison reproductible. Apidog envoie les requêtes, vérifie les réponses et planifie les exécutions ; il n’exécute pas le modèle.
1. Créer l’environnement
Créez un environnement Gemini contenant :
-
GEMINI_API_KEY, stockée comme variable secrète ; -
MODEL, utilisée dans les requêtes.
Réutilisez {{MODEL}} dans l’URL generateContent et dans le champ model d’Interactions.
2. Enregistrer les invites de référence
Préparez 10 à 20 invites représentant vos routes réelles :
- échange de chat court ;
- sortie structurée ;
- appel de fonction en deux tours avec outil simulé ;
- entrée PDF ;
- entrée vidéo.
Chaque invite devient une requête dans un scénario de test.
3. Ajouter les assertions
Ajoutez au moins trois assertions par requête :
- le statut HTTP vaut 200 et la réponse respecte un schéma JSON ;
- les champs consommés en aval sont présents pour les sorties structurées ;
-
usageMetadata.thoughtsTokenCountreste sous le plafond défini pour la route, par exemple 8 000 en niveaulow; -
usageMetadata.totalTokenCountreste sous le budget de la route.
Pour les appels de fonction, vérifiez également que le call_id renvoyé correspond à l’id de l’étape function_call précédente.
4. Comparer les deux modèles côte à côte
Dupliquez le scénario :
- scénario A :
MODEL=gemini-3.7-flash; - scénario B :
MODEL=gemini-3.8-flash.
Les rapports de test affichent les assertions et les corps de réponse dans une même vue. Vous pouvez ainsi mesurer le delta de jetons par invite sans reconstruire les données depuis les journaux.
5. Planifier les tests
Transformez le scénario Gemini 3.8 Flash en exécution planifiée afin de vérifier quotidiennement les plafonds de jetons pendant la période de déploiement. Consultez le guide des tests API planifiés.
Vous pouvez aussi télécharger Apidog et importer les fragments cURL.
Préparer le retour arrière
Gemini 3.7 Flash reste supporté et conserve le même tarif. Gardez donc les IDs dans la configuration, pas dans le code :
{
"gemini_model": "gemini-3.8-flash",
"gemini_fallback_model": "gemini-3.7-flash"
}
Appliquez ces trois règles :
- utilisez la forme de requête migrée sur les deux modèles : pas de
minimal, pas de paramètres d’échantillonnage,thinking_levelplutôt quethinking_budget, pas decandidate_count, etcall_id+namepour les outils ; - déployez route par route, en commençant par les routes
lowet en terminant par les boucles d’agents ; - surveillez les jetons et la latence, pas uniquement les erreurs HTTP.
Le déclencheur de retour arrière le plus probable est une hausse du coût ou de la latence plutôt qu’une erreur 4xx. Intégrez donc les plafonds de jetons à votre système d’alerte.
FAQ
Gemini 3.8 Flash coûte-t-il plus cher que Gemini 3.7 Flash ?
Pas par jeton. Les deux modèles coûtent 0,75 $ en entrée et 3,75 $ en sortie par million de jetons jusqu’au 31 décembre 2026, puis 1,50 $ et 7,50 $ à partir du 1er janvier 2027. En revanche, Gemini 3.8 Flash utilise davantage de jetons par tâche, surtout avec un niveau de réflexion élevé.
Que se passe-t-il si je conserve thinking_level: "minimal" ?
La requête échoue avec une erreur de validation. Remplacez minimal par low.
Dois-je migrer vers Interactions ?
Non. generateContent est considéré comme hérité, mais reste entièrement supporté sans date de fin de vie. Interactions ajoute surtout la gestion d’état côté serveur avec previous_interaction_id, ce qui simplifie la conservation des signatures de pensée.
Gemini 3.7 Flash est-il déprécié ?
Non. Google indique qu’il reste entièrement pris en charge et n’a publié aucune date de dépréciation. Un retour arrière contrôlé par configuration reste donc viable.
Puis-je conserver la température utilisée avec Gemini 3.7 Flash ?
Google recommande de laisser la température à 1.0 pour les modèles Gemini 3. Si vous utilisiez une température plus basse, supprimez-la et vérifiez vos évaluations. Pour des sorties déterministes, préférez les sorties structurées.
Déployer progressivement
La modification de code est limitée :
- un changement d’ID ;
- quatre suppressions ou renommages de configuration ;
- deux champs supplémentaires dans les boucles d’outils ;
- la conservation des signatures de pensée.
L’essentiel du travail consiste à vérifier le budget de jetons par route. Enregistrez vos invites de référence, ajoutez des assertions de schéma et de consommation, exécutez Gemini 3.7 et 3.8 Flash côte à côte jusqu’à stabilisation des résultats, puis activez le nouveau modèle route par route.
Si une route régresse, le drapeau de configuration permet de revenir à Gemini 3.7 Flash sans modifier le code des autres routes.
Top comments (0)