Documentation de l'API
Babel Mesh propose une API compatible OpenAI. Changez l'URL de base et la clé, et vos outils et SDK existants fonctionnent.
Premiers pas
| URL de base | https://babelmesh.ai/v1 |
|---|---|
| Authentification | L'en-tête Authorization: Bearer VOTRE_CLE. Les clés commencent par sk-fab-. |
| Obtenir une clé | Ouvrez la console du compte pour créer un compte et des clés. Une clé n'est affichée qu'une fois, à sa création ; conservez-la. Vous pouvez y créer et désactiver des clés à tout moment. |
Les modèles disponibles à l'instant peuvent être listés à tout moment :
curl https://babelmesh.ai/v1/models \ -H "Authorization: Bearer $BABEL_KEY"
Si vous ne savez pas quel modèle choisir, utilisez auto. Babel Mesh examine la requête : la conversation légère et les questions simples vont à un modèle rapide ; le code, à un modèle de code ; le raisonnement, les très longs documents, les appels d'outils ou les sorties structurées, au modèle le plus puissant ; et si un modèle n'a pas de nœud ou une longue file d'attente, un autre est utilisé. La décision ne lit que la requête elle-même (sa longueur, la présence de code, d'outils ou d'un schéma de sortie structurée) et rien n'est conservé. L'en-tête de réponse X-Gateway-Model indique quel modèle a répondu et X-Gateway-Auto pourquoi. auto ne choisit que des modèles que votre compte peut utiliser.
Vous pouvez aussi en nommer un : chat-default (rapide), chat-strong (puissant), code-default (code), embedding-default (embeddings), video-default (vidéo). Pour les images, utilisez le modèle z-image-turbo (auto fonctionne aussi pour les requêtes d'image). Un alias désigne le meilleur choix du moment ; le nom propre d'un modèle fonctionne aussi.
Chat
Le point d'accès est POST /v1/chat/completions ; stream: true envoie la réponse en flux.
curl https://babelmesh.ai/v1/chat/completions \
-H "Authorization: Bearer $BABEL_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "auto",
"messages": [{"role": "user", "content": "Introduce yourself in one sentence"}]
}'Avec le SDK Python d'OpenAI :
from openai import OpenAI
client = OpenAI(base_url="https://babelmesh.ai/v1", api_key="sk-fab-...")
stream = client.chat.completions.create(
model="auto",
messages=[{"role": "user", "content": "Write a Python function that checks for palindromes"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")Embeddings
Le point d'accès est POST /v1/embeddings ; input est une chaîne ou une liste de chaînes.
curl https://babelmesh.ai/v1/embeddings \
-H "Authorization: Bearer $BABEL_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "embedding-default", "input": ["a lighthouse at dawn", "a paper boat on a pond"]}'Images
Le point d'accès est POST /v1/images/generations ; l'image revient en base64 (data[0].b64_json).
curl https://babelmesh.ai/v1/images/generations \
-H "Authorization: Bearer $BABEL_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "z-image-turbo", "prompt": "a lighthouse at dawn, watercolor", "n": 1}'Vidéo
La vidéo prend des minutes, c'est donc une tâche asynchrone : soumettez-la, interrogez son état, puis récupérez le fichier.
# 1. Submit; the answer holds a job id
curl https://babelmesh.ai/v1/videos \
-H "Authorization: Bearer $BABEL_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "video-default", "prompt": "a paper boat on a pond", "seconds": "3"}'
# 2. Poll: queued, in_progress, completed or failed
curl https://babelmesh.ai/v1/videos/VIDEO_ID -H "Authorization: Bearer $BABEL_KEY"
# 3. When completed, fetch the video (mp4)
curl https://babelmesh.ai/v1/videos/VIDEO_ID/content -H "Authorization: Bearer $BABEL_KEY" -o out.mp4Chaque compte peut avoir un nombre limité de tâches vidéo en cours. Une vidéo terminée est conservée un jour.
L'utiliser depuis d'autres applications
Comme l'API est compatible OpenAI, elle fonctionne avec des interfaces de chat comme Open WebUI, Cherry Studio et Chatbox, et avec les extensions d'IA des éditeurs. Ajoutez-la comme fournisseur « compatible OpenAI » avec deux réglages :
| URL de base | https://babelmesh.ai/v1 |
|---|---|
| Clé d'API | Votre clé, qui commence par sk-fab-. |
- Ces applications ne connaissent pas l'API des tâches vidéo (soumettre, interroger, récupérer) ; pour la vidéo, appelez directement l'API comme ci-dessus.
- L'historique des conversations reste dans votre propre application ; Babel Mesh ne le conserve pas. Le contenu est traité selon la classe de données du compte, « publique » par défaut, et peut s'exécuter sur des ordinateurs de contributeurs : ne saisissez pas de contenu privé ou confidentiel.
- Si vous déployez une telle application pour plusieurs personnes, elles partagent toutes les crédits et les limites d'une même clé.
Erreurs et limites
400 | La requête est mal formée, ou plus longue que ce que peut accepter tout modèle disponible (context_length_exceeded), ou le modèle est un modèle d'embeddings et la requête n'en est pas une. |
|---|---|
401 | Pas de clé, ou clé invalide. |
402 | Crédits épuisés, ou budget de cette clé épuisé. |
404 | Nom de modèle incorrect, ou aucun nœud ne sert ce modèle pour le moment. |
429 | Limite de requêtes par minute ou de jetons du compte dépassée. Patientez un instant. |
503 | Trop de monde en ce moment. L'en-tête Retry-After indique combien de secondes attendre. |
Les erreurs ont le format d'OpenAI : {"error": {"message": "...", "type": "..."}}. Votre solde et vos limites : GET /v1/account.