TokenLab

Texte

Créer une complétion de chat

Crée une complétion pour le message de chat

POST
/v1/chat/completions

Corps de la requête

Les paramètres optionnels pris en charge, les valeurs acceptées et les valeurs par défaut dépendent du modèle sélectionné. Vérifiez les détails du modèle avant de définir les options d'échantillonnage, de raisonnement ou d'outils.

modelstringrequis

ID du modèle à utiliser. Voir Modèles pour les options disponibles.

messagesarrayrequis

Une liste de messages composant la conversation.

Chaque objet message contient :

  • role (string) : system, developer, user, assistant, tool, function
  • content (string | array | null) : Le contenu du message

Pour un message assistant contenant des tool_calls, content peut être omis ou défini sur null.

Lorsque content est un tableau, TokenLab prend en charge des blocs multimodaux structurés pour les modèles compatibles :

  • texte : { "type": "text", "text": "..." }
  • image : { "type": "image_url", "image_url": { "url": "https://..." } }
  • vidéo : { "type": "video_url", "video_url": { "url": "https://..." } }
  • audio : { "type": "audio_url", "audio_url": { "url": "https://..." } }

Pour une entrée multimodale, utilisez des URLs https accessibles publiquement. Les types de médias pris en charge dépendent du modèle sélectionné.

temperaturenumber

Température d'échantillonnage. La prise en charge, les valeurs autorisées et la valeur par défaut dépendent du modèle sélectionné ; omettez ce champ pour utiliser sa valeur par défaut.

max_tokensinteger

Nombre maximum de tokens à générer.

streambooleanpar défaut: false

Si défini sur true, les deltas de message partiels seront envoyés sous forme d'événements SSE.

stream_optionsobject

Options pour le streaming. Définissez include_usage: true pour recevoir l'utilisation des tokens dans les fragments de flux.

top_pnumber

Paramètre d'échantillonnage Nucleus. Nous recommandons de modifier ce paramètre ou la température, mais pas les deux.

frequency_penaltynumber

Nombre compris entre -2.0 et 2.0. Les valeurs positives pénalisent les tokens répétés.

presence_penaltynumber

Nombre compris entre -2.0 et 2.0. Les valeurs positives pénalisent les tokens déjà présents dans le texte.

stopstring | array

Séquence d'arrêt ou liste de séquences. La prise en charge et les limites de séquence dépendent du modèle sélectionné.

toolsarray

Une liste d'outils que le modèle peut appeler (appel de fonction).

tool_choicestring | object

Contrôle la manière dont le modèle utilise les outils. Options : auto, none, required, ou un objet outil spécifique.

parallel_tool_callsboolean

Autorise plusieurs appels d'outils lors d'un même tour de l'assistant, lorsque cela est pris en charge par le modèle sélectionné.

max_completion_tokensinteger

Nombre maximum de tokens pour la complétion. Alternative à max_tokens, utile pour les familles de modèles plus récentes activées pour le raisonnement.

reasoning_effortstring

Effort de raisonnement pour les modèles qui le prennent en charge. Les valeurs acceptées dépendent du modèle sélectionné.

Pour les modèles Claude, la valeur définit la réflexion du modèle : un niveau d'effort sur les modèles avec réflexion adaptative, ou un budget de réflexion sur les modèles qui en utilisent un. none désactive la réflexion sur les modèles qui le permettent. Lorsque la réflexion est activée, Claude rejette une temperature autre que 1, top_k, un top_p en dehors de 0.95–1, et un message assistant pré-rempli. Un tool_choice forcé fonctionne avec la réflexion adaptative mais pas avec un budget de réflexion.

anthropic_optionsobject

Options pour les modèles Claude.

  • prompt_caching (boolean) : Définissez sur true pour mettre en cache le début du prompt. TokenLab marque la fin du prompt système et le dernier message utilisateur comme points de cache. Une requête ultérieure commençant par le même contenu le lira depuis le cache. Si un message possède déjà cache_control, TokenLab n'ajoute aucun point de cache.
  • prompt_caching_ttl (string) : 5m (par défaut) ou 1h. Si la route de service ne prend pas en charge une heure, TokenLab utilise cinq minutes et ne rejette pas la requête.

extra.prompt_caching et extra.prompt_caching_ttl sont acceptés comme étant les mêmes options. Voir Mise en cache des prompts pour les tarifs et comment vérifier les tokens mis en cache.

seedinteger

Graine d'échantillonnage pour les modèles qui la prennent en charge. Une sortie identique n'est pas garantie.

ninteger

Nombre de complétions à générer (1-128).

logprobsboolean

Indique s'il faut renvoyer les probabilités logarithmiques.

top_logprobsinteger

Nombre de probabilités logarithmiques principales à renvoyer (0-20). Nécessite logprobs: true.

top_kinteger

Échantillonnage Top-K pour les modèles qui le prennent en charge.

response_formatobject

Format de réponse. Utilisez {"type": "json_object"} pour le mode JSON ou {"type": "json_schema", "json_schema": {...}} pour un schéma JSON. La prise en charge dépend du modèle sélectionné.

logit_biasobject

Modifie la probabilité d'apparition de tokens spécifiés. Associez les IDs de tokens (sous forme de chaînes) à des valeurs de biais de -100 à 100.

userstring

Un identifiant unique représentant votre utilisateur final pour la surveillance des abus.

Réponse

idstring

Identifiant unique pour la complétion.

objectstring

Toujours chat.completion.

createdinteger

Horodatage Unix de la création de la complétion.

modelstring

Le modèle utilisé pour la complétion.

choicesarray

Liste des choix de complétion.

Chaque choix contient :

  • index (integer) : Index du choix
  • message (object) : Le message généré
  • finish_reason (string) : Raison pour laquelle le modèle s'est arrêté, par exemple stop, length, ou tool_calls

Lorsque le modèle réfléchit, message peut également contenir :

  • reasoning_content (string) : Le texte de réflexion. Certains modèles ne renvoient qu'un résumé, ou aucun texte.
  • reasoning_details (array) : Blocs de réflexion avec leurs signatures. Pour poursuivre une conversation avec réflexion, par exemple après un appel d'outil, renvoyez-les inchangés dans le message de l'assistant.

Dans un flux, les mêmes champs arrivent sous forme de delta.reasoning_content et delta.reasoning_details.

usageobject

Statistiques d'utilisation des tokens.

  • prompt_tokens (integer) : Tokens dans le prompt
  • completion_tokens (integer) : Tokens dans la complétion, incluant les tokens de réflexion
  • total_tokens (integer) : Total des tokens utilisés
  • completion_tokens_details.reasoning_tokens (integer) : Tokens de réflexion, lorsque le modèle les signale

Requête

curl -X POST "https://api.tokenlab.sh/v1/chat/completions" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-terra",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Hello!"}
    ],
    "max_tokens": 1000
  }'

Exemple multimodal

{
  "model": "gemini-2.5-pro",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "Describe this video briefly." },
        { "type": "video_url", "video_url": { "url": "https://example.com/demo.mp4" } }
      ]
    }
  ],
  "max_tokens": 64
}

Réponse

Response
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1706000000,
  "model": "gpt-5.6-terra",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 20,
    "completion_tokens": 9,
    "total_tokens": 29
  }
}

Autorisation

BearerAuth
AuthorizationBearer <token>

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

Emplacement: header

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

Réponse

application/json

application/json

application/json

application/json

application/json

application/json

application/json