Skip to main content
POST
Streaming : remplacez generateContent par streamGenerateContent dans l’URL. Gardez le corps de requête inchangé ; la réponse arrive par blocs. Ajoutez ?alt=sse pour demander le format SSE.
BaseURL : La BaseURL par défaut est https://direct.evolink.ai, qui offre une meilleure prise en charge des modèles de texte et des connexions persistantes. https://api.evolink.ai est le point d’accès principal pour les services multimodaux et sert d’adresse de secours pour les modèles de texte.

Continuation des sorties longues (Gemini 4 Argon)

Une requête gemini-4-argon renvoie au maximum 65,536 tokens en streaming ou 32,768 sans streaming, raisonnement et réponse compris. Pour une sortie plus longue, utilisez plusieurs requêtes de continuation. L’entrée, le raisonnement et la réponse partagent un contexte de 1,048,576 tokens : le cumul du raisonnement et de la réponse ne peut utiliser que l’espace restant après l’entrée. Seule l’API native prend en charge la continuation ; le format compatible OpenAI ne la prend pas en charge. Pour les réponses longues, définissez le délai de lecture du client sur 1,200 secondes (20 minutes). Il s’agit d’une recommandation de configuration du client, pas d’une garantie sur la durée des requêtes côté serveur. Procédure :
  1. Définissez generationConfig.maxOutputTokens au-dessus de la limite par requête : plus de 65,536 en streaming ou de 32,768 sans streaming. Le paramètre accepte jusqu’à 1,048,576, mais la sortie reste limitée par le contexte partagé. Cette valeur est le budget cumulé de raisonnement et de réponse pour toutes les requêtes de continuation.
  2. Si candidates[0].finishReason vaut CONTINUATION, la génération n’est pas terminée. Le même candidat contient un continuationToken.
  3. Renvoyez la requête d’origine avec les mêmes contents, systemInstruction, tools et generationConfig. Ajoutez uniquement continuationToken à la racine, avec la dernière valeur reçue, sans la modifier.
  4. Répétez l’étape 3 uniquement tant que finishReason vaut CONTINUATION ; arrêtez-vous pour toute autre raison. STOP indique une fin normale et MAX_TOKENS l’épuisement du budget cumulé. Chaque réponse contient seulement le nouveau contenu ; concaténez les réponses dans l’ordre.
  • N’ajoutez pas la sortie partielle à contents et n’envoyez pas de nouvelle consigne telle que « continue ».
  • Une requête peut consacrer toute sa génération au raisonnement et renvoyer un texte de réponse vide. Continuez si la raison de fin est CONTINUATION.
  • MAX_TOKENS peut aussi renvoyer un continuationToken. Pour reprendre, augmentez manuellement maxOutputTokens et renvoyez la requête d’origine avec le dernier token. Conserver le budget épuisé renvoie 400. Voir « Reprendre après épuisement du budget » ci-dessous.
  • Dans une conversation à plusieurs tours, attendez STOP avant d’ajouter la réponse complète concaténée à l’historique sous la forme d’un seul message model.

Exemples

Première requête :
Si la limite par requête est atteinte alors qu’il reste du budget cumulé, la réponse peut ressembler à ceci (seuls les champs de continuation sont affichés) :
Si la réponse précédente se termine par CONTINUATION, renvoyez la même requête en ajoutant continuationToken à la racine :
Cette fonction Python traite automatiquement CONTINUATION et renvoie le résultat à la fin ou à l’épuisement du budget. Elle conserve le dernier token et n’augmente pas automatiquement le budget après MAX_TOKENS :

Reprendre après épuisement du budget

Cet exemple réutilise generate_with_continuation, URL et HEADERS ci-dessus. Il génère une liste de nombres avec un petit budget, puis augmente explicitement le budget total de 64 à 2,048. Conservez les contents d’origine et les autres paramètres ; ajoutez le token et augmentez le budget pour reprendre au point de coupure.
En streaming, lisez le dernier bloc contenant finishReason : pour CONTINUATION, renvoyez le dernier token sans changer les paramètres ; pour MAX_TOKENS, augmentez manuellement le budget cumulé si vous souhaitez reprendre ; STOP indique une fin normale.

