Documentazione dell'API
Babel Mesh offre un'API compatibile con OpenAI. Cambia l'URL di base e la chiave e i tuoi strumenti e SDK esistenti funzionano.
Per iniziare
| URL di base | https://babelmesh.ai/v1 |
|---|---|
| Autenticazione | L'intestazione Authorization: Bearer LA_TUA_CHIAVE. Le chiavi iniziano con sk-fab-. |
| Come ottenere una chiave | Apri la console dell'account per creare un account e le chiavi. Una chiave viene mostrata una sola volta, quando la crei; conservala. Lì puoi creare e disattivare chiavi in qualsiasi momento. |
I modelli disponibili in questo momento si possono elencare in qualsiasi momento:
curl https://babelmesh.ai/v1/models \ -H "Authorization: Bearer $BABEL_KEY"
Se non sai quale modello scegliere, usa auto. Babel Mesh guarda la richiesta: le chiacchiere e le domande semplici vanno a un modello veloce; il codice a un modello per il codice; il ragionamento, i materiali molto lunghi, le chiamate a strumenti o l'output strutturato al modello più potente; e se un modello non ha nodi o ha una coda lunga, se ne usa un altro. La decisione legge solo la richiesta stessa (la lunghezza, se contiene codice, strumenti o uno schema di output strutturato) e non viene conservato nulla. L'intestazione di risposta X-Gateway-Model dice quale modello ha risposto e X-Gateway-Auto perché. auto sceglie solo modelli che il tuo account può usare.
Puoi anche indicarne uno: chat-default (veloce), chat-strong (potente), code-default (codice), embedding-default (embedding), video-default (video). Per le immagini usa il modello z-image-turbo (auto funziona anche per le richieste di immagini). Un alias punta alla scelta migliore del momento; funziona anche il nome proprio del modello.
Chat
L'endpoint è POST /v1/chat/completions; con stream: true la risposta arriva in streaming.
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"}]
}'Con l'SDK Python di 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="")Embedding
L'endpoint è POST /v1/embeddings; input è una stringa o un elenco di stringhe.
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"]}'Immagini
L'endpoint è POST /v1/images/generations; l'immagine torna in 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}'Video
Il video richiede minuti, quindi è un lavoro asincrono: invialo, interroga lo stato, poi recupera il file.
# 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.mp4Ogni account può avere un numero limitato di lavori video in corso. Un video terminato viene conservato per un giorno.
Usarlo da altre app
Poiché l'API è compatibile con OpenAI, funziona con interfacce di chat come Open WebUI, Cherry Studio e Chatbox, e con i plugin di IA degli editor. Aggiungila come provider "compatibile con OpenAI" con due impostazioni:
| URL di base | https://babelmesh.ai/v1 |
|---|---|
| Chiave API | La tua chiave, che inizia con sk-fab-. |
- Queste app non conoscono l'API dei lavori video (invia, interroga, recupera); per i video chiama direttamente l'API come sopra.
- La cronologia delle conversazioni resta nella tua app; Babel Mesh non la conserva. I contenuti sono trattati secondo la classe di dati dell'account, che per impostazione predefinita è "pubblica" e può essere eseguita sui computer dei contributori: non inserire materiale privato o riservato.
- Se distribuisci un'app del genere per più persone, tutte condividono i crediti e i limiti della stessa chiave.
Errori e limiti
400 | La richiesta è malformata, oppure è più lunga di quanto qualsiasi modello disponibile possa accettare (context_length_exceeded), oppure il modello è un modello di embedding e la richiesta non è una richiesta di embedding. |
|---|---|
401 | Nessuna chiave, o chiave non valida. |
402 | Crediti esauriti, oppure il budget di questa chiave è esaurito. |
404 | Nome del modello errato, oppure nessun nodo serve quel modello in questo momento. |
429 | Superato il limite di richieste al minuto o di token dell'account. Attendi un momento. |
503 | Troppo carico in questo momento. L'intestazione Retry-After indica quanti secondi attendere. |
Gli errori hanno il formato di OpenAI: {"error": {"message": "...", "type": "..."}}. Il tuo saldo e i tuoi limiti: GET /v1/account.