Документация API
Babel Mesh предоставляет API, совместимый с OpenAI. Смените базовый URL и ключ, и ваши инструменты и SDK заработают.
Начало работы
| Базовый URL | https://babelmesh.ai/v1 |
|---|---|
| Аутентификация | Заголовок Authorization: Bearer ВАШ_КЛЮЧ. Ключи начинаются с sk-fab-. |
| Как получить ключ | Откройте консоль аккаунта, чтобы создать аккаунт и ключи. Ключ показывается один раз, при создании; сохраните его. Там можно в любой момент создавать и отключать ключи. |
Список моделей, доступных прямо сейчас, можно получить в любой момент:
curl https://babelmesh.ai/v1/models \ -H "Authorization: Bearer $BABEL_KEY"
Если вы не знаете, какую модель выбрать, используйте auto. Babel Mesh смотрит на запрос: болтовня и простые вопросы уходят быстрой модели; код — модели для кода; рассуждения, очень длинные материалы, вызовы инструментов и структурированный вывод — самой сильной модели; а если у модели нет узла или большая очередь, берётся другая. Решение читает только сам запрос (его длину, есть ли в нём код, инструменты или схема структурированного вывода), и ничего не сохраняется. Заголовок ответа X-Gateway-Model показывает, какая модель ответила, а X-Gateway-Auto — почему. auto выбирает только модели, доступные вашему аккаунту.
Можно указать и конкретную: chat-default (быстрая), chat-strong (сильная), embedding-default (эмбеддинги), video-default (видео). Для изображений используйте модель z-image-turbo (auto тоже работает для запросов изображений). Псевдоним указывает на лучший на данный момент вариант; собственное имя модели тоже работает.
Чат
Конечная точка — POST /v1/chat/completions; с stream: true ответ передаётся потоком.
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"}]
}'С Python SDK от 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="")Эмбеддинги
Конечная точка — POST /v1/embeddings; input — строка или список строк.
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"]}'Изображения
Конечная точка — POST /v1/images/generations; изображение возвращается в 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}'Видео
Видео занимает минуты, поэтому это асинхронная задача: отправьте её, опрашивайте состояние, затем заберите файл.
# 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У каждого аккаунта может быть ограниченное число видеозадач одновременно. Готовое видео хранится один день.
Использование в других приложениях
Поскольку API совместим с OpenAI, он работает с чат-интерфейсами вроде Open WebUI, Cherry Studio и Chatbox и с ИИ-плагинами в редакторах. Добавьте его как «OpenAI-совместимого» провайдера, указав две настройки:
| Базовый URL | https://babelmesh.ai/v1 |
|---|---|
| Ключ API | Ваш ключ, начинающийся с sk-fab-. |
- Эти приложения не знают API видеозадач (отправить, опросить, забрать); для видео вызывайте API напрямую, как показано выше.
- История переписки остаётся в вашем приложении; Babel Mesh её не хранит. Содержимое обрабатывается по классу данных аккаунта, который по умолчанию «публичный» и может выполняться на компьютерах участников: не вводите личные или конфиденциальные материалы.
- Если вы развернёте такое приложение для нескольких человек, все они будут делить кредиты и лимиты одного ключа.
Локальный интерфейс клиента
Клиент Babel Mesh может отвечать и на вашем собственном компьютере, чтобы программы на нём пользовались сетью так же, как локальной моделью. Он выключен, пока вы не включите «Локальный API» на странице аккаунта клиента. Он слушает только этот компьютер (порт по умолчанию 18650; точный адрес показывает клиент), а программы используют токен, который показывает клиент, а не ключ вашего аккаунта.
| Совместимость с OpenAI | http://127.0.0.1:18650/v1: чат, дополнения, изображения, видео и список моделей. |
|---|---|
| Совместимость с Ollama | http://127.0.0.1:18650: /api/chat, /api/generate, /api/tags, /api/show, /api/ps, /api/version и /api/embed. |
| Совместимость с Anthropic | http://127.0.0.1:18650: POST /v1/messages, для Claude Code и подобных инструментов. |
- Инструменты, ожидающие Ollama на обычном порту 11434, обслуживаются там же, но только когда сам Ollama на этом компьютере не установлен и не запущен, так что они никогда не спорят за порт.
- Работает с Claude Code, Open WebUI, Continue, Cursor, Cherry Studio, LobeChat и SDK OpenAI и Ollama.
- Запросы уходят в сеть от имени вашего аккаунта, поэтому кредиты расходуются как обычно и действует тот же класс данных.
Из другого места, с тем же аккаунтом
Публичный адрес https://babelmesh.ai/v1 доступен откуда угодно по ключу вашего аккаунта, поэтому другой компьютер, сервер или приложение на телефоне могут подключаться напрямую. Сейчас этот адрес понимает API, совместимый с OpenAI. Для инструментов в стиле Ollama и Anthropic на другом компьютере установите там клиент, войдите с тем же аккаунтом и пользуйтесь его локальным интерфейсом, как описано выше. Клиент не открывает входящий порт, поэтому его локальный интерфейс недоступен с других машин.
В планах, сроков нет: конечные точки в стиле Anthropic и Ollama также на публичном адресе.
Ошибки и ограничения
400 | Запрос сформирован неверно, либо длиннее, чем способна принять любая доступная модель (context_length_exceeded), либо модель является моделью эмбеддингов, а запрос не является запросом эмбеддингов. |
|---|---|
401 | Нет ключа или ключ недействителен. |
402 | Кредиты закончились, либо исчерпан бюджет этого ключа. |
404 | Неверное имя модели, либо сейчас ни один узел не обслуживает эту модель. |
429 | Превышен лимит запросов в минуту или токенов для аккаунта. Подождите немного. |
503 | Сейчас слишком много запросов. Заголовок Retry-After сообщает, сколько секунд ждать. |
Ошибки имеют формат OpenAI: {"error": {"message": "...", "type": "..."}}. Ваш баланс и лимиты: GET /v1/account.