Google a lancé Gemini 3.7 Flash le 13 août 2026, trois semaines après 3.6 Flash, et le qualifie de « notre modèle polyvalent le plus intelligent ». Pour les développeurs, la note de codage agentique a fortement augmenté (DeepSWE v1.1 est passée de 49,0 % à 65,3 %), le prix de lancement est la moitié de celui de 3.6 Flash, et la surface de l’API est inchangée. Si vous utilisez déjà Gemini, remplacez simplement l’ID du modèle. Sinon, il s’agit du point d’entrée le moins cher proposé par Google pour un modèle de ce niveau.
Essayez Apidog dès aujourd’hui
Ce guide vous fait passer de zéro à une intégration testable : obtenez une clé API, envoyez une requête cURL, portez-la vers Python et Node.js, diffusez les réponses, réglez generationConfig, puis testez vos invites dans Apidog avant de les intégrer au code. D’après l’annonce officielle, le modèle prend en charge un contexte de 1 million de jetons, une sortie de 64 000 jetons, les entrées multimodales, l’appel de fonctions, la recherche comme outil et l’utilisation informatique.
Si vous venez de la génération précédente, le format de requête reste celui présenté dans notre guide de l’API Gemini 3 Flash Preview. Cet article se concentre sur le flux de travail Gemini 3.7 Flash.
TL;DR
- ID du modèle :
gemini-3.7-flash - Requête synchrone :
POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent
- Authentification :
x-goog-api-key: <KEY> - Prix de lancement : 0,75 $ par million de jetons d’entrée et 3,75 $ par million de jetons de sortie jusqu’au 31 décembre 2026. À partir du 1er janvier 2027 : 1,50 $ et 7,50 $.
- Limites : 1 million de jetons en entrée, 64 000 en sortie.
- Entrées : texte, image, vidéo, audio et PDF. Sortie : texte.
- Streaming :
:streamGenerateContent?alt=sse - Testez d’abord l’endpoint dans Apidog, puis portez une requête validée vers votre SDK.
À quoi sert Gemini 3.7 Flash ?
Les modèles Flash privilégient habituellement la vitesse et le coût par rapport aux capacités maximales. Gemini 3.7 Flash réduit cet écart avec des gains notables par rapport à 3.6 Flash :
- DeepSWE v1.1 : 49,0 % → 65,3 %
- FrontierCode 1.1 Main : 34,4 % → 43,6 %
- AutomationBench : 17,0 % → 30,4 %
- WebDev Arena Elo : 1538 → 1588
Utilisez 3.7 Flash en priorité dans les cas suivants :
- Boucles d’agents : planification en plusieurs étapes et appels d’outils.
- Génération et débogage de code : les résultats DeepSWE et FrontierCode indiquent de meilleurs résultats sur ces tâches.
- Traitement de documents : PDF en entrée et extraction structurée depuis des documents réels.
-
Entrées multimodales à budget limité : texte, image, vidéo, audio et PDF utilisent le même tableau
contents.
Pour les fonctionnalités complètes, y compris le score Harvey LAB-AA et les protections CBRN et cyber, consultez les nouveautés de Gemini 3.7 Flash. Gemini 3.5 Pro reste retardé et Axios rapporte que Google déploie volontairement les évolutions Flash avant son prochain modèle phare.
Obtenir une clé API
Deux options existent selon votre contexte.
AI Studio : pour démarrer rapidement
- Ouvrez aistudio.google.com/apikey.
- Cliquez sur Obtenir une clé API.
- Sélectionnez un projet Google Cloud.
- Copiez la clé.
La clé fonctionne avec generativelanguage.googleapis.com. Gemini 3.7 Flash est disponible dans plus de 160 pays.
Vertex AI : pour la production sur GCP
Utilisez Vertex AI si votre infrastructure est déjà sur Google Cloud :
- Authentification OAuth via comptes de service ou jetons courts.
- Endpoint
aiplatform.googleapis.com. - IAM, journaux d’audit et endpoints régionaux.
L’ID de modèle et le corps de requête restent identiques ; seuls l’URL et le mécanisme d’authentification changent.
Exportez votre clé dans l’environnement local :
export GEMINI_API_KEY="AIza..."
Ne codez jamais cette clé en dur. Évitez aussi ?key=... en production : les chaînes de requête peuvent être enregistrées dans les logs.
Endpoint et authentification
Endpoint synchrone :
POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent
Endpoint de streaming SSE :
POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:streamGenerateContent?alt=sse
Ajoutez la clé dans l’en-tête :
x-goog-api-key: $GEMINI_API_KEY
Votre première requête avec cURL
Envoyez cette requête après avoir exporté GEMINI_API_KEY :
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"role": "user",
"parts": [{
"text": "Review this SQL for injection risk: SELECT * FROM orders WHERE id = ${orderId}"
}]
}],
"generationConfig": {
"temperature": 0.3,
"maxOutputTokens": 1024
}
}'
La réponse contient :
-
candidates: les réponses générées ; -
candidates[].content.parts: le texte ou les appels de fonctions ; -
candidates[].finishReason: la raison d’arrêt ; -
usageMetadata: les compteurs de jetons.
Surveillez usageMetadata, car les jetons de sortie coûtent cinq fois plus cher que les jetons d’entrée au tarif de lancement.
Gemini utilise
contents,roleetparts, pas le formatmessagesd’OpenAI. Vérifiez ce mapping avant une migration.
Démarrage rapide Python
Installez ou mettez à niveau le SDK :
pip install --upgrade google-generativeai
Appelez le modèle avec une instruction système et des paramètres de génération :
import os
import google.generativeai as genai
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
model = genai.GenerativeModel(
model_name="gemini-3.7-flash",
system_instruction=(
"You are a code reviewer. "
"Flag issues as blocking or non-blocking."
),
generation_config={
"temperature": 0.3,
"max_output_tokens": 2048,
},
)
response = model.generate_content(
"Review this Flask route for security issues:\n\n"
"@app.route('/user/<id>')\n"
"def get_user(id):\n"
" return db.execute(f'SELECT * FROM users WHERE id = {id}')"
)
print(response.text)
print("input tokens:", response.usage_metadata.prompt_token_count)
print("output tokens:", response.usage_metadata.candidates_token_count)
Envoyer un PDF
Les fichiers multimodaux sont transmis dans le même tableau de contenu. Téléversez le fichier, puis ajoutez-le à la requête :
invoice = genai.upload_file("q3-invoice.pdf")
response = model.generate_content([
invoice,
"Extract the invoice number, total, and due date as JSON.",
])
print(response.text)
Ce flux correspond directement aux gains observés sur GDP.pdf, passé de 22,0 % à 34,0 %.
Démarrage rapide Node.js
Installez le SDK Node.js :
npm install @google/generative-ai
Utilisez responseMimeType et responseSchema pour demander une sortie JSON exploitable directement :
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
const model = genAI.getGenerativeModel({
model: "gemini-3.7-flash",
generationConfig: {
temperature: 0.3,
maxOutputTokens: 2048,
responseMimeType: "application/json",
responseSchema: {
type: "object",
properties: {
severity: {
type: "string",
enum: ["blocking", "non-blocking"],
},
issues: {
type: "array",
items: { type: "string" },
},
},
required: ["severity", "issues"],
},
},
});
const result = await model.generateContent(
"Review this Express handler: " +
"app.get('/search', (req, res) => res.send(eval(req.query.q)))"
);
console.log(JSON.parse(result.response.text()));
responseSchema doit être associé à responseMimeType: "application/json". Cette combinaison évite de devoir parser ou nettoyer une réponse texte libre dans le code en aval.
Diffusion en continu
Pour une interface de chat ou toute réponse visible par l’utilisateur, activez le streaming.
Python
stream = model.generate_content(
"Explain the N+1 query problem with a concrete ORM example.",
stream=True,
)
for chunk in stream:
if chunk.text:
print(chunk.text, end="", flush=True)
HTTP brut
Utilisez :
POST ...:streamGenerateContent?alt=sse
Chaque ligne SSE data: contient un fragment partiel de candidates. Le dernier fragment contient usageMetadata, donc le décompte final des jetons n’est fiable qu’une fois le flux fermé.
Régler generationConfig
| Paramètre | Type | Usage pratique |
|---|---|---|
maxOutputTokens |
entier | Limite stricte de sortie, jusqu’à 64 000. C’est votre principal levier de coût. |
temperature |
nombre | De 0 à 2. Utilisez 0,2 à 0,4 pour le code et l’extraction ; 0,7+ pour le texte créatif. |
responseMimeType |
chaîne | Définissez application/json pour une sortie JSON. |
responseSchema |
objet | Impose une forme de réponse lorsqu’il est associé au type MIME JSON. |
topP |
nombre | Seuil d’échantillonnage nucleus. Conservez la valeur par défaut sauf réglage volontaire. |
stopSequences |
tableau | Arrête la génération sur certaines chaînes. Utile avec des délimiteurs. |
Les jetons de sortie coûtent 3,75 $ par million pendant la période de lancement, puis 7,50 $ à partir de janvier 2027. Fixez donc maxOutputTokens selon le besoin réel de votre flux, plutôt que sur le plafond de 64 000.
Pour des exemples de calcul par charge de travail, consultez la répartition des prix de Gemini 3.7 Flash.
Au-delà de generationConfig, le corps accepte aussi tools et toolConfig pour les déclarations de fonctions, la recherche comme outil ou l’utilisation informatique. Pour les appels parallèles et la boucle de réponse, consultez le tutoriel d’appel de fonctions Gemini 3.7 Flash.
Testez l’endpoint dans Apidog avant d’écrire le code applicatif
Tester les invites dans un script implique souvent une boucle lente : modifier, relancer, lire les logs, recommencer. Validez plutôt la requête HTTP dans un client API, puis copiez une requête déjà fonctionnelle dans votre SDK.
Configurez Apidog ainsi :
- Créez un projet et importez la spécification OpenAPI depuis la documentation Gemini API.
-
Ajoutez une variable d’environnement
GEMINI_API_KEY. -
Liez la variable à l’en-tête
x-goog-api-key. -
Créez une variable de modèle, par exemple
GEMINI_MODEL=gemini-3.7-flash. -
Construisez le tableau
contentsdans l’éditeur JSON. - Appelez l’endpoint SSE pour visualiser les fragments de streaming.
- Enregistrez les réponses valides comme exemples afin que les tests ultérieurs puissent utiliser des fixtures au lieu de l’API réelle.
Pour comparer 3.7 Flash et 3.6 Flash, modifiez uniquement la variable GEMINI_MODEL au lieu de modifier toutes vos URLs.
Vous pouvez ensuite créer des scénarios de test avec des assertions sur :
-
finishReason; - le schéma de réponse ;
-
usageMetadata; - les réponses JSON attendues.
Ce flux transforme les tests manuels d’invites en suite de régression. Pour aller plus loin, consultez le guide de test d’API pour les ingénieurs QA.
Gestion des erreurs et limites de débit
Les erreurs Gemini renvoient un objet error avec code, status et message.
| Code | Statut | Cause fréquente | Action |
|---|---|---|---|
| 400 | INVALID_ARGUMENT |
Corps malformé, rôle invalide, contents vide |
Validez le JSON avant l’envoi. |
| 401 | UNAUTHENTICATED |
Clé absente ou révoquée | Réexportez GEMINI_API_KEY et vérifiez AI Studio. |
| 403 | PERMISSION_DENIED |
Projet sans accès ou sans facturation | Vérifiez le projet et la facturation. |
| 429 | RESOURCE_EXHAUSTED |
Quota ou limite de débit atteint | Ajoutez du backoff avec gigue, regroupez les requêtes ou changez de niveau. |
| 500 | INTERNAL |
Erreur serveur transitoire | Réessayez avec un backoff exponentiel. |
| 503 | UNAVAILABLE |
Service surchargé | Réessayez après quelques secondes ; sur Vertex, essayez une autre région. |
En production, appliquez ces trois règles :
- Réessayez les 429 et les 5xx avec un backoff exponentiel et de la gigue.
- Lisez les limites actuelles sur la page des tarifs et limites de l’API Gemini, car elles varient selon le niveau et évoluent dans le temps.
-
Placez l’ID du modèle dans une variable d’environnement pour pouvoir revenir à
gemini-3.6-flashsans déploiement.
Exemple minimal de backoff en Python :
import random
import time
def retry_delay(attempt):
base = min(2 ** attempt, 30)
return base + random.uniform(0, 1)
for attempt in range(5):
try:
response = model.generate_content("Summarize this document.")
break
except Exception:
if attempt == 4:
raise
time.sleep(retry_delay(attempt))
FAQ
Gemini 3.7 Flash est-il gratuit ?
AI Studio propose un niveau gratuit avec un quota quotidien adapté au prototypage. Le tarif de lancement payant est de 0,75 $ par million de jetons d’entrée jusqu’au 31 décembre 2026. Pour les niveaux et leurs limites, consultez le guide sur l’accès gratuit à l’API Gemini.
Quelle est la différence entre AI Studio et Vertex AI ?
Le modèle et le corps de requête sont identiques.
-
AI Studio : clé API et
generativelanguage.googleapis.com. -
Vertex AI : OAuth,
aiplatform.googleapis.com, IAM, audit et endpoints régionaux.
Commencez avec AI Studio, puis passez à Vertex AI lorsque le trafic devient réel.
Puis-je envoyer des images, de l’audio et des PDF ?
Oui. Le texte, les images, les vidéos, l’audio et les PDF sont transmis sous forme de parties dans contents, soit en base64, soit par référence via l’API Files. La sortie reste du texte.
Quelle est la taille de contexte et la limite de sortie ?
Le modèle accepte 1 million de jetons en entrée et génère jusqu’à 64 000 jetons en sortie. Même avec une récupération de contexte long performante, découpez les entrées longues lorsque possible pour réduire le coût.
Dois-je migrer depuis Gemini 3.6 Flash ?
Pour les charges de travail d’agents et de code, les gains de référence rendent généralement la migration pertinente. L’échange consiste à modifier l’ID du modèle, mais testez vos invites avant de basculer le trafic de production. Consultez le guide de migration de 3.6 à 3.7 Flash.
Où Gemini 3.7 Flash s’intègre dans votre pile
Gemini 3.7 Flash combine une baisse de prix et une hausse de capacités. Pour les boucles d’agents, les tâches de code et l’extraction de documents, utilisez gemini-3.7-flash comme choix par défaut, tout en conservant gemini-3.6-flash derrière une variable d’environnement comme solution de repli.
Démarrez avec la requête cURL, vérifiez la structure de réponse, puis importez l’endpoint dans un client API avant de coder l’intégration applicative. Téléchargez Apidog pour importer la spécification Gemini, stocker votre clé une seule fois et tester les requêtes synchrones, de streaming et d’appel d’outils depuis un même espace de travail.

Top comments (0)