Документация API

Babel Mesh предоставляет API, совместимый с OpenAI. Смените базовый URL и ключ, и ваши инструменты и SDK заработают.

Начало работы

Базовый URLhttps://babelmesh.ai/v1
АутентификацияЗаголовок Authorization: Bearer ВАШ_КЛЮЧ. Ключи начинаются с sk-fab-.
Как получить ключОткройте консоль аккаунта, чтобы создать аккаунт и ключи. Ключ показывается один раз, при создании; сохраните его. Там можно в любой момент создавать и отключать ключи.

Список моделей, доступных прямо сейчас, можно получить в любой момент:

curl
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 (сильная), code-default (код), embedding-default (эмбеддинги), video-default (видео). Для изображений используйте модель z-image-turbo (auto тоже работает для запросов изображений). Псевдоним указывает на лучший на данный момент вариант; собственное имя модели тоже работает.

Чат

Конечная точка — POST /v1/chat/completions; с stream: true ответ передаётся потоком.

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"}]
  }'

С Python SDK от 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="")

Эмбеддинги

Конечная точка — POST /v1/embeddings; input — строка или список строк.

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"]}'

Изображения

Конечная точка — POST /v1/images/generations; изображение возвращается в 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}'

Видео

Видео занимает минуты, поэтому это асинхронная задача: отправьте её, опрашивайте состояние, затем заберите файл.

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

У каждого аккаунта может быть ограниченное число видеозадач одновременно. Готовое видео хранится один день.

Использование в других приложениях

Поскольку API совместим с OpenAI, он работает с чат-интерфейсами вроде Open WebUI, Cherry Studio и Chatbox и с ИИ-плагинами в редакторах. Добавьте его как «OpenAI-совместимого» провайдера, указав две настройки:

Базовый URLhttps://babelmesh.ai/v1
Ключ APIВаш ключ, начинающийся с sk-fab-.
  • Эти приложения не знают API видеозадач (отправить, опросить, забрать); для видео вызывайте API напрямую, как показано выше.
  • История переписки остаётся в вашем приложении; Babel Mesh её не хранит. Содержимое обрабатывается по классу данных аккаунта, который по умолчанию «публичный» и может выполняться на компьютерах участников: не вводите личные или конфиденциальные материалы.
  • Если вы развернёте такое приложение для нескольких человек, все они будут делить кредиты и лимиты одного ключа.

Ошибки и ограничения

400Запрос сформирован неверно, либо длиннее, чем способна принять любая доступная модель (context_length_exceeded), либо модель является моделью эмбеддингов, а запрос не является запросом эмбеддингов.
401Нет ключа или ключ недействителен.
402Кредиты закончились, либо исчерпан бюджет этого ключа.
404Неверное имя модели, либо сейчас ни один узел не обслуживает эту модель.
429Превышен лимит запросов в минуту или токенов для аккаунта. Подождите немного.
503Сейчас слишком много запросов. Заголовок Retry-After сообщает, сколько секунд ждать.

Ошибки имеют формат OpenAI: {"error": {"message": "...", "type": "..."}}. Ваш баланс и лимиты: GET /v1/account.