Analisa em tempo real a qualidade de um decision específico que está sendo editado, retornando uma nota de 0 a 10 usando um modelo barato (llama 8b). Se a nota for menor que 5, aciona o decisionAdvisor completo (se avatar_config.advisor.active === true). Implementa cache com TTL de 10 segundos para evitar processamento duplicado durante edições rápidas.

O que a análise identifica

  • Qualidade do decision baseado em melhores práticas
  • Alinhamento entre Description e Content
  • Instruções autocontidas no Content
  • Especificidade nas Descriptions
  • Separação entre Decisão e Conversação
  • Uso adequado de canRepeat
  • Consistência em instruções de agents
  • Clareza e direção das instruções

Endpoint

POST /api/externalAPIs/public/advisor/decisionRealtimeInsight

Parâmetros

ParâmetroTipoDescriçãoObrigatório
decisionChainIdstringUUID do decision_chains que está sendo atualizadoSim
decisionPathstringCaminho do decision que está sendo editado (ex: “chains[0].blocks[1]” ou índice simples como “0”)Sim
modelstringModelo LLM barato a ser usado (padrão: llama3.1-8b)Não
providerstringProvider LLM a ser usado (padrão: cerebras)Não
completionTimeoutMsnumberTimeout em milissegundos para chamadas LLM (padrão: 30000)Não

Exemplo de Requisição

curl -X POST {{BASE_URL}}/api/externalAPIs/public/advisor/decisionRealtimeInsight \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "decisionChainId": "bf047297-ff98-4b4d-b6b7-07f8f50ca36c",
    "decisionPath": "chains[0].blocks[1]",
    "model": "llama3.1-8b",
    "provider": "cerebras",
    "completionTimeoutMs": 30000
  }'

Exemplo de Resposta

{
  "score": 6.5,
  "fromCache": false,
  "decisionAdvisorTriggered": false,
  "cachedAt": "2024-01-15T10:30:00.000Z"
}

Campos da Resposta

CampoTipoDescrição
scorenumberNota de qualidade do decision (0 a 10)
fromCachebooleanIndica se o resultado foi retornado do cache (true) ou processado agora (false)
decisionAdvisorTriggeredbooleanIndica se o decisionAdvisor foi acionado (true) ou não (false)
cachedAtstringData e hora em ISO 8601 de quando o resultado foi cacheado (sempre presente, mesmo quando fromCache é false)

Comportamento do Cache

O endpoint implementa um sistema de cache com TTL de 10 segundos para evitar processamento duplicado durante edições rápidas. Isso significa que:

  • Se você fizer múltiplas requisições para o mesmo decisionChainId e decisionPath dentro de 10 segundos, apenas a primeira será processada
  • As requisições subsequentes retornarão o resultado em cache com fromCache: true
  • O campo cachedAt sempre indica quando o resultado foi cacheado, mesmo quando fromCache é false

Acionamento do DecisionAdvisor

Quando a nota (score) retornada for menor que 5 e avatar_config.advisor.active === true, o sistema automaticamente aciona o decisionAdvisor completo para fornecer uma análise mais detalhada. Neste caso, decisionAdvisorTriggered será true.

Códigos de Erro

  • 400: Campos obrigatórios ausentes ou inválidos
  • 401: Token de autenticação inválido ou ausente
  • 404: Decision chain não encontrado
  • 500: Erro interno do servidor

Exemplos de Uso

Análise básica

curl -X POST {{BASE_URL}}/api/externalAPIs/public/advisor/decisionRealtimeInsight \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "decisionChainId": "bf047297-ff98-4b4d-b6b7-07f8f50ca36c",
    "decisionPath": "0"
  }'

Análise com modelo customizado

curl -X POST {{BASE_URL}}/api/externalAPIs/public/advisor/decisionRealtimeInsight \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "decisionChainId": "bf047297-ff98-4b4d-b6b7-07f8f50ca36c",
    "decisionPath": "chains[0].blocks[1]",
    "model": "llama3.1-8b",
    "provider": "cerebras",
    "completionTimeoutMs": 60000
  }'