API Gemini compatible

TokenCode est compatible avec le protocole Google Gemini API. Vous pouvez utiliser directement le SDK Google AI ou tout client compatible Gemini pour vous connecter.

URL de base

text
https://tokencode.dev

Authentification

Le protocole Gemini utilise des paramètres de requête URL pour l'authentification :

  • Paramètre API Key : ?key=<your-api-key>

L'authentification par en-tête est également prise en charge :

  • Bearer Token : Authorization: Bearer <your-api-key>
  • En-tête x-api-key : x-api-key: <your-api-key>

Generate Content

Point de terminaison de génération de contenu compatible Gemini.

bash
curl "https://tokencode.dev/v1beta/models/gemini-2.5-pro:generateContent?key=sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "parts": [
          {"text": "Expliquez l'informatique quantique"}
        ]
      }
    ],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 1024
    }
  }'

Paramètres de la requête :

Paramètre Type Requis Description
contents array Oui Tableau de contenu, contenant l'historique de conversation
generationConfig object Non Configuration de génération
generationConfig.temperature number Non Température d'échantillonnage (0-2)
generationConfig.maxOutputTokens integer Non Nombre maximal de Token en sortie
generationConfig.topP number Non Probabilité de nucleus sampling
generationConfig.topK integer Non Échantillonnage Top-K
generationConfig.stopSequences array Non Séquences d'arrêt
systemInstruction object Non Instruction système
tools array Non Définitions d'outils Function Calling

Exemple de réponse :

json
{
  "candidates": [
    {
      "content": {
        "parts": [
          {"text": "L'informatique quantique est une discipline qui exploite les principes de la mécanique quantique..."}
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "index": 0
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 25,
    "candidatesTokenCount": 128,
    "totalTokenCount": 153
  },
  "modelVersion": "gemini-2.5-pro"
}

Stream Generate Content

Point de terminaison de génération de contenu en streaming.

bash
curl "https://tokencode.dev/v1beta/models/gemini-2.5-pro:streamGenerateContent?key=sk-your-api-key&alt=sse" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "parts": [
          {"text": "Expliquez l'informatique quantique"}
        ]
      }
    ]
  }'

Les réponses en streaming utilisent le format SSE. Chaque événement contient une partie du contenu généré.

Lister les modèles

Retourne la liste des modèles Gemini disponibles.

bash
curl "https://tokencode.dev/v1beta/models?key=sk-your-api-key"

Conversion automatique de protocole

Lorsque vous appelez un modèle non-Google via le point de terminaison Gemini, TokenCode effectue automatiquement la conversion de protocole :

  • Conversion de requête : transformation du format Gemini generateContent vers le format natif du modèle cible
  • Conversion de réponse : transformation de la réponse du modèle cible au format Gemini
  • Adaptation du streaming : les réponses en streaming sont automatiquement adaptées au format d'événements SSE de Gemini

Utiliser le SDK Google AI

python
import google.generativeai as genai

genai.configure(
    api_key="sk-your-api-key",
    client_options={"api_endpoint": "https://tokencode.dev"}
)

model = genai.GenerativeModel("gemini-2.5-pro")
response = model.generate_content("Bonjour !")
print(response.text)
javascript
const { GoogleGenerativeAI } = require("@google/generative-ai");

const genAI = new GoogleGenerativeAI("sk-your-api-key");
// Définir l'URL de base personnalisée
const model = genAI.getGenerativeModel({ model: "gemini-2.5-pro" });

Entrée multimodale

Gemini prend nativement en charge l'entrée multimodale :

python
model = genai.GenerativeModel("gemini-2.5-pro")
response = model.generate_content([
    "Décrivez cette image",
    {"inline_data": {"mime_type": "image/png", "data": "<base64-encoded-image>"}}
])

Réponses d'erreur

Les réponses d'erreur suivent le format d'erreur Gemini :

json
{
  "error": {
    "code": 400,
    "message": "API key not valid",
    "status": "INVALID_ARGUMENT"
  }
}
Code HTTP Signification
400 Paramètres de requête invalides
401 Échec d'authentification
403 Permissions insuffisantes
404 Modèle introuvable
429 Limite de débit ou solde insuffisant
500 Erreur interne du serveur