Claude Opus 5.5 est disponible sur SeedRouter

Text

Gemini 4 Carbon

View Markdown

Requêtes Gemini natives, niveaux de raisonnement, décodage long avec tokens de continuation, outils, entrée multimodale et streaming. Avec les limites du modèle et l’état des vérifications.

Utilisez gemini-4-carbon au format Gemini natif. La page du modèle comprend le Playground et les tarifs actuels. Gemini 4 Carbon utilise le même format de requête que Gemini 4 Argon ; selon le guide de Google, seul l’ID du modèle doit changer pour passer de l’un à l’autre.

ID du modèle

ID du modèleFenêtre de contexteEffort par défaut
gemini-4-carbon1 048 576 tokens partagés entre l’entrée, le raisonnement et la sortiemedium

Exemple rapide

curl https://api.seedrouter.ai/v1beta/models/gemini-4-carbon:generateContent \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contents":[{"role":"user","parts":[{"text":"Find the race condition in a retry loop that re-reads a balance before locking it."}]}],"generationConfig":{"thinkingConfig":{"thinkingLevel":"medium"},"maxOutputTokens":32768}}'

Le modèle doit figurer dans l’URL. contents est obligatoire. Une réponse comprend les champs natifs candidates, finishReason et usageMetadata ; conservez les parties de contenu complètes, y compris thoughtSignature, dans l’historique de conversation. Les prompts difficiles peuvent prendre plusieurs minutes. Une requête sans streaming qui dépasse environ 100 secondes peut se terminer par HTTP 524 avant l’arrivée de la réponse ; utilisez donc streamGenerateContent pour les tâches longues. Les exemples fixent aussi un délai d’expiration client de 15 minutes, comme le recommande Google.

Points de terminaison

OpérationPoint de terminaison
Réponse JSONPOST /v1beta/models/gemini-4-carbon:generateContent
Événements envoyés par le serveurPOST /v1beta/models/gemini-4-carbon:streamGenerateContent?alt=sse

La spécification OpenAPI comprend tous les schémas imbriqués de requête et de réponse. Les champs facultatifs omis utilisent les valeurs par défaut de l’API. SeedRouter transmet le corps soumis sans filtrer les champs inconnus, supprimer les champs non pris en charge ni valider les valeurs des paramètres du modèle. L’API Gemini décide si une requête est acceptée.

Paramètres de requête

L’URL fixe le modèle à gemini-4-carbon. Le contrat de requête contient 11 champs de premier niveau. Les champs sont facultatifs sauf indication contraire ; l’omission diffère de JSON null. Le JSON arbitraire pouvant être nul est conservé là où le schéma officiel l’autorise.

ChampTypeObligatoireValeur par défaut et contraintes
contentsobject[]OuiConversation non vide ; chaque contenu possède des parts non vides
systemInstructionobjectNonParties textuelles uniquement ; aucune identité utilisateur n’est ajoutée automatiquement
generationConfigobjectNonParamètres de génération du tableau suivant
toolsobject[]NonDéclarations de fonctions et configurations des outils intégrés
toolConfigobjectNonConfiguration de la sélection de fonctions et de la récupération d’informations
safetySettingsobject[]NonUn réglage par catégorie ; aucune catégorie en double
serviceTierstringNonunspecified, standard, flex, priority ; le traitement ordinaire est standard
continuationTokenstringNonToken renvoyé avec finishReason: CONTINUATION ; renvoyez la même requête avec ce token pour poursuivre une réponse longue
labelsobjectNonValeurs string ; clés/valeurs en minuscules, 63 points de code Unicode maximum chacune
modelstringNonNom de ressource facultatif ; l’URL détermine le modèle effectif
storebooleanNonPréférence générique de stockage de la requête ; effet propre au modèle non vérifié

La mise en cache explicite du contexte (ressources cachedContent et cachedContents) n’est pas prise en charge sur Gemini 4 Carbon. La mise en cache implicite est activée par défaut pour les prompts d’au moins 4 096 tokens.

Paramètres de génération

