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 basehttps://babelmesh.ai/v1
AuthentificationL'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
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
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 :

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

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

Chaque 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 basehttps://babelmesh.ai/v1
Clé d'APIVotre 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

400La 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.
401Pas de clé, ou clé invalide.
402Crédits épuisés, ou budget de cette clé épuisé.
404Nom de modèle incorrect, ou aucun nœud ne sert ce modèle pour le moment.
429Limite de requêtes par minute ou de jetons du compte dépassée. Patientez un instant.
503Trop 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.