Документация 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 (сильная), code-default (код), 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 её не хранит. Содержимое обрабатывается по классу данных аккаунта, который по умолчанию «публичный» и может выполняться на компьютерах участников: не вводите личные или конфиденциальные материалы.
- Если вы развернёте такое приложение для нескольких человек, все они будут делить кредиты и лимиты одного ключа.
Ошибки и ограничения
400 | Запрос сформирован неверно, либо длиннее, чем способна принять любая доступная модель (context_length_exceeded), либо модель является моделью эмбеддингов, а запрос не является запросом эмбеддингов. |
|---|---|
401 | Нет ключа или ключ недействителен. |
402 | Кредиты закончились, либо исчерпан бюджет этого ключа. |
404 | Неверное имя модели, либо сейчас ни один узел не обслуживает эту модель. |
429 | Превышен лимит запросов в минуту или токенов для аккаунта. Подождите немного. |
503 | Сейчас слишком много запросов. Заголовок Retry-After сообщает, сколько секунд ждать. |
Ошибки имеют формат OpenAI: {"error": {"message": "...", "type": "..."}}. Ваш баланс и лимиты: GET /v1/account.