Análise em Tempo Real
Analisa em tempo real a qualidade de um decision específico que está sendo editado, retornando uma nota de 0 a 10.
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âmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
decisionChainId | string | UUID do decision_chains que está sendo atualizado | Sim |
decisionPath | string | Caminho do decision que está sendo editado (ex: “chains[0].blocks[1]” ou índice simples como “0”) | Sim |
model | string | Modelo LLM barato a ser usado (padrão: llama3.1-8b) | Não |
provider | string | Provider LLM a ser usado (padrão: cerebras) | Não |
completionTimeoutMs | number | Timeout 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
| Campo | Tipo | Descrição |
|---|---|---|
score | number | Nota de qualidade do decision (0 a 10) |
fromCache | boolean | Indica se o resultado foi retornado do cache (true) ou processado agora (false) |
decisionAdvisorTriggered | boolean | Indica se o decisionAdvisor foi acionado (true) ou não (false) |
cachedAt | string | Data 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
decisionChainIdedecisionPathdentro de 10 segundos, apenas a primeira será processada - As requisições subsequentes retornarão o resultado em cache com
fromCache: true - O campo
cachedAtsempre indica quando o resultado foi cacheado, mesmo quandofromCacheé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álidos401: Token de autenticação inválido ou ausente404: Decision chain não encontrado500: 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
}'