Champ dans generationConfigTypeValeur par défaut et contraintes
maxOutputTokensintegerPar défaut 65 536, raisonnement inclus. Jusqu’à 1 048 576 moins l’entrée avec continuation. Google documente une erreur 400 pour une requête sans streaming au-delà de 32 768 sans continuationToken
thinkingConfigobjectthinkingLevel : low, medium, high (par défaut medium) ; majuscules acceptées. includeThoughts : boolean, false par défaut. Utilisez thinkingLevel plutôt que thinkingBudget
stopSequencesstring[]Cinq séquences maximum
responseMimeTypestringPar défaut text/plain ; la sortie avec l’ancien schéma JSON exige application/json
responseSchemaobjectDialecte de schéma officiel ; mutuellement exclusif avec responseJsonSchema
responseJsonSchemaJSONJSON Schema ; mutuellement exclusif avec responseSchema
responseFormatobjectConfiguration du format texte ; text.mimeType et éventuellement text.schema. Un schéma exige le type MIME JSON
responseModalitiesstring[]Texte uniquement : TEXT ; vide signifie texte
mediaResolutionenumMEDIA_RESOLUTION_UNSPECIFIED, LOW, MEDIUM, HIGH avec le préfixe MEDIA_RESOLUTION_
seedintegerValeur signée sur 32 bits ; comportement déterministe propre au modèle non vérifié
presencePenaltynumberChamp générique ; effet et plage propres au modèle non vérifiés
frequencyPenaltynumberChamp générique ; effet et plage propres au modèle non vérifiés
responseLogprobsbooleanChamp générique ; disponibilité propre au modèle non vérifiée
logprobsinteger0–20 ; exige responseLogprobs: true ; prise en charge par le modèle non vérifiée
enableEnhancedCivicAnswersbooleanChamp générique ; prise en charge par le modèle non vérifiée
enableAffectiveDialogbooleanChamp générique ; prise en charge par le modèle non vérifiée
audioTranscriptionConfigobjectChamp générique ; options propres au modèle non vérifiées
translationConfigobjectChamp générique ; options propres au modèle non vérifiées

Le document OpenAPI décrit les types imbriqués, énumérations, propriétés obligatoires et limites documentées de chaque message. Les schémas décrivent les paramètres officiels ; ils ne constituent pas une liste de champs autorisés par SeedRouter. Les champs et valeurs fournis par l’appelant sont conservés. L’acceptation d’un champ par le schéma ne prouve pas sa prise en charge pour chaque compte. Le raisonnement minimal ne figure pas parmi les niveaux répertoriés. Google indique que temperature, topP et topK sont ignorés sur ce modèle ; candidateCount n’est pas un réglage officiel. S’ils sont soumis dans le JSON natif, ils sont néanmoins transmis sans modification pour être traités par l’API Gemini. Terminez la conversation par du contenu utilisateur ; les tours utilisateur contenant seulement une réponse de fonction restent valides.

Décodage long

Une réponse Gemini 4 Carbon renvoie jusqu’à 65 536 tokens en streaming et jusqu’à 32 768 tokens sans streaming. Pour aller au-delà, fixez maxOutputTokens à plus de 65 536 et poursuivez vous-même la réponse :

  1. Envoyez la requête. Si la réponse se termine par finishReason: "CONTINUATION", lisez candidates[0].continuationToken.
  2. Renvoyez la même requête avec cette valeur dans le champ de premier niveau continuationToken. N’ajoutez pas la sortie partielle à contents ; le token porte l’état du modèle, y compris son raisonnement.
  3. Répétez jusqu’à ce que finishReason soit STOP ou MAX_TOKENS.
{
  "contents": [{"role": "user", "parts": [{"text": "Write a complete, rigorous proof of the prime number theorem."}]}],
  "generationConfig": {"thinkingConfig": {"thinkingLevel": "high"}, "maxOutputTokens": 262144},
  "continuationToken": "TOKEN_FROM_THE_PREVIOUS_RESPONSE"
}

