Skip to main content

Aperçu

TokenLab expose quatre surfaces de protocole avec une seule clé API : Chat Completions, Responses, Anthropic Messages et Gemini natif. Une entrée native n’est disponible que si le modèle annonce ce format et qu’une route upstream du même protocole existe ; les entrées natives ne se replient jamais sur Chat Completions. Seule l’entrée Chat peut être compilée à sens unique vers un autre protocole compatible.

Format OpenAI

/v1/chat/completions Format standard, compatibilité maximale

Responses

/v1/responses Cycle de vie et événements Responses natifs

Format Anthropic

/v1/messages Réflexion étendue, fonctionnalités natives de Claude

Format Gemini

/v1beta/models/:model:generateContent Intégration à l’écosystème Google

Pourquoi le multi-format ?

Comparaison des formats

Format OpenAI

Utilisez cette route de compatibilité pour les intégrations OpenAI SDK existantes et les flux portables de chat ou embeddings. Pour un comportement natif Claude ou Gemini, utilisez le format Anthropic ou Gemini ci-dessous.
Idéal pour :
  • Usage général
  • Intégrations existantes avec l’OpenAI SDK
  • Compatibilité maximale

Format Anthropic

API Messages native d’Anthropic. Requis pour les fonctionnalités spécifiques à Claude comme la réflexion étendue.

Réflexion étendue (Claude Opus 4.6)

Disponible uniquement en format Anthropic :
Idéal pour :
  • Fonctionnalités spécifiques à Claude
  • Mode réflexion étendue
  • Utilisateurs du SDK Anthropic natif

Format Gemini

Format natif de l’API Google Gemini pour l’intégration à l’écosystème Google.

Diffusion en continu

Idéal pour :
  • Intégrations Google Cloud
  • Code existant du SDK Gemini
  • Fonctionnalités natives de Gemini
Gemini Files et Cache : La route Gemini native prend en charge /upload/v1beta/files, /v1beta/files, /v1beta/files:register et /v1beta/cachedContents. Files utilise des canaux upstream compatibles avec Gemini File API ; les ressources Cache explicites peuvent aussi passer par des canaux Vertex AI. Les ressources créées via TokenLab sont liées au même canal/key upstream pour les appels generateContent suivants.

Limite de compatibilité des outils

Les outils de fonction ne peuvent être compilés à sens unique que depuis l’entrée Chat lorsque la cible représente la boucle complète. Les outils natifs d’un fournisseur doivent rester sur leur route native :
  • Les outils hébergés et natifs OpenAI Responses comme tool_search, web_search, file_search, code_interpreter, MCP, shell/apply_patch et les outils computer-use nécessitent /v1/responses.
  • Les outils server/native Anthropic comme web_search_*, web_fetch_*, code_execution_*, tool_search_*, bash, computer-use et text-editor nécessitent /v1/messages.
  • Les outils intégrés Gemini comme googleSearch, codeExecution, urlContext, computerUse et les champs tools similaires nécessitent /v1beta.
TokenLab ne rétrograde pas les requêtes de protocole natif vers Chat Completions. Les champs inconnus et les combinaisons d’outils sont transmis au mieux ; l’upstream sélectionné décide de leur prise en charge.

Choisir le bon format

Guides de migration

Depuis l’API officielle OpenAI

Depuis l’API officielle Anthropic

Depuis Google AI Studio

Compatibilité Chat portable

Utilisez /v1/chat/completions lorsqu’un même client doit atteindre des modèles adossés à différents protocoles upstream. Une requête Chat portable peut être compilée à sens unique vers Responses, Messages ou Gemini si elle est entièrement représentable. Les requêtes natives Responses, Messages et Gemini ne sont jamais converties en Chat ; le nom du modèle ou du fournisseur n’implique pas une disponibilité native.

Limites de Responses et Gemini

La surface Responses actuelle comprend la création, la compaction, la récupération, la suppression et SSE. Le mode background fonctionne uniquement en HTTP. WebSocket n’accepte que response.create ; le streaming y est implicite, et background ainsi que response.cancel n’y sont pas proposés. La suppression n’est pas une annulation. Pour Gemini, les noms ProtoJSON lowerCamelCase et les noms proto originaux snake_case sont tous deux officiels et sont conservés, y compris dans les requêtes mixtes. La surface actuelle comprend list/get models, generateContent, streamGenerateContent, countTokens, embedContent et batchEmbedContents ; Interactions et Live n’en font pas partie. Les champs inconnus sont transmis au mieux et l’upstream décide de leur prise en charge.