Pular para o conteúdo

Referência da API

Chat completions

POSThttps://api.offmem.app/v1/chat/completions

Gera a resposta do modelo no formato Chat Completions da OpenAI. Funciona com os SDKs oficiais da OpenAI.

curl https://api.offmem.app/v1/chat/completions \
  -H "Authorization: Bearer $OFFMEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "offmem-glm-5.3-flash-abliterated",
    "messages": [{"role": "user", "content": "Explique o que é uma API em uma frase."}]
  }'

Cabeçalhos

AuthorizationBearer om_...obrigatório
Chave de API. x-api-key também funciona.
Content-Typeapplication/jsonobrigatório
Corpo em JSON.

Corpo

modelstringobrigatório
Id do modelo. Veja Modelos.
messagesarrayobrigatório
Conversa no formato da OpenAI (system, user, assistant, tool). Não pode ser vazia. Partes image_url só em modelos com visão.
streamboolean
Devolve a resposta em partes, como server-sent events. Padrão false.
stream_options.include_usageboolean
Com stream, acrescenta um último evento com usage.
max_completion_tokens, max_tokensinteger
Limite de tokens de saída. Também serve para reservar saldo antes da chamada; sem ele, a reserva considera 4.096 tokens de saída.
ninteger
Só 1. Outro valor recebe 400 invalido.
tools, tool_choicearray, string | object
Chamada de funções no formato da OpenAI, repassada ao modelo.
temperature, top_p, stop, …
Os demais parâmetros da OpenAI seguem para o modelo como enviados. O suporte depende do modelo.

Campos removidos

store, metadata, user e safety_identifier são descartados antes de a requisição chegar ao modelo.

Resposta

Objeto chat.completion da OpenAI. model traz o id do offmem e usage traz só contagens de tokens: prompt_tokens, completion_tokens, total_tokens, prompt_tokens_details.cached_tokens e completion_tokens_details.reasoning_tokens, quando o modelo informa.

200 OK
{
  "id": "...",
  "object": "chat.completion",
  "created": 1762560000,
  "model": "offmem-glm-5.3-flash-abliterated",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "..." },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 18,
    "completion_tokens": 32,
    "total_tokens": 50,
    "prompt_tokens_details": { "cached_tokens": 0 }
  }
}
x-offmem-request-idcabeçalho
Identificador da requisição, o mesmo do console.

Streaming

Com "stream": true a resposta é text/event-stream: eventos chat.completion.chunk e um data: [DONE] no fim. O evento de uso só vem quando stream_options.include_usage é true.

curl -N https://api.offmem.app/v1/chat/completions \
  -H "Authorization: Bearer $OFFMEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "offmem-glm-5.3-flash-abliterated",
    "stream": true,
    "stream_options": {"include_usage": true},
    "messages": [{"role": "user", "content": "Explique o que é uma API em uma frase."}]
  }'

Eventos

text/event-stream
data: {"id":"...","object":"chat.completion.chunk","model":"offmem-glm-5.3-flash-abliterated","choices":[{"index":0,"delta":{"content":"..."}}]}

data: {"id":"...","object":"chat.completion.chunk","model":"offmem-glm-5.3-flash-abliterated","choices":[],"usage":{"prompt_tokens":18,"completion_tokens":32,"total_tokens":50}}

data: [DONE]

Se a conexão for fechada antes do fim, a requisição é cobrada por estimativa: a entrada mais o que já foi entregue.

Duração

Uma requisição pode durar até 300 segundos.