Facturation et erreurs

  • Chaque requête est facturée séparément. Une continuation comptabilise de nouveau l’entrée d’origine et le contenu déjà généré comme entrée. Les parties servies par le cache implicite sont facturées au tarif du cache.
  • Le usageMetadata de chaque réponse couvre uniquement cette requête. Additionnez les usages des différentes requêtes pour obtenir le total. Dans un même flux, les valeurs sont cumulatives : utilisez uniquement le dernier usageMetadata, sans additionner les cumuls intermédiaires.
  • Pour l’API native, l’estimation de la réserve liée à la sortie utilise le minimum de maxOutputTokens et 65,536, y compris sans streaming ; l’entrée est estimée séparément. La sortie sans streaming est réellement limitée à 32,768 par requête : un budget supérieur peut donc réserver plus qu’une estimation fondée sur cette limite réelle. La facturation finale utilise les données d’usage de la réponse.
  • Un token invalide renvoie 400. Un token de format correct mais de contenu invalide peut renvoyer Invalid continuation token. ; un format incorrect peut produire une autre erreur de paramètre. Les autres modèles ignorent continuationToken.
  • Reprendre après MAX_TOKENS avec un token sans augmenter le budget maxOutputTokens épuisé renvoie également 400.

Autorisations

Authorization
string
header
requis

##Toutes les API nécessitent une authentification Bearer Token##

Obtenir une clé API :

Visitez la Page de gestion des clés API pour obtenir votre clé API

Ajouter à l'en-tête de requête :

Paramètres de chemin

model
enum<string>
requis

Sélectionnez le modèle de texte Gemini à appeler :

Options disponibles:
gemini-4-argon,
gemini-3.8-flash,
gemini-3.7-flash,
gemini-3.6-flash,
gemini-3.5-flash,
gemini-3.5-flash-lite,
gemini-3.1-pro-preview,
gemini-3.1-pro-preview-customtools,
gemini-3.1-flash-lite-preview,
gemini-3-pro-preview,
gemini-3-flash-preview,
gemini-2.5-pro,
gemini-2.5-flash,
gemini-2.5-flash-lite
Exemple:

"gemini-3.6-flash"

Corps

application/json
contents
object[]
requis

List of conversation contents, supports multi-turn dialogue and multimodal input

Minimum array length: 1
systemInstruction
object

System instruction (optional), mainly text content

tools
object[]

Outils que le modèle peut appeler. Trois types sont pris en charge :

  • functionDeclarations : appels de fonctions
  • codeExecution : exécution de code
  • googleSearch : recherche web avec Google Search. Utilisez {"googleSearch": {}} (camelCase ; google_search renvoie HTTP 400). Disponible pour tous les modèles de texte Gemini. La réponse contient les requêtes et les sources dans candidates[].groundingMetadata ; la facturation se fait par appel.
Exemple:
toolConfig
object

Tool calling configuration (optional)

safetySettings
object[]

Safety settings list (optional)

generationConfig
object

Generation configuration parameters (optional)

continuationToken
string

Token de continuation des sorties longues (gemini-4-argon uniquement). Placez le dernier candidates[0].continuationToken à la racine de la requête, sans le modifier. Conservez les contents, systemInstruction et tools d’origine ; n’ajoutez pas la sortie partielle.

  • CONTINUATION : conservez tous les paramètres de génération et renvoyez le token.
  • MAX_TOKENS : un token peut aussi être renvoyé ; augmentez manuellement le budget cumulé maxOutputTokens avant de reprendre, sans modifier les autres paramètres. Le budget épuisé renvoie 400.
  • Un token invalide renvoie 400.
  • Les autres modèles ignorent ce champ.

Voir Référence complète de l’API native, section « Continuation des sorties longues ».

cachedContent
string

Cached content name, in the form cachedContents/{cachedContent}

Réponse

Contenu généré avec succès

Description du format de réponse :

  • Lors de l'utilisation du endpoint generateContent, retourne GenerateContentResponse (retourne la réponse complète en une fois)
  • Lors de l'utilisation du endpoint streamGenerateContent, retourne StreamGenerateContentResponse (réponse en streaming, retourne le contenu par morceaux)
candidates
object[]

List of candidate responses

promptFeedback
object
usageMetadata
object

Statistiques d'utilisation

modelVersion
string

Model version

Exemple:

"gemini-3.6-flash"

responseId
string

Response ID

Exemple:

"l-LoaPu0BPmo1dkP6ZPHiQc"