Skip to content

Erros e limites ​

Formato do erro ​

As respostas de erro das rotas /v1 têm este formato:

json
{
  "error": {
    "type": "invalid_request",
    "message": "Idempotency-Key obrigatório (8 a 200 caracteres)"
  }
}

Use o status HTTP e o type para decidir o que fazer. O message serve para depuração e pode mudar; nos erros de validação (400) costuma vir em inglês, com as issues em JSON. Decida pelo type e pelo status, e não compare o texto no seu código.

Nem todo erro sai nesse formato: uma rota que não existe responde { "message": ..., "code": "NOT_FOUND" }, e as respostas 413 e 415 (corpo grande demais ou de tipo não aceito) chegam com type: service_error. Trate qualquer status 4xx ou 5xx que não reconheça pelo código HTTP.

Tipos e códigos ​

StatustypeQuando aconteceO que fazer
400invalid_requestCorpo ou parâmetro inválido, campo desconhecido, Idempotency-Key ausente ou fora de 8 a 200 caracteres, e-mail inválido, cursor inválido.Corrigir a chamada. Repetir não adianta.
401invalid_api_keyChave ausente, malformada, inexistente, revogada ou vencida.Conferir a chave. Veja Autenticação.
402plan_inactiveO cliente da Cavori está sem plano ativo.O cliente precisa regularizar o plano na Cavori.
402insufficient_creditsA carteira de créditos não cobre a execução.O cliente precisa recarregar os créditos.
404not_foundConversa, execução ou agente que não existe, que a chave não pode usar ou que é de outra integração.Conferir o id e a integração.
409conflictIdempotency-Key reutilizada com outro conteúdo, model diferente do agente da conversa, conversa com uma resposta em andamento, ou uma pessoa assumiu a conversa durante a geração.Veja o message; em geral, aguardar e consultar a execução.
429rate_limitLimite de chamadas por minuto ou de execuções simultâneas.Esperar e tentar de novo, com espera crescente.
5xxservice_errorFalha ou indisponibilidade da Cavori.Tentar de novo com a mesma Idempotency-Key.

Nos erros 5xx a mensagem é sempre genérica. Como a criação é idempotente, repetir a mesma chamada com a mesma Idempotency-Key é seguro: se a primeira chegou a executar, você recebe o estado ou o resultado dela em vez de uma segunda execução. Quando houver dúvida, consulte GET /v1/requests/:id.

Limites ​

LimiteValor
Chamadas por minuto, por chave60
Chamadas por minuto, por cliente (somando todas as chaves)120
Chamadas por minuto, por IP de origem (todas as rotas da Cavori)300
Execuções simultâneas, por chave2
Execuções simultâneas, por cliente5
Tamanho da mensagem do usuárioaté 32.000 caracteres
Idempotency-Keyde 8 a 200 caracteres
external_user_idde 1 a 200 caracteres
Mensagens por página em GET /v1/conversations/:id/messagesaté 100

O limite por IP vale antes dos limites da chave e do cliente: vários servidores seus saindo pelo mesmo IP, ou várias chaves no mesmo servidor, podem bater nos 300 por minuto antes dos 120 do cliente, e a resposta também é 429 rate_limit. As chamadas por minuto contam toda requisição autenticada, de qualquer rota. As execuções simultâneas contam só POST /v1/chat/completions em andamento: ao passar do limite, a resposta é 429 rate_limit. Dentro de uma mesma conversa só roda uma resposta por vez.

O que a API não aceita ​

  • anexos, imagens e áudio no corpo da mensagem;
  • ferramentas (tools) e prompt de sistema enviados pela chamada;
  • histórico enviado de fora: o contexto é o que a Cavori guardou na conversa;
  • mais de uma mensagem por chamada, ou papel diferente de user.

Quem configura o prompt, as ferramentas e o conhecimento do agente é a equipe, no portal da Cavori.