Documentación de la API
Babel Mesh ofrece una API compatible con OpenAI. Cambia la URL base y la clave y tus herramientas y SDK actuales funcionan.
Primeros pasos
| URL base | https://babelmesh.ai/v1 |
|---|---|
| Autenticación | La cabecera Authorization: Bearer TU_CLAVE. Las claves empiezan por sk-fab-. |
| Obtener una clave | Abre la consola de la cuenta para crear una cuenta y claves. La clave se muestra una sola vez, al crearla; guárdala. Allí puedes crear y desactivar claves en cualquier momento. |
Los modelos disponibles ahora se pueden consultar en cualquier momento:
curl https://babelmesh.ai/v1/models \ -H "Authorization: Bearer $BABEL_KEY"
Si no sabes qué modelo elegir, usa auto. Babel Mesh examina la petición: la charla informal y las preguntas sencillas van a un modelo rápido; el código, a un modelo de código; el razonamiento, los materiales muy largos, las llamadas a herramientas o la salida estructurada, al modelo más potente; y si un modelo no tiene nodo o tiene mucha cola, se usa otro. La decisión solo lee la propia petición (su longitud, si tiene código, herramientas o un esquema de salida estructurada) y no se guarda nada. La cabecera de respuesta X-Gateway-Model indica qué modelo respondió y X-Gateway-Auto el motivo. auto solo elige modelos que tu cuenta puede usar.
También puedes indicar uno: chat-default (rápido), chat-strong (potente), code-default (código), embedding-default (embeddings), video-default (vídeo). Para imágenes usa el modelo z-image-turbo (auto también funciona en peticiones de imagen). Un alias apunta a lo que mejor encaja ahora; el nombre propio del modelo también sirve.
Chat
El endpoint es POST /v1/chat/completions; con stream: true la respuesta llega en 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 el SDK de Python de 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
El endpoint es POST /v1/embeddings; input es una cadena o una lista de cadenas.
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"]}'Imágenes
El endpoint es POST /v1/images/generations; la imagen vuelve 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}'Vídeo
El vídeo tarda minutos, así que es un trabajo asíncrono: envíalo, consulta su estado y descarga el archivo.
# 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.mp4Cada cuenta puede tener un número limitado de trabajos de vídeo en curso. Un vídeo terminado se conserva durante un día.
Usarlo desde otras aplicaciones
Como la API es compatible con OpenAI, funciona con interfaces de chat como Open WebUI, Cherry Studio y Chatbox, y con los complementos de IA de los editores. Añádela como proveedor "compatible con OpenAI" con dos ajustes:
| URL base | https://babelmesh.ai/v1 |
|---|---|
| Clave de API | Tu clave, que empieza por sk-fab-. |
- Estas aplicaciones no conocen la API de trabajos de vídeo (enviar, consultar, descargar); para vídeo llama a la API directamente como arriba.
- El historial de conversaciones se queda en tu propia aplicación; Babel Mesh no lo guarda. El contenido se trata según la clase de datos de la cuenta, que por defecto es "pública" y puede ejecutarse en los equipos de los colaboradores: no introduzcas material privado ni confidencial.
- Si despliegas una aplicación así para varias personas, todas comparten los créditos y los límites de esa clave.
Errores y límites
400 | La petición está mal formada, o es más larga de lo que admite cualquier modelo disponible (context_length_exceeded), o el modelo es de embeddings y la petición no lo es. |
|---|---|
401 | Falta la clave, o no es válida. |
402 | Créditos agotados, o se ha agotado el presupuesto de esta clave. |
404 | Nombre de modelo incorrecto, o ningún nodo sirve ese modelo ahora. |
429 | Superado el límite de peticiones por minuto o de tokens de la cuenta. Espera un momento. |
503 | Demasiada demanda ahora. La cabecera Retry-After indica cuántos segundos esperar. |
Los errores tienen el formato de OpenAI: {"error": {"message": "...", "type": "..."}}. Tu saldo y tus límites: GET /v1/account.