Passer au contenu principal

Aperçu

TokenLab expose plusieurs formats d’API afin que les outils de codage, SDK et frameworks courants puissent s’intégrer avec un minimum de code de liaison. Cette page est volontairement plus restreinte qu’une matrice marketing :
  • Supporté signifie que nous documentons un chemin d’installation concret et que TokenLab expose la forme de protocole attendue par ce chemin.
  • Chemin natif robuste signifie que le dépôt dispose également d’un adaptateur direct ou de preuves de format de requête pour cette famille de protocoles.
  • Best-effort signifie que l’intégration peut fonctionner, mais que le client en amont ne traite pas ce flux de travail de passerelle personnalisé comme un contrat stable.
Les champs non supportés ne sont pas traités de manière uniforme. Sur les routes de compatibilité, certains champs sont ignorés ou normalisés. Sur /v1/responses, les champs non supportés peuvent renvoyer des erreurs explicites 400 ou 503 lorsque cette route ne peut pas garantir le comportement demandé.

Formats d’API supportés

EndpointFormatCas d’utilisation
/v1/chat/completionsOpenAI ChatCompatibilité universelle
/v1/responsesOpenAI ResponsesConversations avec état
/v1/messagesAnthropic MessagesFonctionnalités natives Claude
/v1beta/models/:model:generateContentGoogle GeminiFonctionnalités natives Gemini

Compatibilité IDE & CLI

Chemins d’outils documentés

OutilNiveau de supportFormatNotes
CursorSupporté avec limitesCompatible OpenAIFonctionne pour les flux de chat/éditeur standard BYOK, pas en remplacement des fonctionnalités gérées par Cursor comme la complétion par tabulation
Claude Code CLIChemin natif robusteAnthropicRoute native /v1/messages avec couverture d’adaptateur pour le raisonnement (thinking) et tool_choice
Codex CLISupporté avec limites de modèle/cheminOpenAI ResponsesTraitez /v1/responses comme un chemin avancé pour les flux de travail spécifiques à Codex ; certains champs exclusifs à Responses ne sont pas garantis sur chaque modèle et chemin routé
Gemini CLIBest-effort / expérimentalGeminiLe flux d’URL de base personnalisé TokenLab n’est pas une intégration officielle de Gemini CLI
OpenCodeSupportéCompatible OpenAIUtilisez un fournisseur compatible OpenAI par défaut ; passez à un fournisseur basé sur Responses uniquement lorsque vous en avez explicitement besoin
OpenHandsSupportéCompatible OpenAIUtilisez le chemin LiteLLM/compatible OpenAI avec openai/<model> et l’URL de base /v1 de TokenLab
D’autres éditeurs et outils d’agents compatibles OpenAI fonctionnent souvent avec le même modèle d’URL de base ; vérifiez le support de fournisseur personnalisé de l’outil avant de l’utiliser en production.

Exemples de configuration

Base URL: https://api.tokenlab.sh/v1
API Key: sk-your-tokenlab-key
Cursor utilise en interne le format d’outil de style Anthropic. TokenLab supporte les deux :
  • Format OpenAI : { type: "function", function: { name, parameters } }
  • Format Anthropic : { name, input_schema } (pas de champ type)

Compatibilité SDK

Chemins de SDK & Framework documentés

