> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rockapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Migration API compatible OpenAI : Python, Node.js et validation

> Configurez les clients Python, Node.js et curl, puis validez modèles, streaming, outils, erreurs et facturation avant de migrer votre application.

Une **API compatible OpenAI** reprend des formats de requête et de réponse documentés. Elle permet parfois de réutiliser un client pour les opérations prises en charge. Modifier l'URL de base reste le début de la migration : identifiants de modèles, paramètres, outils, événements de streaming et erreurs doivent être validés séparément.

## Préparer compte et paramètres

Choisissez un modèle de conversation dans le [catalogue actuel](https://rockapi.ai/pricing), copiez son identifiant exact et vérifiez les droits du compte et du groupe. Créez une clé Rock API dans [Clés API](https://rockapi.ai/keys) ; une clé du fournisseur d'origine ne la remplace pas. Consultez la [facturation](https://docs.rockapi.ai/fr/pricing-and-billing.md) et le solde requis.

Conservez la clé côté serveur dans `ROCK_API_KEY` et placez l'identifiant choisi dans `ROCK_API_MODEL`. Les exemples supposent curl, ou le paquet `openai` installé pour le langage utilisé. Ils concernent Chat Completions et ne garantissent pas les autres méthodes du SDK ou les API natives. L'acheteur n'a pas à configurer de canaux fournisseurs.

## Établir une requête de référence

L'URL de base complète du SDK est `https://rockapi.ai/v1`. N'ajoutez ni un second `/v1`, ni `/chat/completions` à ce réglage. Avec curl, utilisez l'endpoint complet :

```bash theme={null}
curl --fail-with-body https://rockapi.ai/v1/chat/completions \
  -H "Authorization: Bearer $ROCK_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"model\":\"$ROCK_API_MODEL\",\"messages\":[{\"role\":\"user\",\"content\":\"Réponds bonjour.\"}]}"
```

### Exemple Python

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

client = OpenAI(
    base_url="https://rockapi.ai/v1",
    api_key=os.environ["ROCK_API_KEY"],
)
response = client.chat.completions.create(
    model=os.environ["ROCK_API_MODEL"],
    messages=[{"role": "user", "content": "Réponds bonjour."}],
)
print(response.choices[0].message.content)
```

### Exemple Node.js

```javascript theme={null}
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://rockapi.ai/v1",
  apiKey: process.env.ROCK_API_KEY,
});
const response = await client.chat.completions.create({
  model: process.env.ROCK_API_MODEL,
  messages: [{ role: "user", content: "Réponds bonjour." }],
});
console.log(response.choices[0].message.content);
```

## Valider les fonctions utilisées

Commencez sans paramètres facultatifs, puis ajoutez chaque fonction nécessaire. Enregistrez version du SDK, modèle, entrée et résultat attendu pour reproduire les écarts.

| Contrôle | Preuve attendue |
| - | - |
| Réponse simple | Champs attendus, contenu utile et raison de fin |
| Streaming, si disponible | Lecture SSE, fin, annulation et interruption gérées |
| Outils, si disponibles | Arguments valides, résultat de l'outil et tour suivant |
| Sortie structurée ou multimodale | Schéma exact ou média requis par votre application |
| Erreurs et limites | Entrée invalide, accès refusé, délai dépassé et `429` traités |
| Facturation | Journal correspondant, catégories, groupe et montant liquidé |

Une réponse textuelle réussie ne valide pas les images ou les outils. Les fonctions et les réponses varient selon le modèle, même derrière un endpoint commun. Voir l'[évaluation par tâche](https://docs.rockapi.ai/fr/blog/buyers/ai-model-api-comparison.md).

## Déplacer le trafic progressivement

Rejouez des requêtes représentatives et anonymisées dans un environnement de test. Comparez qualité, latence, erreurs et coût par résultat accepté.

Limitez les nouvelles tentatives pour éviter le travail en double et les dépenses incontrôlées ; une erreur d'autorisation ne doit pas être répétée indéfiniment. Utilisez les [erreurs et limites](https://docs.rockapi.ai/fr/errors-and-rate-limits.md) avec des horodatages et identifiants expurgés de secrets.

Augmentez le trafic après validation, en conservant l'ancienne configuration pour revenir en arrière. Contrôlez l'usage liquidé : un débit temporaire ou une erreur HTTP ne suffit pas à établir le montant final.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.