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
| Endpoint | Format | Cas d’utilisation |
|---|---|---|
/v1/chat/completions | OpenAI Chat | Compatibilité universelle |
/v1/responses | OpenAI Responses | Conversations avec état |
/v1/messages | Anthropic Messages | Fonctionnalités natives Claude |
/v1beta/models/:model:generateContent | Google Gemini | Fonctionnalités natives Gemini |
Compatibilité IDE & CLI
Chemins d’outils documentés
| Outil | Niveau de support | Format | Notes |
|---|---|---|---|
| Cursor | Supporté avec limites | Compatible OpenAI | Fonctionne 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 CLI | Chemin natif robuste | Anthropic | Route native /v1/messages avec couverture d’adaptateur pour le raisonnement (thinking) et tool_choice |
| Codex CLI | Supporté avec limites de modèle/chemin | OpenAI Responses | Traitez /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 CLI | Best-effort / expérimental | Gemini | Le flux d’URL de base personnalisé TokenLab n’est pas une intégration officielle de Gemini CLI |
| OpenCode | Supporté | Compatible OpenAI | Utilisez un fournisseur compatible OpenAI par défaut ; passez à un fournisseur basé sur Responses uniquement lorsque vous en avez explicitement besoin |
| OpenHands | Supporté | Compatible OpenAI | Utilisez 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
- Cursor
- Claude Code
- OpenCode
- Aider
- 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 / Framework | Langage | Niveau de support | Notes |
|---|---|---|---|
| OpenAI SDK | Python/JS/Go | Chemin 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 SDK | Python/JS | Chemin natif robuste | Route Messages native avec preuves directes pour les outils, le raisonnement et la mise en cache des prompts |
| Vercel AI SDK | TypeScript | Modè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 |
| LangChain | Python/JS | Surfaces standard supportées | ChatOpenAI et OpenAIEmbeddings sont le périmètre visé ; les extras natifs des fournisseurs sont hors périmètre |
| LlamaIndex | Python | Supporté via OpenAILike | Utilisez OpenAILike, et non les classes OpenAI intégrées, pour les passerelles tierces telles que TokenLab |
| OpenAI Agents SDK | Python | Chemin 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 |
| AutoGen | Python | Chemin d’endpoint personnalisé supporté | Utilisez OpenAIChatCompletionClient avec base_url: https://api.tokenlab.sh/v1 |
| Semantic Kernel | .NET | Chemin d’endpoint personnalisé supporté | Utilisez le connecteur de complétion de chat OpenAI avec un endpoint personnalisé pointant vers https://api.tokenlab.sh/v1 |
| CrewAI | Python | Chemin d’endpoint personnalisé supporté | Définissez OPENAI_API_BASE ou LLM(base_url=...) sur l’endpoint /v1 de TokenLab |
| Pydantic AI | Python | Chemin de fournisseur compatible OpenAI supporté | Utilisez OpenAIChatModel avec OpenAIProvider(base_url="https://api.tokenlab.sh/v1") |
| DSPy | Python | Chemin d’endpoint personnalisé supporté | Utilisez dspy.LM("openai/<model>", api_base="https://api.tokenlab.sh/v1") |
| Langflow | Python / Web | Supporté avec limites de périmètre | Utilisez le champ OpenAI API Base du composant OpenAI avec l’endpoint /v1 de TokenLab |
| Haystack | Python | Chemin d’endpoint personnalisé supporté | Utilisez OpenAIChatGenerator(api_base_url="https://api.tokenlab.sh/v1") |
| Graphiti | Python | Chemin d’endpoint personnalisé supporté | Utilisez OpenAIGenericClient avec l’endpoint /v1 de TokenLab |
| Dify | - | Supporté avec limites de périmètre | Le fournisseur OpenAI et les flux orientés chat-completions sont le chemin visé ; ne convient pas aux comportements Responses ou WebSocket spécifiques à Codex |
| Flowise | Web / Node | Supporté avec limites de périmètre | Utilisez le nœud de chat TokenLab lorsqu’il est disponible, ou un nœud compatible ChatOpenAI pointant vers https://api.tokenlab.sh/v1 |
| Mem0 | Python | Chemin d’endpoint personnalisé supporté | Gardez le fournisseur OpenAI et définissez openai_base_url sur l’endpoint /v1 de TokenLab |
| Agno | Python | Chemin supporté | Utilisez le wrapper de modèle TokenLab lorsqu’il est disponible, ou le chemin d’URL de base compatible OpenAI |
| Browser Use | Python | Chemin d’endpoint personnalisé supporté | Utilisez ChatOpenAILike avec l’endpoint /v1 de TokenLab |
| VoltAgent | TypeScript | Chemin d’endpoint personnalisé supporté | Passez un fournisseur OpenAI du SDK AI configuré avec baseURL: "https://api.tokenlab.sh/v1" |
| Ragas | Python | Chemin d’endpoint personnalisé supporté | Passez AsyncOpenAI(base_url="https://api.tokenlab.sh/v1") dans llm_factory |
| Guardrails | Python | Chemin de validation supporté | Passez un appelable de complétions de chat du SDK OpenAI configuré avec l’endpoint /v1 de TokenLab |
| Prompt flow | Python / CLI | Chemin d’endpoint personnalisé supporté | Créez une connexion OpenAI avec base_url=https://api.tokenlab.sh/v1 |
| Promptfoo | CLI / Node | Chemin supporté | Utilisez les fournisseurs de chat ou Responses OpenAI avec apiBaseUrl: https://api.tokenlab.sh/v1 |
| Portkey Gateway | Gateway | Chemin supporté | Utilisez TokenLab comme fournisseur en amont pour le trafic de chat et Responses compatible OpenAI |
| Helicone | Gateway / Observabilité | Chemin d’observabilité supporté | Routez les requêtes compatibles OpenAI via Helicone Gateway avec Helicone-Target-Url: https://api.tokenlab.sh |
| Langfuse | Observabilité | Chemin de traçage supporté | Configurez l’intégration OpenAI de Langfuse avec l’URL de base /v1 de TokenLab |
| OpenLIT | Observabilité | Chemin de traçage supporté | Instrumentez un client SDK OpenAI configuré avec l’URL de base /v1 de TokenLab |
| OpenLLMetry | Observabilité | Chemin de traçage supporté | Utilisez l’instrumentation du SDK OpenAI avec l’URL de base /v1 de TokenLab |
| Phoenix | Observabilité | Chemin de traçage supporté | Auto-instrumentez le client SDK OpenAI configuré avec l’URL de base /v1 de TokenLab |
| Opik | Observabilité | Chemin de traçage supporté | Enveloppez un client SDK OpenAI configuré avec l’URL de base /v1 de TokenLab |
| LangBot | Bot Platform | Chemin de chat supporté | Utilisez le demandeur TokenLab lorsqu’il est disponible, ou configurez un demandeur compatible OpenAI avec l’endpoint /v1 de TokenLab |
| Open WebUI | Web Chat | Chemin 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 Studio | Desktop / Web | Chemin 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ètre | Type | Description |
|---|---|---|
model | string | Identifiant du modèle (requis) |
messages | array | Messages de conversation (requis) |
max_tokens | integer | Nombre maximum de tokens en sortie |
temperature | number | Température d’échantillonnage (0-2) |
top_p | number | Échantillonnage Nucleus (0-1) |
stream | boolean | Activer le streaming |
Appel d’outils (Tool Calling)
Options de choix d’outil (Tool Choice)
| Format | Exemple | Description |
|---|---|---|
| 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ètre | Type | Description |
|---|---|---|
stream_options | object | Chat Completions uniquement : { include_usage: true } pour le comptage des tokens |
reasoning_effort | string | "low", "medium", "high" pour les modèles GPT-5 avec raisonnement |
service_tier | string | "auto" ou "default" |
seed | integer | Sorties déterministes |
logprobs | boolean | Retourner les log-probabilités |
top_logprobs | integer | Nombre de logprobs supérieurs (0-20) |
logit_bias | object | Carte de biais des tokens (-100 à 100) |
frequency_penalty | number | Pénalité de répétition (-2 à 2) |
presence_penalty | number | Pénalité de sujet (-2 à 2) |
stop | string/array | Séquences d’arrêt |
n | integer | Nombre de complétions (1-128) |
user | string | Identifiant utilisateur pour le suivi |
Fonctionnalités avancées OpenAI
| Paramètre | Type | Description |
|---|---|---|
modalities | array | ["text", "audio"] pour le multimodal |
audio | object | Configuration de sortie audio (voix, format) |
prediction | object | Sortie prédite pour une complétion plus rapide |
metadata | object | Paires clé-valeur pour le suivi |
store | boolean | Stocker pour récupération ultérieure |
Options spécifiques au fournisseur
Paramètres Anthropic Messages
Paramètres principaux
| Paramètre | Type | Description |
|---|---|---|
model | string | Identifiant du modèle |
messages | array | Messages de conversation |
max_tokens | integer | Sortie maximale (jusqu’à 128000) |
system | string/array | Prompt système |
stream | boolean | Activer le streaming |
Appel d’outils (Tool Calling)
Raisonnement étendu (Extended Thinking)
Paramètres de l’API Responses
Paramètres principaux
| Paramètre | Type | Description |
|---|---|---|
model | string | Identifiant du modèle |
input | string/array | Contenu d’entrée |
instructions | string | Instructions système |
max_output_tokens | integer | Nombre maximum de tokens en sortie |
previous_response_id | string | Continuer la conversation |
Paramètres avancés
| Paramètre | Type | Description |
|---|---|---|
truncation_strategy | string | "auto" ou "disabled" |
include | array | ["reasoning.encrypted_content"] |
reasoning_effort | string | Pour les modèles de raisonnement |
service_tier | string | Niveau de priorité |
Format d’outil
Supporte les formats d’outils OpenAI et Anthropic :Paramètres de l’API Gemini
Paramètres principaux
| Paramètre | Type | Description |
|---|---|---|
contents | array | Contenu de conversation |
systemInstruction | object | Prompt système |
generationConfig | object | Paramètres de génération |
Outils
Paramètres de sécurité
Paramètres additionnels
| Paramètre | Type | Description |
|---|---|---|
cachedContent | string | Référence de contenu mis en cache |
responseMimeType | string | "text/plain" ou "application/json" |
responseSchema | object | Schéma JSON pour sortie structurée |
Streaming
Les endpoints de génération qui exposentstream: true, incluant Chat Completions et Responses, utilisent les Server-Sent Events (SSE) :
Gestion des erreurs
TokenLab renvoie des réponses d’erreur compatibles OpenAI :Bonnes pratiques
Utiliser le passthrough pour les paramètres inconnus
Utiliser le passthrough pour les paramètres inconnus
Les paramètres inconnus ne sont transmis que lorsque la route publique et le modèle sélectionnés les supportent.
Utiliser stream_options.include_usage uniquement pour Chat Completions
Utiliser stream_options.include_usage uniquement pour Chat Completions
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.Utiliser le format tool_choice approprié
Utiliser le format tool_choice approprié
Faites correspondre le format attendu par votre SDK. TokenLab accepte les formats OpenAI et Anthropic.