SDK / FrameworkLangageNiveau de supportNotes
OpenAI SDKPython/JS/GoChemin principal supportéChemin de compatibilité pour /v1 Chat Completions et Embeddings ; utilisez les routes de fournisseur natives pour un comportement spécifique au fournisseur, et ne supposez pas que les champs exclusifs à Responses fonctionnent sur chaque modèle
Anthropic SDKPython/JSChemin natif robusteRoute Messages native avec preuves directes pour les outils, le raisonnement et la mise en cache des prompts
Vercel AI SDKTypeScriptModèle d’intégration recommandéPréférez @ai-sdk/openai-compatible ; utilisez @ai-sdk/openai uniquement lorsque vous souhaitez explicitement un comportement natif Responses
LangChainPython/JSSurfaces standard supportéesChatOpenAI et OpenAIEmbeddings sont le périmètre visé ; les extras natifs des fournisseurs sont hors périmètre
LlamaIndexPythonSupporté via OpenAILikeUtilisez OpenAILike, et non les classes OpenAI intégrées, pour les passerelles tierces telles que TokenLab
OpenAI Agents SDKPythonChemin chat-completions supportéUtilisez AsyncOpenAI(base_url="https://api.tokenlab.sh/v1") avec OpenAIChatCompletionsModel ; le comportement natif Responses dépend du modèle et de la route sélectionnés
AutoGenPythonChemin d’endpoint personnalisé supportéUtilisez OpenAIChatCompletionClient avec base_url: https://api.tokenlab.sh/v1
Semantic Kernel.NETChemin d’endpoint personnalisé supportéUtilisez le connecteur de complétion de chat OpenAI avec un endpoint personnalisé pointant vers https://api.tokenlab.sh/v1
CrewAIPythonChemin d’endpoint personnalisé supportéDéfinissez OPENAI_API_BASE ou LLM(base_url=...) sur l’endpoint /v1 de TokenLab
Pydantic AIPythonChemin de fournisseur compatible OpenAI supportéUtilisez OpenAIChatModel avec OpenAIProvider(base_url="https://api.tokenlab.sh/v1")
DSPyPythonChemin d’endpoint personnalisé supportéUtilisez dspy.LM("openai/<model>", api_base="https://api.tokenlab.sh/v1")
LangflowPython / WebSupporté avec limites de périmètreUtilisez le champ OpenAI API Base du composant OpenAI avec l’endpoint /v1 de TokenLab
HaystackPythonChemin d’endpoint personnalisé supportéUtilisez OpenAIChatGenerator(api_base_url="https://api.tokenlab.sh/v1")
GraphitiPythonChemin d’endpoint personnalisé supportéUtilisez OpenAIGenericClient avec l’endpoint /v1 de TokenLab
Dify-Supporté avec limites de périmètreLe fournisseur OpenAI et les flux orientés chat-completions sont le chemin visé ; ne convient pas aux comportements Responses ou WebSocket spécifiques à Codex
FlowiseWeb / NodeSupporté avec limites de périmètreUtilisez le nœud de chat TokenLab lorsqu’il est disponible, ou un nœud compatible ChatOpenAI pointant vers https://api.tokenlab.sh/v1
Mem0PythonChemin d’endpoint personnalisé supportéGardez le fournisseur OpenAI et définissez openai_base_url sur l’endpoint /v1 de TokenLab
AgnoPythonChemin supportéUtilisez le wrapper de modèle TokenLab lorsqu’il est disponible, ou le chemin d’URL de base compatible OpenAI
Browser UsePythonChemin d’endpoint personnalisé supportéUtilisez ChatOpenAILike avec l’endpoint /v1 de TokenLab
VoltAgentTypeScriptChemin d’endpoint personnalisé supportéPassez un fournisseur OpenAI du SDK AI configuré avec baseURL: "https://api.tokenlab.sh/v1"
RagasPythonChemin d’endpoint personnalisé supportéPassez AsyncOpenAI(base_url="https://api.tokenlab.sh/v1") dans llm_factory
GuardrailsPythonChemin de validation supportéPassez un appelable de complétions de chat du SDK OpenAI configuré avec l’endpoint /v1 de TokenLab
Prompt flowPython / CLIChemin d’endpoint personnalisé supportéCréez une connexion OpenAI avec base_url=https://api.tokenlab.sh/v1
PromptfooCLI / NodeChemin supportéUtilisez les fournisseurs de chat ou Responses OpenAI avec apiBaseUrl: https://api.tokenlab.sh/v1
Portkey GatewayGatewayChemin supportéUtilisez TokenLab comme fournisseur en amont pour le trafic de chat et Responses compatible OpenAI
HeliconeGateway / ObservabilitéChemin d’observabilité supportéRoutez les requêtes compatibles OpenAI via Helicone Gateway avec Helicone-Target-Url: https://api.tokenlab.sh
LangfuseObservabilitéChemin de traçage supportéConfigurez l’intégration OpenAI de Langfuse avec l’URL de base /v1 de TokenLab
OpenLITObservabilitéChemin de traçage supportéInstrumentez un client SDK OpenAI configuré avec l’URL de base /v1 de TokenLab
OpenLLMetryObservabilitéChemin de traçage supportéUtilisez l’instrumentation du SDK OpenAI avec l’URL de base /v1 de TokenLab
PhoenixObservabilitéChemin de traçage supportéAuto-instrumentez le client SDK OpenAI configuré avec l’URL de base /v1 de TokenLab
OpikObservabilitéChemin de traçage supportéEnveloppez un client SDK OpenAI configuré avec l’URL de base /v1 de TokenLab
LangBotBot PlatformChemin de chat supportéUtilisez le demandeur TokenLab lorsqu’il est disponible, ou configurez un demandeur compatible OpenAI avec l’endpoint /v1 de TokenLab
Open WebUIWeb ChatChemin d’application de chat supportéAjoutez TokenLab comme connexion API compatible OpenAI et rafraîchissez la liste des modèles
Chatbox / DeepChat / Jan / LibreChat / Cherry StudioDesktop / WebChemin d’application de chat supportéUtilisez le flux de fournisseur personnalisé compatible OpenAI de chaque application ; ces applications sont généralement orientées chat-completions

