> ## 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.

# Guides de Migration

> Déplacez OpenAI, Anthropic, Gemini et les charges de travail multimédia vers TokenLab avec de petits changements sûrs pour la production.

TokenLab est multi-format : vous pouvez conserver des clients compatibles avec OpenAI, des appels Messages natifs à Anthropic, des appels REST natifs à Gemini et des points de terminaison multimédia dans leurs formes naturelles. La migration la plus sûre consiste à ne pas traduire chaque charge de travail en un format universel. Choisissez la route qui possède le comportement dont votre application a besoin.

## Cartographie des Routes

| Charge de travail existante | URL de base TokenLab         | Point de terminaison principal          | Remarque sur la migration                                                                                       |
| --------------------------- | ---------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| OpenAI Chat Completions     | `https://api.tokenlab.sh/v1` | `/chat/completions`                     | Changement le plus petit pour le chat compatible avec OpenAI et l'appel de fonction                             |
| OpenAI Responses            | `https://api.tokenlab.sh/v1` | `/responses`                            | Utilisez lorsque votre application dépend d'entrées, d'outils ou de gestion de sortie spécifiques aux Responses |
| Anthropic SDK               | `https://api.tokenlab.sh`    | `/v1/messages`                          | Ne pas ajouter `/v1` à l'URL de base du SDK                                                                     |
| Gemini REST                 | `https://api.tokenlab.sh`    | `/v1beta/models/:model:generateContent` | Conservez les champs natifs de Gemini sur la route Gemini                                                       |
| Génération multimédia       | `https://api.tokenlab.sh/v1` | `/images`, `/videos`, `/music`, `/3d`   | Découvrez les modèles avec `recommended_for` et attendez-vous à un polling asynchrone là où cela est documenté  |
| Gestion et facturation      | `https://api.tokenlab.sh/v1` | `/management/...`                       | Utilisez des tokens de gestion pour un usage côté serveur et la réconciliation de facturation                   |

## Migration Compatible avec OpenAI

```python theme={null}
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-tokenlab-key",
    base_url="https://api.tokenlab.sh/v1",
)

response = client.chat.completions.create(
    model="gpt-5.4",
    messages=[{"role": "user", "content": "Hello from TokenLab"}],
)
```

Conservez votre code de réessai, de délai d'attente et de streaming existant, mais validez les ID de modèle avec `GET /v1/models` avant le trafic de production. Pour la génération d'images, envoyez `model` explicitement et lisez le guide d'image car les modèles d'image diffèrent plus que les modèles de chat.

## Migration Anthropic

```python theme={null}
from anthropic import Anthropic

client = Anthropic(
    api_key="sk-your-tokenlab-key",
    base_url="https://api.tokenlab.sh",
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain TokenLab in one sentence."}],
)
```

Utilisez `/v1/messages` pour l'utilisation d'outils natifs à Claude, les flux de réflexion et la sémantique des messages Anthropic. Ne traduisez pas les champs uniquement Anthropic via les Chat Completions à moins que vous ne souhaitiez intentionnellement un changement de comportement compatible avec OpenAI.

## Migration Gemini

```bash theme={null}
curl "https://api.tokenlab.sh/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "Authorization: Bearer sk-your-tokenlab-key" \
  -H "Content-Type: application/json" \
  -d '{"contents":[{"parts":[{"text":"Hello"}]}]}'
```

Conservez les outils intégrés de Gemini, les références de l'API de fichiers, les contenus mis en cache, les déclarations de fonction et les parties de contenu natif sur `/v1beta` lorsque votre application dépend du comportement natif de Gemini.

## Migration Multimédia

1. Interrogez `GET /v1/models?recommended_for=image|video|music|3d`.
2. Lisez `tokenlab.public_contract_summary` dans les réponses de liste et le `tokenlab.public_contract` complet lorsque disponible.
3. Envoyez un `model` explicite, en particulier pour les points de terminaison d'image.
4. Stockez `task_id`, `poll_url`, point de terminaison, modèle et votre propre ID de travail pour les travaux asynchrones.
5. Réconciliez les coûts via les enregistrements d'utilisation et `billing_transaction_id`, pas les ID de tâche du fournisseur.

Les charges de travail multimédia nécessitent leur propre plan de déploiement car la latence, les réessais et les actifs finaux se comportent différemment des complétions de chat.

## Plan de Déploiement en Production

| Phase                     | Objectif                                                                                                                          | Vérifications                                                                |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| 1. Inventaire             | Lister les points de terminaison, modèles, champs de requête, comportement de streaming/asynchrone et propriétaire de facturation | Aucun champ caché uniquement fournisseur n'est supposé public                |
| 2. Pilote à route unique  | Déplacer un point de terminaison et une famille de modèles                                                                        | La forme de réponse, le coût et les journaux correspondent aux attentes      |
| 3. Ombre ou échantillon   | Comparer les sorties sélectionnées avec le fournisseur précédent                                                                  | La qualité et la latence visibles par l'utilisateur sont acceptables         |
| 4. Déploiement progressif | Augmenter le trafic par clé, org ou drapeau de fonctionnalité                                                                     | Surveillez `4xx`, `5xx`, latence, équilibre et travaux asynchrones en double |
| 5. Nettoyage              | Supprimer l'ancienne route fournisseur uniquement après une utilisation stable                                                    | Le chemin de retour et le manuel de support sont documentés                  |

## Pièges de Migration

* Ne mettez pas chaque modèle derrière un seul chemin OpenAI Chat Completions si votre application a besoin d'un comportement natif à Anthropic, Gemini ou Responses.
* Ne supposez pas les anciens défauts d'image. Envoyez `model` explicitement.
* Ne réessayez pas les requêtes de création asynchrone sans vérifier si une tâche a déjà été créée.
* Ne divulguez pas les métadonnées de routage du fournisseur dans vos journaux ou votre interface utilisateur.
* Ne comparez pas la facturation avec les ID de tâche du fournisseur. Utilisez les enregistrements d'utilisation de TokenLab.

## Référence API

| Sujet                         | Référence                                                      |
| ----------------------------- | -------------------------------------------------------------- |
| API Multi-Format              | [API Multi-Format](/fr/guides/api-formats)                     |
| SDK OpenAI                    | [SDK OpenAI](/fr/integrations/openai-sdk)                      |
| SDK Anthropic                 | [SDK Anthropic](/fr/integrations/anthropic-sdk)                |
| Gemini Native                 | [API Gemini Native](/fr/api-reference/gemini/generate-content) |
| Génération d'Images           | [Génération d'Images](/fr/guides/image-generation)             |
| Travaux Asynchrones & Polling | [Travaux Asynchrones & Polling](/fr/guides/async-jobs-polling) |
