Documentação da API
O Logus decide se uma mensagem pode chegar ao seu LLM: ALLOW ou DENY.
Endpoint
POST /v1/decision
Autenticação
Authorization: Bearer lg_... (sua chave de API)
Requisição
{
"provider_id": "prov_xxx",
"conversation_id": "conv_123",
"request_id": "req_456",
"context": [
{"title": "contrato", "content": "documento fixo (opcional)"}
],
"messages": [
{"role": "user", "content": "mensagem do cliente"},
{"role": "assistant", "content": "resposta anterior do seu LLM"}
]
}
Resposta
{
"provider_id": "prov_xxx",
"conversation_id": "conv_123",
"request_id": "req_456",
"decision": "DENY",
"reason_code": "POLICY_DENIED",
"policy_version": "v1.2",
"credits_consumed": 2,
"prompt_tokens": 10240
}
Créditos
Mínimo de 1 crédito por decisão (o Logus paga o modelo em toda chamada) + 1 crédito a cada bloco de ~8.000 tokens de entrada (configurável). A resposta informa credits_consumed e prompt_tokens. Replays com o mesmo request_id são idempotentes e não re-cobram.
Códigos de erro
| HTTP | Significado |
|---|---|
| 400 | Payload inválido (campos, papéis, tamanhos, campos desconhecidos) |
| 401 | Chave de API inválida ou revogada |
| 402 | Créditos insuficientes |
| 403 | Provedor inativo ou provider_id divergente |
| 429 | Limite de requisições |
| 5xx | Falha interna — trate como ausência de autorização (fail closed) |
Reason codes
POLICY_ACCEPTED · POLICY_DENIED · JAILBREAK_ATTEMPT · INVALID_PAYLOAD · UNKNOWN_NICHE · INSUFFICIENT_CREDITS · PROVIDER_INACTIVE · MODEL_OUTPUT_INVALID · MODEL_UNAVAILABLE · POLICY_LOAD_FAILURE · INTERNAL_ERROR