TokenLab

Gemini natif

Générer du contenu

Génère du contenu en utilisant le format de l'API Google Gemini

POST
/v1beta/models/{model}:generateContent

Utilisez les formats de requête et de réponse Gemini avec un modèle renvoyé par l'API Gemini Models. Le format ProtoJSON lowerCamelCase ainsi que les noms de champs correspondants en proto snake_case sont acceptés. Les champs optionnels et les valeurs pris en charge dépendent du modèle sélectionné.

Paramètres de chemin

modelstringpathrequis

Nom du modèle (par ex. gemini-2.5-pro, gemini-3.5-flash).

Paramètres de requête

keystringquery

Clé API (alternative à l'authentification par en-tête).

Authentification

Les endpoints Gemini prennent en charge plusieurs méthodes d'authentification :

  • Paramètre de requête ?key=YOUR_API_KEY
  • En-tête x-goog-api-key: YOUR_API_KEY
  • En-tête Authorization: Bearer YOUR_API_KEY

Corps de la requête

contentsarrayrequis

Contenu de la conversation avec parts et un role optionnel. Les parties multimédias utilisent inlineData / inline_data ou fileData / file_data. Les fichiers et les ID de cache créés par TokenLab ne peuvent être utilisés que dans leur espace de travail (Workspace) propriétaire.

systemInstructionobject

Instruction système pour le modèle.

generationConfigobject

Paramètres de génération tels que temperature, topP, topK, maxOutputTokens, stopSequences, candidateCount, responseModalities, responseMimeType, responseSchema et thinkingConfig. Les noms correspondants en snake_case sont également acceptés. Les valeurs et combinaisons prises en charge dépendent du modèle.

safetySettingsarray

Paramètres des filtres de sécurité.

Chaque champ en lowerCamelCase présenté ci-dessus peut également utiliser son orthographe officielle en proto snake_case, par exemple system_instruction, generation_config, safety_settings, tool_config, cached_content, file_data.file_uri et inline_data.mime_type.

Méthodes prises en charge

L'API compatible Gemini inclut la liste/récupération de modèles, generateContent, streamGenerateContent, countTokens, embedContent et batchEmbedContents. Les fonctionnalités Gemini Interactions et Live ne sont pas disponibles.

Réponse

candidatesarray

Candidats de contenu généré.

usageMetadataobject

Informations sur l'utilisation des tokens.

Requête

curl -X POST "https://api.tokenlab.sh/v1beta/models/gemini-2.5-pro:generateContent?key=sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "parts": [{"text": "Hello, Gemini!"}]
      }
    ],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 1024
    }
  }'

Exemple d'entrée Vision

Pour les requêtes multimodales Gemini, placez le média dans contents[].parts[] en utilisant soit des octets en ligne, soit des références de fichiers basées sur des URL.

Catégories de médias prises en charge dans les détails du modèle Gemini :

  • image
  • audio
  • video

Pour les médias en ligne, utilisez inlineData ou inline_data et transmettez les octets du fichier encodés en Base64.

Pour les médias basés sur une URL, utilisez fileData ou file_data et transmettez une URL https publique.

Exemple d'entrée Vidéo

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this video." },
        {
          "fileData": {
            "mimeType": "video/mp4",
            "fileUri": "https://example.com/demo.mp4"
          }
        }
      ]
    }
  ]
}

Exemple d'entrée Audio

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this audio." },
        {
          "fileData": {
            "mimeType": "audio/mpeg",
            "fileUri": "https://example.com/demo.mp3"
          }
        }
      ]
    }
  ]
}

Exemple d'entrée Image

Utilisez des octets d'image en ligne :

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this image." },
        {
          "inlineData": {
            "mimeType": "image/jpeg",
            "data": "/9j/4AAQSkZJRgABAQ..."
          }
        }
      ]
    }
  ]
}

Utilisez une URL d'image :

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this image." },
        {
          "fileData": {
            "mimeType": "image/jpeg",
            "fileUri": "https://example.com/demo.jpg"
          }
        }
      ]
    }
  ]
}

Exemple d'entrée Audio

Utilisez une URL audio :

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Transcribe and summarize this audio." },
        {
          "file_data": {
            "mime_type": "audio/mpeg",
            "file_uri": "https://example.com/sample.mp3"
          }
        }
      ]
    }
  ]
}

Exemple d'entrée Vidéo

Utilisez une URL vidéo :

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Describe this video briefly." },
        {
          "fileData": {
            "mimeType": "video/mp4",
            "fileUri": "https://example.com/sample.mp4"
          }
        }
      ]
    }
  ]
}

Réponse

Response
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {"text": "Hello! How can I assist you today?"}
        ]
      },
      "finishReason": "STOP",
      "safetyRatings": [
        {"category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE"}
      ]
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 5,
    "candidatesTokenCount": 10,
    "totalTokenCount": 15
  }
}

Interfaces associées

Lisez les détails du modèle sélectionné avant d'utiliser une autre interface. La disponibilité et les champs de requête dépendent du modèle.

HTTPAPI
POST/v1beta/models/{model}:countTokens
POST/v1beta/models/{model}:embedContent
POST/v1beta/models/{model}:batchEmbedContents

Le comptage de tokens nécessite une clé API et n'est pas facturé. Le nombre d'entrées renvoyé est une estimation à des fins de planification ; utilisez l'utilisation finale de la réponse et le relevé de facturation pour le coût réel.

countTokens: contents / generateContentRequest

embedContent: content, taskType, title, outputDimensionality

batchEmbedContents: requests

Autorisation

BearerAuth
AuthorizationBearer <token>

Authentification par clé API. Créez ou gérez vos clés API dans Dashboard > API > API Keys.

Emplacement: header

Paramètres de chemin

model*string

Nom du modèle (par ex., gemini-2.5-pro)

Paramètres de requête

key?string

Clé API (alternative à l'authentification par en-tête)

En-têtes

X-TokenLab-Delivery-Policy?string

Politique de livraison par requête. Remplace les valeurs par défaut de la clé API et de l'espace de travail. Tente automatiquement TokenLab Verified en premier et peut basculer une fois vers Official uniquement avant la sortie, l'acceptation de la requête ou la création de ressource persistante.

Valeurs possibles

  • "auto"
  • "verified"
  • "official"

Corps de la requête

application/json

Requête native Gemini GenerateContent. Les noms ProtoJSON lowerCamelCase et proto snake_case originaux sont tous deux acceptés et préservés, y compris les requêtes mixtes. Si les deux orthographes d'un champ sont présentes, TokenLab ne les fusionne pas et ne choisit pas de priorité locale. Les champs inconnus sont transmis au mieux.

Réponse

application/json

application/json

application/json

application/json

application/json

application/json