Un segment entièrement consacré au raisonnement peut renvoyer du texte vide avec CONTINUATION ; cette progression est normale. Chaque segment renvoie au modèle votre prompt et tout ce qui a été généré jusque-là : les tokens d’entrée sont donc comptés à nouveau à chaque segment suivant. SeedRouter facture chaque segment comme une requête distincte. Le mode background côté serveur de l’API Interactions ne fait pas partie de ce point de terminaison.

Sortie structurée

{
  "contents": [{"parts": [{"text": "Return a JSON object with ok set to true."}]}],
  "generationConfig": {
    "thinkingConfig": {"thinkingLevel": "low"},
    "maxOutputTokens": 32768,
    "responseMimeType": "application/json",
    "responseJsonSchema": {
      "type": "object",
      "properties": {"ok": {"type": "boolean"}},
      "required": ["ok"]
    }
  }
}

Les anciens champs responseSchema et responseJsonSchema ne peuvent pas être utilisés ensemble. Tous deux exigent responseMimeType: "application/json". Le schéma plus récent responseFormat.text doit également préciser JSON. Utilisez les graphies des énumérations REST (APPLICATION_JSON et TEXT_PLAIN) dans ce message. Les requêtes sont transmises sans modification ; les types MIME des médias et le JSON arbitraire des fonctions ne sont pas réécrits.

Fonctions et outils intégrés

Utilisez tools[].functionDeclarations avec un nom et soit parameters, soit parametersJsonSchema, mais pas les deux. La sélection des fonctions se règle dans toolConfig.functionCallingConfig ; allowedFunctionNames exige ANY ou VALIDATED et des noms déclarés.

Votre application exécute les fonctions renvoyées et fournit leurs résultats au tour suivant de la conversation. Conservez chaque thoughtSignature, appel de fonction et réponse de fonction d’origine. N’arrondissez pas les identifiants numériques lors de la sérialisation d’arguments de fonction opaques.

Google répertorie Search, Maps, l’exécution de code, le contexte d’URL, File Search et Computer Use pour ce modèle. Les ressources File Search exigent un accès via les identifiants utilisés pour la requête. La configuration MCP native figure dans le schéma générique, mais sa disponibilité pour ce modèle n’est pas établie. Google Maps exige une entrée uniquement textuelle ; consultez les restrictions officielles de l’API avant de combiner Maps et médias. Avec l’ancrage, Google compte les instructions internes des outils et les déclarations de fonctions comme tokens d’entrée. Le Playground n’exécute pas vos fonctions personnalisées.

Entrée multimodale et sécurité

Un élément contents[].parts[] contient exactement une charge utile : texte, média intégré, référence de fichier, appel/réponse de fonction ou partie d’exécution. Il peut aussi porter une signature ou des métadonnées multimédias. L’entrée accepte texte, images, audio, vidéo et PDF ; la sortie est uniquement textuelle. Le modèle ne génère ni images ni audio et n’a pas de Live API.

Pour les octets intégrés, utilisez inlineData.mimeType et data en base64. Pour les références de fichiers, utilisez fileData.mimeType et fileUri. Une URL syntaxiquement valide ne prouve pas que le modèle peut la récupérer. Les métadonnées vidéo peuvent préciser les décalages de début et de fin et une valeur fps positive ne dépassant pas 24. La compréhension vidéo agentique se sélectionne pour chaque partie avec mediaProcessing: "AGENTIC" à côté de fileData ou inlineData de la vidéo ; le traitement statique s’applique par défaut. videoMetadata contient uniquement startOffset, endOffset et fps.

Les réglages de sécurité utilisent le format natif officiel et sont transmis par l’API sans modification. Dans le Playground, les quatre catégories doivent toutes être réglées sur BLOCK_MEDIUM_AND_ABOVE ou plus strict ; les seuils plus bas sont disponibles uniquement via l’API.

Réponses JSON et streaming

