curl --request POST \
--url https://direct.evolink.ai/v1beta/models/{model}:generateContent \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "Please introduce yourself"
}
]
}
]
}
'{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{
"text": "Hello! I'm pleased to introduce myself.\n\nI'm a large language model, trained and developed by Google...",
"thought": true,
"thoughtSignature": "<Signature_A>"
}
]
},
"finishReason": "STOP",
"index": 0,
"safetyRatings": [
{}
]
}
],
"promptFeedback": {
"safetyRatings": [
{}
]
},
"usageMetadata": {
"promptTokenCount": 4,
"candidatesTokenCount": 611,
"totalTokenCount": 2422,
"thoughtsTokenCount": 1807,
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 4
}
],
"cachedContentTokenCount": 0
},
"modelVersion": "gemini-3.6-flash",
"responseId": "l-LoaPu0BPmo1dkP6ZPHiQc"
}{
"error": {
"code": 400,
"message": "Paramètres de requête invalides",
"type": "invalid_request_error"
}
}{
"error": {
"code": 401,
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": 402,
"message": "Quota insuffisant",
"type": "insufficient_quota_error",
"fallback_suggestion": "https://evolink.ai/dashboard/billing"
}
}{
"error": {
"code": 403,
"message": "Access denied for this model",
"type": "permission_error"
}
}{
"error": {
"code": 404,
"message": "Model not found",
"type": "not_found_error"
}
}{
"error": {
"code": 413,
"message": "Corps de la requête trop volumineux",
"type": "request_too_large_error",
"fallback_suggestion": "reduce file size"
}
}{
"error": {
"code": 429,
"message": "Limite de débit dépassée",
"type": "rate_limit_error",
"fallback_suggestion": "retry after 60 seconds"
}
}{
"error": {
"code": 500,
"message": "Erreur interne du serveur",
"type": "internal_server_error",
"fallback_suggestion": "try again later"
}
}{
"error": {
"code": 502,
"message": "Upstream AI service unavailable",
"type": "upstream_error",
"fallback_suggestion": "try again later"
}
}{
"error": {
"code": 503,
"message": "Service temporairement indisponible",
"type": "service_unavailable_error",
"fallback_suggestion": "retry after 30 seconds"
}
}API tous modèles Gemini - format API native
Sélectionnez le modèle de texte Gemini à appeler via {model} dans le chemin (voir le tableau de correspondance du paramètre model pour toutes les valeurs possibles).
- Utilise le format Google Native API, retourne le contenu de la conversation de manière synchrone
- Entrée texte brut / multimodale : entrée mixte texte + image / audio / vidéo
- Streaming : remplacez
generateContentparstreamGenerateContentdans le chemin (ajoutez?alt=ssepour obtenir du SSE)
Spécifications et différences des modèles
- Comportement de 3.8 : par rapport à 3.7, le modèle améliore l’ingénierie logicielle, les agents, le raisonnement multi-étapes et la précision multimodale ; il peut consommer davantage de tokens de raisonnement / sortie, surtout avec
high. Utilisezlowsi la latence est critique, la valeur par défautmediumpour un usage général ethighpour le code complexe, les longues vidéos ou le raisonnement multi-étapes. - Paramètres d’échantillonnage
temperature/topP/topK: identiques pour toute la série Gemini 3.x, les valeurs personnalisées n’affectent pas la sortie ;topKest ignoré et sans effet, ettemperature/topPrenvoient une erreur 400 si elles sont hors de la plage autorisée. - Contrôle du raisonnement : la série Gemini 3.x utilise
thinkingConfig.thinkingLevel(voir le paramètrethinkingLevelpour les niveaux pris en charge et la valeur par défaut de chaque modèle) ; la série Gemini 2.5 utilisethinkingConfig.thinkingBudget(entier,0=désactivé). Les deux sont mutuellement exclusifs.gemini-3.8-flash/gemini-3.7-flashet la série Pro ne prennent pas en chargeminimal; la valeur transmise est automatiquement rétrogradée enlow. - Appel de fonction : le
FunctionResponsede Gemini 3.x doit renvoyer l’idet lenamecorrespondant auFunctionCallassocié, sinon une erreur est générée. - Rôle du dernier tour : le
roledu dernier message ne peut pas êtremodel(Gemini 3.5+ génère une erreur). - Limite de tokens :
gemini-3.8-flash/gemini-3.7-flash/gemini-3.6-flash/gemini-3.5-flash-litecontexte 1,048,576, sortie maximale 65,536 ; les autres modèles selon leurs propres spécifications.
curl --request POST \
--url https://direct.evolink.ai/v1beta/models/{model}:generateContent \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "Please introduce yourself"
}
]
}
]
}
'{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{
"text": "Hello! I'm pleased to introduce myself.\n\nI'm a large language model, trained and developed by Google...",
"thought": true,
"thoughtSignature": "<Signature_A>"
}
]
},
"finishReason": "STOP",
"index": 0,
"safetyRatings": [
{}
]
}
],
"promptFeedback": {
"safetyRatings": [
{}
]
},
"usageMetadata": {
"promptTokenCount": 4,
"candidatesTokenCount": 611,
"totalTokenCount": 2422,
"thoughtsTokenCount": 1807,
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 4
}
],
"cachedContentTokenCount": 0
},
"modelVersion": "gemini-3.6-flash",
"responseId": "l-LoaPu0BPmo1dkP6ZPHiQc"
}{
"error": {
"code": 400,
"message": "Paramètres de requête invalides",
"type": "invalid_request_error"
}
}{
"error": {
"code": 401,
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": 402,
"message": "Quota insuffisant",
"type": "insufficient_quota_error",
"fallback_suggestion": "https://evolink.ai/dashboard/billing"
}
}{
"error": {
"code": 403,
"message": "Access denied for this model",
"type": "permission_error"
}
}{
"error": {
"code": 404,
"message": "Model not found",
"type": "not_found_error"
}
}{
"error": {
"code": 413,
"message": "Corps de la requête trop volumineux",
"type": "request_too_large_error",
"fallback_suggestion": "reduce file size"
}
}{
"error": {
"code": 429,
"message": "Limite de débit dépassée",
"type": "rate_limit_error",
"fallback_suggestion": "retry after 60 seconds"
}
}{
"error": {
"code": 500,
"message": "Erreur interne du serveur",
"type": "internal_server_error",
"fallback_suggestion": "try again later"
}
}{
"error": {
"code": 502,
"message": "Upstream AI service unavailable",
"type": "upstream_error",
"fallback_suggestion": "try again later"
}
}{
"error": {
"code": 503,
"message": "Service temporairement indisponible",
"type": "service_unavailable_error",
"fallback_suggestion": "retry after 30 seconds"
}
}generateContent par streamGenerateContent dans l’URL. Les paramètres du corps de requête sont identiques. Les réponses seront retournées en blocs de streaming. Voir la section « Réponse en streaming » ci-dessous pour le format de réponse.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.Autorisations
##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 :
Authorization: Bearer YOUR_API_KEY
Paramètres de chemin
Sélectionnez le modèle de texte Gemini à appeler :
| Modèle ID | Série | Positionnement |
|---|---|---|
gemini-3.8-flash | 3.8 Flash | Ingénierie logicielle / agents / raisonnement multi-étapes / précision multimodale améliorés |
gemini-3.7-flash | 3.7 Flash | Agentique de niveau Pro / Génération de code / Exécution en terminal |
gemini-3.6-flash | 3.6 Flash | Orchestration multi-étapes / Refactorisation de code / Raisonnement général |
gemini-3.5-flash | 3.5 Flash | Flash générique |
gemini-3.5-flash-lite | 3.5 Flash-Lite | Faible coût / Haut débit / Agent léger |
gemini-3.1-pro-preview | 3.1 Pro (Preview) | Raisonnement avancé |
gemini-3.1-pro-preview-customtools | 3.1 Pro · CustomTools | Raisonnement avancé + Outils personnalisés |
gemini-3.1-flash-lite-preview | 3.1 Flash-Lite (Preview) | Faible coût |
gemini-3-pro-preview | 3.0 Pro (Preview) | Raisonnement avancé |
gemini-3-flash-preview | 3.0 Flash (Preview) | Flash générique |
gemini-2.5-pro | 2.5 Pro | Raisonnement avancé |
gemini-2.5-flash | 2.5 Flash | Flash générique |
gemini-2.5-flash-lite | 2.5 Flash-Lite | Faible coût |
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 "gemini-3.6-flash"
Corps
List of conversation contents, supports multi-turn dialogue and multimodal input
1Show child attributes
Show child attributes
Generation configuration parameters (optional)
Show child attributes
Show child attributes
System instruction (optional), mainly text content
Show child attributes
Show child attributes
List of tools the model can call, such as function calling or code execution
Tool calling configuration (optional)
Safety settings list (optional)
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, retourneGenerateContentResponse(retourne la réponse complète en une fois) - Lors de l'utilisation du endpoint
streamGenerateContent, retourneStreamGenerateContentResponse(réponse en streaming, retourne le contenu par morceaux)
- Réponse synchrone
- Réponse en flux