Paramètres Chat Completions

Paramètres principaux

ParamètreTypeDescription
modelstringIdentifiant du modèle (requis)
messagesarrayMessages de conversation (requis)
max_tokensintegerNombre maximum de tokens en sortie
temperaturenumberTempérature d’échantillonnage (0-2)
top_pnumberÉchantillonnage Nucleus (0-1)
streambooleanActiver le streaming

Appel d’outils (Tool Calling)

{
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Obtenir la météo pour un lieu",
        "parameters": {
          "type": "object",
          "properties": {
            "location": { "type": "string" }
          }
        },
        "strict": true
      }
    }
  ],
  "tool_choice": "auto",
  "parallel_tool_calls": true
}

Options de choix d’outil (Tool Choice)

FormatExempleDescription
String"auto", "none", "required"Sélection simple
Objet OpenAI{ "type": "function", "function": { "name": "fn" } }Forcer une fonction spécifique
Objet Anthropic{ "type": "tool", "name": "fn", "disable_parallel_tool_use": true }Format natif Anthropic

Paramètres avancés

ParamètreTypeDescription
stream_optionsobjectChat Completions uniquement : { include_usage: true } pour le comptage des tokens
reasoning_effortstring"low", "medium", "high" pour les modèles GPT-5 avec raisonnement
service_tierstring"auto" ou "default"
seedintegerSorties déterministes
logprobsbooleanRetourner les log-probabilités
top_logprobsintegerNombre de logprobs supérieurs (0-20)
logit_biasobjectCarte de biais des tokens (-100 à 100)
frequency_penaltynumberPénalité de répétition (-2 à 2)
presence_penaltynumberPénalité de sujet (-2 à 2)
stopstring/arraySéquences d’arrêt
nintegerNombre de complétions (1-128)
userstringIdentifiant utilisateur pour le suivi

Fonctionnalités avancées OpenAI

ParamètreTypeDescription
modalitiesarray["text", "audio"] pour le multimodal
audioobjectConfiguration de sortie audio (voix, format)
predictionobjectSortie prédite pour une complétion plus rapide
metadataobjectPaires clé-valeur pour le suivi
storebooleanStocker pour récupération ultérieure

