APIドキュメント

Babel Mesh はOpenAI互換のAPIを提供します。ベースURLとキーを変えるだけで、今お使いのツールやSDKがそのまま動きます。

はじめに

ベースURLhttps://babelmesh.ai/v1
認証ヘッダー Authorization: Bearer YOUR_KEY。キーは 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"}]
  }'

OpenAI の Python SDK の場合:

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

各アカウントが同時に進められる動画ジョブの数には上限があります。完成した動画は1日保存されます。

他のアプリから使う

このAPIはOpenAI互換なので、Open WebUI、Cherry Studio、Chatbox などのチャットフロントエンドや、エディターのAIプラグインで使えます。「OpenAI互換」プロバイダーとして、次の2つを設定して追加してください。

ベースURLhttps://babelmesh.ai/v1
APIキーあなたのキー。sk-fab- で始まります。
  • これらのアプリは動画ジョブのAPI(送信、確認、取得)を知りません。動画は上記のようにAPIを直接呼び出してください。
  • 会話履歴はあなた自身のアプリに残り、Babel Mesh は保存しません。内容はアカウントのデータクラスに従って扱われます。既定は「公開」で、貢献者のコンピューターで実行されることがあるため、私的な情報や機密情報は入力しないでください。
  • このようなアプリを複数の人向けに公開すると、全員が1つのキーのクレジットと制限を共有します。

エラーと制限

400リクエストの形式が正しくないか、利用できるどのモデルが扱える長さよりも長い(context_length_exceeded)か、モデルが埋め込み用なのにリクエストが埋め込みのリクエストではありません。
401キーがないか、無効なキーです。
402クレジットを使い切ったか、このキーの予算を使い切りました。
404モデル名が違うか、現在そのモデルを提供しているノードがありません。
429アカウントの1分あたりのリクエスト数またはトークン数の上限を超えました。しばらく待ってください。
503現在混み合っています。Retry-After ヘッダーが待つべき秒数を示します。

エラーはOpenAIと同じ形式です:{"error": {"message": "...", "type": "..."}}。残高と制限は GET /v1/account で確認できます。