Passer au contenu principal

Documentation Index

Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt

Use this file to discover all available pages before exploring further.

TokenLab prend en charge le format natif de l’API Google Gemini pour les modèles Gemini. Cela permet une compatibilité directe avec les SDK Google AI.

Paramètres de chemin

model
string
requis
Nom du modèle (par ex., gemini-2.5-pro, gemini-2.5-flash).Pour les intégrations en production, privilégiez les parties média fileData / file_data basées sur une URL avec une URL publique https. TokenLab acheminera les canaux natifs Gemini pris en charge via le chemin natif lorsque cela est possible et reviendra automatiquement au chemin de conversion interne compatible lorsqu’une route prête pour le natif n’est pas disponible pour cette requête multimodale.

Paramètres de requête

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

Authentification

Les points de terminaison 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

contents
array
requis
Contenu de la conversation.Chaque objet de contenu contient :
  • role (string) : user ou model
  • parts (array) : parties du contenu. TokenLab prend actuellement en charge :
    • les parties texte : { "text": "..." }
    • les parties média inline : inlineData / inline_data
    • les parties fichier basées sur URL : fileData / file_data
Pour les parties média, TokenLab accepte actuellement les types MIME image, audio et vidéo, puis les transmet via le contrat public compatible Gemini.Les rôles user et model sont normalisés sans tenir compte de la casse. inlineData / inline_data avec application/octet-stream n’est accepté que si TokenLab peut identifier des octets image ou vidéo pris en charge ; sinon, la requête échoue avant le routage. Pour les requêtes natives avec sortie image, seule la famille d’outils Google search/maps est acceptée, et les combinaisons non prises en charge échouent avant les nouvelles tentatives upstream.
systemInstruction
object
Instruction système pour le modèle.
generationConfig
object
Configuration de génération :
  • temperature (number) : Température d’échantillonnage
  • topP (number) : Probabilité d’échantillonnage nucleus
  • topK (integer) : Échantillonnage Top-K
  • maxOutputTokens (integer) : Nombre maximum de tokens de sortie
  • stopSequences (array) : Séquences d’arrêt
safetySettings
array
Paramètres des filtres de sécurité.

Réponse

candidates
array
Candidats de contenu générés.
usageMetadata
object
Informations sur l’utilisation des tokens.
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
    }
  }'

Exemples d’entrée multimodale

Pour les requêtes multimodales Gemini, placez les médias dans contents[].parts[] en utilisant soit des octets inline, soit des références de fichier basées sur une URL. Catégories de médias actuellement prises en charge dans le contrat public Gemini :
  • image
  • audio
  • vidéo
Pour les médias inline, utilisez inlineData ou inline_data et transmettez les octets du fichier encodés en Base64. Pour les médias via URL, utilisez fileData ou file_data et transmettez une URL publique en https.

Exemple d’entrée image

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Veuillez décrire cette image." },
        {
          "inlineData": {
            "mimeType": "image/jpeg",
            "data": "/9j/4AAQSkZJRgABAQ..."
          }
        }
      ]
    }
  ]
}

Exemple d’entrée audio

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Veuillez transcrire et résumer cet audio." },
        {
          "file_data": {
            "mime_type": "audio/mpeg",
            "file_uri": "https://example.com/sample.mp3"
          }
        }
      ]
    }
  ]
}

Exemple d’entrée vidéo

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Veuillez décrire brièvement cette vidéo." },
        {
          "fileData": {
            "mimeType": "video/mp4",
            "fileUri": "https://example.com/sample.mp4"
          }
        }
      ]
    }
  ]
}
{
  "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
  }
}

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"
          }
        }
      ]
    }
  ]
}