generateContent renvoie du JSON natif. streamGenerateContent?alt=sse émet du JSON natif dans des événements SSE data:. Les champs importants comprennent candidates[].content.parts, finishReason, continuationToken, safetyRatings, groundingMetadata, promptFeedback, modelVersion, responseId et usageMetadata.

Conservez le contenu natif complet dans l’historique de conversation. Les résumés de raisonnement ne sont pas des signatures de pensée. Une déconnexion ne prouve ni l’échec ni l’achèvement de la génération ; examinez le résultat partiel et l’enregistrement du compte avant d’envoyer une autre requête. La consommation du flux est cumulative : utilisez les derniers compteurs au lieu d’additionner chaque fragment.

Consommation et tarifs

promptTokenCount inclut l’entrée mise en cache. cachedContentTokenCount est facturé au tarif d’entrée mise en cache, sans être refacturé comme entrée hors cache. La sortie facturable comprend candidatesTokenCount plus thoughtsTokenCount. Gemini 4 Carbon utilise plus de tokens de raisonnement par tour que Gemini 4 Argon ; attendez-vous donc à une consommation de sortie supérieure pour le même prompt.

Ce modèle n’a pas de palier tarifaire lié à la longueur du contexte. Flex et Priority sont des niveaux de traitement distincts. Un résultat déclaré Standard ne doit pas subir de majoration Priority ; si une réponse demandée en Priority n’établit pas son niveau effectif, les tarifs Standard des tokens s’appliquent. L’ancrage Google Search et Maps est facturé par requête de recherche, séparément des tokens de génération. Les requêtes échouées ne sont pas facturées. Consultez le tableau des tarifs actuels.

Groupes de compte

Sélectionnez un groupe disponible dans le Playground ou utilisez l’en-tête API facultatif avec le nom exact du groupe :

X-SeedRouter-Group: GROUP_NAME

Le groupe choisi détermine le prix et la capacité disponible ; un choix explicite ne bascule pas silencieusement vers un autre groupe. Omettez l’en-tête ou utilisez auto pour conserver le comportement par défaut de la clé API.

Vérifiez les groupes disponibles pour votre clé API sans générer de réponse :

curl "https://api.seedrouter.ai/api/seedrouter/llm/groups?model=gemini-4-carbon" \
  -H "Authorization: Bearer YOUR_SEEDROUTER_KEY"

État des vérifications

Les commandes et la documentation suivent le format natif officiel. La validation des paramètres relève de l’API Gemini. Les requêtes en production du 11 novembre 2026 (une tentative chacune) ont donné les résultats suivants :

DomaineRésultat
Texte, instruction système, séquences d’arrêt, graine, responseModalitiesRéponse conforme à la demande
thinkingLevel low / medium / high (aussi en majuscules)Accepté ; la consommation de raisonnement a augmenté avec le niveau. includeThoughts a renvoyé une partie de résumé du raisonnement
Raisonnement minimal, candidateCount: 2, presencePenalty / frequencyPenalty, tour final de préremplissage du modèleHTTP 400 de l’API Gemini
thinkingBudget, temperature / topP / topKAcceptés ; les valeurs d’échantillonnage n’ont pas d’effet documenté
responseJsonSchema, ancien responseSchemaJSON conforme au schéma
Appels de fonctions, y compris mode: ANYParties functionCall avec arguments et ID d’appels
Exécution de code, Google Search, Google MapsParties d’outils et métadonnées d’ancrage renvoyées
Contexte d’URLL’outil s’est exécuté, mais les deux pages testées ont été signalées comme inaccessibles
Image (URL, faible résolution multimédia), PDF intégré, vidéo, audio (streaming)Compréhension correcte ; une requête audio sans streaming s’est terminée par HTTP 524
responseLogprobs avec logprobslogprobsResult renvoyé
maxOutputTokens: 40000 sans streamingAccepté pour une réponse courte

Les niveaux de traitement, mediaProcessing: "AGENTIC" et les tokens de continuation nécessitent une vérification complémentaire après la mise en production de la version actuelle. Aucune comparaison mesurée de qualité ou de latence avec Gemini 4 Argon n’est revendiquée.

Références