Documentação da API

O Babel Mesh oferece uma API compatível com a OpenAI. Troque a URL base e a chave e suas ferramentas e SDKs atuais funcionam.

Primeiros passos

URL basehttps://babelmesh.ai/v1
AutenticaçãoO cabeçalho Authorization: Bearer SUA_CHAVE. As chaves começam com sk-fab-.
Como obter uma chaveAbra o console da conta para criar uma conta e chaves. A chave é mostrada uma vez, quando é criada; guarde-a. Lá você pode criar e desativar chaves a qualquer momento.

Os modelos disponíveis agora podem ser listados a qualquer momento:

curl
curl https://babelmesh.ai/v1/models \
  -H "Authorization: Bearer $BABEL_KEY"

Se você não sabe qual modelo escolher, use auto. O Babel Mesh olha a requisição: conversa casual e perguntas simples vão para um modelo rápido; código vai para um modelo de código; raciocínio, material muito longo, chamadas de ferramentas ou saída estruturada vão para o modelo mais forte; e se um modelo não tem nó ou tem fila longa, outro é usado. A decisão lê apenas a própria requisição (o tamanho, se há código, ferramentas ou um esquema de saída estruturada) e nada é guardado. O cabeçalho de resposta X-Gateway-Model informa qual modelo respondeu e X-Gateway-Auto o motivo. O auto só escolhe modelos que sua conta pode usar.

Você também pode indicar um: chat-default (rápido), chat-strong (forte), code-default (código), embedding-default (embeddings), video-default (vídeo). Para imagens, use o modelo z-image-turbo (o auto também funciona em requisições de imagem). Um alias aponta para a melhor opção do momento; o nome próprio do modelo também funciona.

Chat

O endpoint é POST /v1/chat/completions; com stream: true a resposta vem em streaming.

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

Com o SDK Python da 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="")

Embeddings

O endpoint é POST /v1/embeddings; input é uma string ou uma lista de strings.

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

Imagens

O endpoint é POST /v1/images/generations; a imagem volta em 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}'

Vídeo

Vídeo leva minutos, então é uma tarefa assíncrona: envie, consulte o status e depois busque o arquivo.

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

Cada conta pode ter um número limitado de tarefas de vídeo em andamento. Um vídeo pronto fica guardado por um dia.

Usando em outros aplicativos

Como a API é compatível com a OpenAI, ela funciona com interfaces de chat como Open WebUI, Cherry Studio e Chatbox, e com plugins de IA em editores. Adicione-a como provedor "compatível com a OpenAI" com duas configurações:

URL basehttps://babelmesh.ai/v1
Chave de APISua chave, começando com sk-fab-.
  • Esses aplicativos não conhecem a API de tarefas de vídeo (enviar, consultar, buscar); para vídeo, chame a API diretamente como acima.
  • O histórico de conversas fica no seu próprio aplicativo; o Babel Mesh não o guarda. O conteúdo é tratado conforme a classe de dados da conta, que por padrão é "pública" e pode rodar em computadores de colaboradores: não digite material privado ou confidencial.
  • Se você implantar um aplicativo assim para várias pessoas, todas compartilham os créditos e limites da mesma chave.

Erros e limites

400A requisição está malformada, ou é maior do que qualquer modelo disponível aceita (context_length_exceeded), ou o modelo é de embeddings e a requisição não é de embeddings.
401Sem chave, ou chave inválida.
402Créditos esgotados, ou o orçamento desta chave acabou.
404Nome de modelo errado, ou nenhum nó serve esse modelo agora.
429Acima do limite de requisições por minuto ou de tokens da conta. Espere um momento.
503Muito movimento agora. O cabeçalho Retry-After diz quantos segundos esperar.

Os erros têm o formato da OpenAI: {"error": {"message": "...", "type": "..."}}. Seu saldo e seus limites: GET /v1/account.