Guia Uso Apis Customer Decisions

Guia de Uso - APIs /csuite-customer-decisions

Base URL: https://csuite.internut.com.br/csuite-customer-decisions


📋 Índice

  1. Visão Geral
  2. Endpoints do Orchestrator
  3. Integração com 4C Decision API
  4. Integração com CSuite Executive
  5. Exemplos Práticos
  6. Troubleshooting

1. Visão Geral

O csuite-customer-decisions é um orchestrator que integra:

Propósito: Camada fina de orquestração que fornece visão consolidada do "organismo digital" (4C + CSuite).


2. Endpoints do Orchestrator

2.1 Status do Organismo (v1 - Recomendado)

Endpoint: GET /v1/organismo/{org_id}/status

Descrição: Retorna visão consolidada do organismo (4C + CSuite Executive) para uma organização.

Parâmetros:
- org_id (path, int) - ID da organização

Exemplo:

curl "https://csuite.internut.com.br/csuite-customer-decisions/v1/organismo/1/status"

Resposta:

{
  "org_id": 1,
  "fourc_decisions_today": 1250,
  "fourc_last_decision_at": "2024-12-01T14:30:00Z",
  "csuite_last_run_at": "2024-12-01T10:00:00Z",
  "csuite_open_alerts": 5,
  "csuite_pending_action_items": 8,
  "notes": {
    "fourc_decisions": {
      "decisions_today": 1250,
      "last_decision_at": "2024-12-01T14:30:00Z"
    },
    "csuite_dashboard": {
      "alerts_open": 5,
      "items_pending": 8
    },
    "csuite_monitoring": {
      "last_run": "2024-12-01T10:00:00Z"
    }
  }
}

Campos:
- fourc_decisions_today: Número de decisões 4C hoje
- fourc_last_decision_at: Última decisão 4C
- csuite_last_run_at: Última execução de agente CSuite
- csuite_open_alerts: Alertas abertos no CSuite
- csuite_pending_action_items: Action items pendentes
- notes: Detalhes adicionais (erros, dados completos)


2.2 Status do Organismo (Legacy)

Endpoint: GET /organismo/{org_id}/status

Descrição: Versão legacy (deprecated). Use /v1/organismo/{org_id}/status.

Status: ⚠️ Deprecated - Use /v1/organismo/{org_id}/status


2.3 Informações da API

Endpoint: GET /api/info

Descrição: Informações gerais da API.

Exemplo:

curl "https://csuite.internut.com.br/csuite-customer-decisions/api/info"

Resposta:

{
  "message": "4C-Suite – Organismo Digital de Gestão",
  "docs": "/docs",
  "health": "/health",
  "organismo_example": "/v1/organismo/1/status",
  "ui": "/"
}

2.4 Health Check

Endpoint: GET /health

Descrição: Verifica saúde da API e dependências (4C Decision API e CSuite API).

Exemplo:

curl "https://csuite.internut.com.br/csuite-customer-decisions/health"

Resposta:

{
  "status": "healthy",
  "dependencies": {
    "fourc_decision_api": {
      "status": "healthy",
      "response_time_ms": 45
    },
    "csuite_api": {
      "status": "healthy",
      "response_time_ms": 120
    }
  }
}

2.5 Dashboard UI

Endpoint: GET /

Descrição: Interface web do dashboard (HTML).

Exemplo:

# Abrir no navegador
https://csuite.internut.com.br/csuite-customer-decisions/

3. Integração com 4C Decision API

O orchestrator faz proxy para a 4C Decision API (sistema de decisões micro).

3.1 Endpoints 4C (via Proxy)

Nota: O orchestrator não expõe diretamente os endpoints 4C. Para usar os endpoints 4C, acesse diretamente:

Base URL 4C Decision API: http://decision-api:8080 (interno) ou via gateway se configurado

Principais endpoints 4C:

POST /decide (ou /v1/decide)

Decisão completa para um cliente (4 Certos: Cliente, Oferta, Jeito, Hora).

Request:

{
  "customer_id": 123,
  "candidates": [
    {"sku": "BK4-2516", "price": 1500.00},
    {"sku": "BK4-2517", "price": 2000.00}
  ],
  "constraints": {
    "min_intent": 0.45,
    "max_contacts_per_day": 2,
    "respect_opt_out": true
  },
  "include_explanations": true,
  "include_natural_justification": false
}

Response:

{
  "decision_id": "uuid-123",
  "approved": true,
  "customer_id": 123,
  "offer": {
    "sku": "BK4-2516",
    "price": 1500.00,
    "margin_pct": 25.5
  },
  "channel": "whatsapp",
  "timing": {
    "send_at": "2025-01-27T14:30:00Z",
    "score": 0.85
  },
  "scores": {
    "intent": 0.72,
    "offer": 0.88,
    "channel": 0.91,
    "timing": 0.85
  }
}

POST /decide/auto (ou /v1/decide/auto)

Decisão automática sem candidatos (sistema escolhe automaticamente).

