Text
Gemini 3.1 Pro
Requêtes Gemini natives, entrées multimodales, raisonnement, outils, cache et streaming. Avec les limites du modèle et l’état des vérifications.
Utilisez gemini-3.1-pro-preview au format Gemini natif. La page du modèle comprend le Playground et les tarifs actuels ; le guide des variantes du modèle explique les deux ID officiels.
ID du modèle
| ID du modèle | Limite d’entrée | Effort par défaut |
|---|---|---|
gemini-3.1-pro-preview | 1 048 576 tokens | high |
Exemple rapide
curl https://api.seedrouter.ai/v1beta/models/gemini-3.1-pro-preview:generateContent \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"contents":[{"role":"user","parts":[{"text":"Explain a mutex in one sentence."}]}],"generationConfig":{"thinkingConfig":{"thinkingLevel":"low"},"maxOutputTokens":1024}}'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.
Points de terminaison
| Opération | Point de terminaison |
|---|---|
| Réponse JSON | POST /v1beta/models/gemini-3.1-pro-preview:generateContent |
| Événements envoyés par le serveur | POST /v1beta/models/gemini-3.1-pro-preview: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-3.1-pro-preview. Le contrat de requête contient 12 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.
| Champ | Type | Obligatoire | Valeur par défaut et contraintes |
|---|---|---|---|
contents | object[] | Oui | Conversation non vide ; chaque contenu possède des parts non vides |
systemInstruction | object | Non | Parties textuelles uniquement ; aucune identité utilisateur n’est ajoutée automatiquement |
generationConfig | object | Non | Paramètres de génération du tableau suivant |
tools | object[] | Non | Déclarations de fonctions et configurations des outils intégrés |
toolConfig | object | Non | Configuration de la sélection de fonctions et de la récupération d’informations |
safetySettings | object[] | Non | Un réglage par catégorie ; aucune catégorie en double |
cachedContent | string | Non | Ressource cachedContents/{id} existante ; nécessite des droits d’accès compatibles |
serviceTier | string | Non | unspecified, standard, flex, priority ; le traitement ordinaire est standard |
labels | object | Non | Valeurs string ; clés/valeurs en minuscules, 63 points de code Unicode maximum chacune |
model | string | Non | Nom de ressource facultatif ; l’URL détermine le modèle effectif |
store | boolean | Non | Préférence générique de stockage de la requête ; effet propre au modèle non vérifié |
continuationToken | string | Non | Token opaque générique ; la continuation n’est pas une capacité établie de 3.1 Pro |
Paramètres de génération
Champ dans generationConfig | Type | Valeur par défaut et contraintes |
|---|---|---|
maxOutputTokens | integer | 1–65 536, raisonnement inclus ; valeur par défaut du modèle : 65 536 |
thinkingConfig | object | thinkingLevel : low, medium, high (par défaut high) ; majuscules acceptées. includeThoughts : boolean, false par défaut. thinkingBudget : integer, mutuellement exclusif avec thinkingLevel ; aucune plage numérique propre au modèle n’est établie |
temperature | number | 0–2 ; Google recommande la valeur par défaut 1.0 |
topP | number | 0–1 ; omettre pour utiliser la valeur par défaut du modèle |
topK | integer | Facultatif ; plage configurable propre au modèle non établie |
candidateCount | integer | Exactement 1 |
stopSequences | string[] | Cinq séquences maximum |
responseMimeType | string | Par défaut text/plain ; la sortie avec l’ancien schéma JSON exige application/json |
responseSchema | object | Dialecte de schéma officiel ; mutuellement exclusif avec responseJsonSchema |
responseJsonSchema | JSON | JSON Schema ; mutuellement exclusif avec responseSchema |
responseFormat | object | Configuration du format texte ; text.mimeType et éventuellement text.schema. Un schéma exige le type MIME JSON |
responseModalities | string[] | Texte uniquement : TEXT ; vide signifie texte |
mediaResolution | enum | MEDIA_RESOLUTION_UNSPECIFIED, LOW, MEDIUM, HIGH avec le préfixe MEDIA_RESOLUTION_ |
seed | integer | Valeur signée sur 32 bits ; comportement déterministe propre au modèle non vérifié |
presencePenalty | number | Champ générique ; effet et plage propres au modèle non vérifiés |
frequencyPenalty | number | Champ générique ; effet et plage propres au modèle non vérifiés |
responseLogprobs | boolean | Champ générique ; disponibilité propre au modèle non vérifiée |
logprobs | integer | 0–20 ; exige responseLogprobs: true ; prise en charge par le modèle non vérifiée |
enableEnhancedCivicAnswers | boolean | Champ générique ; prise en charge par le modèle non vérifiée |
enableAffectiveDialog | boolean | Champ générique ; prise en charge par le modèle non vérifiée |
audioTranscriptionConfig | object | Champ générique ; options propres au modèle non vérifiées |
translationConfig | object | Champ 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 modèle ou compte. Le raisonnement minimal et le traitement Agentic Video ne sont pas pris en charge par ce modèle.
Sortie structurée
{
"contents": [{"parts": [{"text": "Return a JSON object with ok set to true."}]}],
"generationConfig": {
"thinkingConfig": {"thinkingLevel": "low"},
"maxOutputTokens": 1024,
"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. Les schémas de réponse suivent la même règle d’exclusion mutuelle. La sélection des fonctions se règle dans toolConfig.functionCallingConfig ; allowedFunctionNames exige ANY ou VALIDATED et des noms déclarés.
Le modèle standard prend en charge les appels de fonctions ; la variante customtools n’est pas nécessaire. 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 et le contexte d’URL parmi les capacités du modèle. File Search n’est indiqué que pour AI Studio. Les ressources de cache et de recherche de fichiers existantes exigent un accès via les identifiants utilisés pour la requête. Computer Use et la configuration MCP native figurent dans le schéma générique, mais leur disponibilité pour ce modèle n’est pas établie. 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.
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 résolution multimédia globale et celle de chaque partie sont des réglages distincts. Agentic Video n’est pas pris en charge.
Utilisez le JSON natif pour les médias intégrés ou une référence de fichier accessible pour les médias plus volumineux. Les limites exactes de format, de durée et de médias par requête restent soumises à la documentation multimédia officielle et à une vérification en conditions réelles.
Les réglages de sécurité utilisent le format natif officiel. Leur omission laisse s’appliquer les valeurs par défaut de l’API Gemini ; les réglages explicitement fournis sont transmis sans modification.
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, 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.
Contrairement à Argon, la continuation des sorties longues n’est pas établie pour 3.1 Pro. Ne créez pas de boucle de continuation au seul motif que le schéma de réponse générique contient un champ de token.
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. Les tokens de prompt déclarés pour l’utilisation d’outils contribuent aussi à l’entrée.
Le seuil de contexte est de 200 000 tokens en entrée, cache inclus ; les entrées plus grandes utilisent les tarifs de contexte long. Les groupes de compte disponibles utilisent la même expression tarifaire du modèle et leur propre multiplicateur actuel. Consultez le tableau des tarifs actuels.
Flex et Priority sont des niveaux de traitement distincts. Flex ne divise pas par deux les tarifs d’entrée mise en cache. 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, cette intégration utilise les tarifs Standard des tokens. Les frais d’outils et le stockage explicite du cache sont distincts des tarifs des tokens de génération ; aucun quota gratuit partagé d’outils n’est promis. Les requêtes qui échouent ne sont pas facturées.
Plusieurs groupes de compte
Le modèle utilise googlellm et googlellm-vertext, avec leurs autorisations de compte et leur tarification existantes. L’orthographe de chaque nom de groupe est exacte. Sélectionnez un groupe disponible dans le Playground ou utilisez l’en-tête API facultatif :
X-SeedRouter-Group: googlellmUtilisez googlellm-vertext pour sélectionner le second groupe. 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-3.1-pro-preview" -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 vérifications hors ligne du transport et de la facturation n’établissent pas la disponibilité en production. La génération réelle, les deux groupes de compte, la compréhension multimédia, les ressources de cache, les outils intégrés et les niveaux de traitement nécessitent encore une vérification payante de bout en bout. Aucun résultat comparatif de qualité n’est revendiqué pour la variante Customtools.