Options spécifiques au fournisseur

{
  "anthropic_options": {
    "thinking": {
      "type": "enabled",
      "budget_tokens": 10000
    },
    "prompt_caching": true
  },
  "google_options": {
    "safety_settings": [...],
    "google_search": true,
    "code_execution": true
  }
}

Paramètres Anthropic Messages

Paramètres principaux

ParamètreTypeDescription
modelstringIdentifiant du modèle
messagesarrayMessages de conversation
max_tokensintegerSortie maximale (jusqu’à 128000)
systemstring/arrayPrompt système
streambooleanActiver le streaming

Appel d’outils (Tool Calling)

{
  "tools": [
    {
      "name": "get_weather",
      "description": "Obtenir la météo",
      "input_schema": {
        "type": "object",
        "properties": {
          "location": { "type": "string" }
        }
      }
    }
  ],
  "tool_choice": {
    "type": "auto",
    "disable_parallel_tool_use": false
  }
}

Raisonnement étendu (Extended Thinking)

{
  "model": "claude-opus-4-6",
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10000
  }
}

Paramètres de l’API Responses

Paramètres principaux

ParamètreTypeDescription
modelstringIdentifiant du modèle
inputstring/arrayContenu d’entrée
instructionsstringInstructions système
max_output_tokensintegerNombre maximum de tokens en sortie
previous_response_idstringContinuer la conversation

Paramètres avancés

ParamètreTypeDescription
truncation_strategystring"auto" ou "disabled"
includearray["reasoning.encrypted_content"]
reasoning_effortstringPour les modèles de raisonnement
service_tierstringNiveau de priorité

Format d’outil

Supporte les formats d’outils OpenAI et Anthropic :
// Format OpenAI
{ "type": "function", "name": "fn", "parameters": {...} }

// Format Anthropic (compatibilité Cursor)
{ "name": "fn", "input_schema": {...} }

Paramètres de l’API Gemini

Paramètres principaux

ParamètreTypeDescription
contentsarrayContenu de conversation
systemInstructionobjectPrompt système
generationConfigobjectParamètres de génération

Outils

{
  "tools": [{
    "functionDeclarations": [{
      "name": "search",
      "description": "Rechercher sur le web",
      "parameters": {...}
    }],
    "codeExecution": {},
    "googleSearch": {}
  }],
  "toolConfig": {
    "functionCallingConfig": {
      "mode": "AUTO"
    }
  }
}

Paramètres de sécurité

{
  "safetySettings": [
    {
      "category": "HARM_CATEGORY_HARASSMENT",
      "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    }
  ]
}

Paramètres additionnels

ParamètreTypeDescription
cachedContentstringRéférence de contenu mis en cache
responseMimeTypestring"text/plain" ou "application/json"
responseSchemaobjectSchéma JSON pour sortie structurée

Streaming

Les endpoints de génération qui exposent stream: true, incluant Chat Completions et Responses, utilisent les Server-Sent Events (SSE) :
# Chat Completions
curl https://api.tokenlab.sh/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -d '{"model": "gpt-4o", "messages": [...], "stream": true}'

# Suivi d'utilisation Chat Completions
-d '{"...", "stream_options": {"include_usage": true}}'

Gestion des erreurs

TokenLab renvoie des réponses d’erreur compatibles OpenAI :
{
  "error": {
    "message": "Clé API invalide",
    "type": "invalid_api_key",
    "code": "invalid_api_key"
  }
}
Voir le Guide de gestion des erreurs pour plus de détails.

Bonnes pratiques

Les paramètres inconnus ne sont transmis que lorsque la route publique et le modèle sélectionnés les supportent.
Pour le streaming Chat Completions, activez stream_options.include_usage pour un comptage précis des tokens. Responses possède son propre contrat de streaming et n’expose pas cette option réservée à Chat.
Faites correspondre le format attendu par votre SDK. TokenLab accepte les formats OpenAI et Anthropic.