Request:

{
  "customer_id": 123,
  "include_explanations": true,
  "include_natural_justification": true
}

GET /4c-suite/decisions/summary

Resumo de decisões 4C (usado pelo orchestrator).

Parâmetros:
- org_id (int, obrigatório) - ID da organização

Response:

{
  "decisions_today": 1250,
  "last_decision_at": "2024-12-01T14:30:00Z"
}

4. Integração com CSuite Executive

O orchestrator faz proxy para o CSuite Executive (agentes executivos).

4.1 Endpoints CSuite (via Proxy)

Nota: O orchestrator não expõe diretamente os endpoints CSuite. Para usar os endpoints CSuite, acesse diretamente:

Base URL CSuite Executive: https://csuite.internut.com.br/executive

Principais endpoints CSuite usados pelo orchestrator:

GET /dashboard/summary/{org_id}

Resumo do dashboard executivo.

Response:

{
  "alerts_open": 5,
  "items_pending": 8,
  "last_run": "2024-12-01T10:00:00Z"
}

GET /monitoring/summary/{org_id}

Resumo de monitoramento (execuções de agentes).

Response:

{
  "last_run": "2024-12-01T10:00:00Z",
  "runs_today": 12,
  "success_rate": 0.95
}

5. Exemplos Práticos

5.1 Verificar Status do Organismo

# Status consolidado (recomendado)
curl "https://csuite.internut.com.br/csuite-customer-decisions/v1/organismo/1/status"

# Status legacy (deprecated)
curl "https://csuite.internut.com.br/csuite-customer-decisions/organismo/1/status"

5.2 Health Check Completo

# Health check do orchestrator
curl "https://csuite.internut.com.br/csuite-customer-decisions/health"

# Verificar se 4C Decision API está acessível
# (depende da configuração interna)

# Verificar se CSuite Executive está acessível
curl "https://csuite.internut.com.br/executive/health"

5.3 Dashboard Web

# Abrir dashboard no navegador
open "https://csuite.internut.com.br/csuite-customer-decisions/"

5.4 Workflow Completo: Monitoramento do Organismo

# 1. Verificar saúde geral
curl "https://csuite.internut.com.br/csuite-customer-decisions/health"

# 2. Obter status consolidado
curl "https://csuite.internut.com.br/csuite-customer-decisions/v1/organismo/1/status" | jq

# 3. Verificar decisões 4C (se endpoint estiver exposto)
# curl "https://csuite.internut.com.br/4c/decisions/summary?org_id=1"

# 4. Verificar alertas CSuite
curl "https://csuite.internut.com.br/executive/dashboard/summary/1"

6. Arquitetura

6.1 Fluxo de Dados

Cliente/App
    ↓
csuite-customer-decisions (orchestrator)
    ↓
    ├─→ 4C Decision API (decisões micro)
    └─→ CSuite Executive (agentes macro)
    ↓
Status Consolidado

6.2 Circuit Breaker

O orchestrator usa circuit breaker para resiliência:

Se um serviço estiver indisponível, o orchestrator retorna dados parciais (apenas do serviço disponível).


7. Configuração

7.1 Variáveis de Ambiente

# URLs dos serviços dependentes
FOURC_DECISION_API_URL=http://decision-api:8080
CSUITE_API_URL=http://csuite-api:8000

# Path routing (Traefik)
ROOT_PATH=/csuite-customer-decisions

# Autenticação
AUTH_ENABLED=true

# Logging
LOG_LEVEL=INFO
ENV=production

8. Troubleshooting

Erro: "Not Found"

Erro: "Service Unavailable"

Dados parciais no status

Timeout


9. Documentação Relacionada

9.1 4C Decision API

Documentação completa: 4c/docs/MANUAL_APIS_4C.md

Principais serviços:
- Decision API (/decide, /decide/auto)
- Feature Service (/features/customer)
- Scoring Service (/score/intent, /score/offer, etc)
- Executor (/execute)

9.2 CSuite Executive

Base URL: https://csuite.internut.com.br/executive

Principais endpoints:
- Policy Engine (/v1/policy/evaluate)
- Policy Guardian (/v1/policy/guardian/*)
- Memory API (/v1/memory/*)
- Dashboard (/dashboard/summary/{org_id})


10. Próximos Passos

  1. Expor endpoints 4C via orchestrator (opcional)
  2. Adicionar cache para status consolidado
  3. Métricas agregadas (4C + CSuite)
  4. Alertas consolidados (4C + CSuite)

11. Documentação OpenAPI

Swagger UI: https://csuite.internut.com.br/csuite-customer-decisions/docs

OpenAPI JSON: https://csuite.internut.com.br/csuite-customer-decisions/openapi.json

ReDoc: https://csuite.internut.com.br/csuite-customer-decisions/redoc


Última atualização: 2024-01-15
Versão: v0.1.0

🔊 Text-to-Speech

1.0x
1.0
Pronto para reproduzir