O FinSight é uma aplicação web full-stack de alta performance desenvolvida para o setor financeiro e de crédito. O ecossistema unifica:
- Análises macroeconômicas oficiais sobre o mercado de crédito brasileiro;
- Monitoramento de transações instantâneas contra fraudes no ecossistema Pix;
- Simulação preditiva de concessão de crédito baseada em Machine Learning;
- Governança algorítmica ponta a ponta, com rastreabilidade completa dos modelos em nuvem (MLflow + Azure).
O ecossistema do FinSight é dividido em quatro módulos principais, alimentados por dados oficiais e modelos preditivos:
Panorama Nacional de Crédito:
- Fonte: Amostra representativa de ~30k registros do SCR.data, complementada por séries temporais do SGS e IFData (Banco Central do Brasil), consumidas via API.
- Indicadores: Carteira de crédito total, inadimplência, Selic, IPCA, juros médios e desocupação.
Monitor Pix, Fraudes e Estatísticas:
- Fonte: Dados abertos oficiais do Banco Central do Brasil focados no ecossistema de pagamentos instantâneos.
- Indicadores: Estatísticas transacionais do Pix, montantes contestados e taxas/motivos de devolução via Mecanismo Especial de Devolução (MED).
Simulador Inteligente de Crédito:
- Fonte: Baseado no dataset Financial Risk for Loan Approval (Kaggle).
- Abordagem: Utiliza variáveis socioeconômicas e financeiras acessíveis, permitindo que o usuário responda de forma simples e rápida para obter uma análise de risco preditiva.
Governança, Explicabilidade e IA:
- Fonte/Processamento: Métricas de desempenho rastreadas via MLflow a partir do treinamento de modelos de Ensemble (CatBoost, XGBoost, LightGBM).
- Objetivo: Explicar detalhadamente o funcionamento da simulação de crédito, exibindo scores de probabilidade, limiares ótimos de corte (G-Mean) e explicabilidade algorítmica.
O projeto adota uma arquitetura em nuvem desacoplada e escalável:
| Camada | Componentes | Responsabilidade |
|---|---|---|
| Fontes | SCR.data, SGS/IFData (BCB), Kaggle | Ingestão primária de dados brutos (read-only) |
| ETL e Prep | data_prep.py, database_load.py, azure_storage.py |
Limpeza (encoding UTF-8-SIG), parsing de zips, tratamento de outliers e carga |
| Armazenamento | Azure PostgreSQL, MongoDB, Azure Blob Storage | Persistência transacional (propostas, séries), logs/telemetria e artefatos de IA |
| Camada de ML | train.py, MLflow, artifacts/champion_model.pkl |
Treinamento, versionamento de experimentos e serialização do modelo campeão |
| Backend / API | FastAPI (src/api.py), Engines de Decisão, Fraude e NBA |
Orquestração de regras de negócio e inferência REST |
| Frontend | React (Vite) | Interface visual, simuladores interativos e storytelling de dados |
- Extração: Leitura automatizada de arquivos oficiais do SCR.data (pacotes zip mensais do BCB) e dados do Kaggle via
kagglehub. - Tratamento (
data_prep.py): Correção de encoding, unificação de múltiplos arquivos dos zips, engenharia de features e expurgo de variáveis com vazamento (data leakage). - Persistência (
database_load.py): Dados estruturados salvos no PostgreSQL (propostas_credito,credit_applications) e dados flexíveis/telemetria no MongoDB. - Treinamento e MLOps (
train.py): Stack de Ensemble (RandomForest, LightGBM, XGBoost, CatBoost) rastreado via MLflow. O CatBoost calibrado atua como campeão em produção. - Inferência em Tempo Real: O endpoint
/predictrecebe o intake, executa as regras do motor de crédito (decision_engine.py), pontuação de anomalias (fraud_engine.py) e recomendação comercial (nba_engine.py), salvando a proposta auditada no banco.
- Prevenção de Vazamento (Data Leakage): Variáveis pós-decisão (
installment,int_rate,grade) foram removidas do treino. O modelo utiliza apenas variáveis disponíveis no momento da subscrição (intake). - Tratamento de Desbalanceamento: Utilização da biblioteca
imbalanced-learndevido à proporção de ~80% adimplentes vs ~20% inadimplentes. - Otimização: Busca de hiperparâmetros automatizada via Optuna e explicabilidade gerada por SHAP.
- Rastreabilidade: Todos os parâmetros, métricas e artefatos binários são versionados no repositório de metadados do MLflow e Azure Blob Storage.
- Containerização: Docker (
python:3.11-slim) com dependências compiladas (libgomp1para modelos de árvore de decisão). - Orquestração Local: Docker Compose gerencia 3 serviços (
finsight-api,postgres,mongodb), injetando segredos do Azure Key Vault e volumes persistentes para logs e artefatos do MLflow. - Ambientes de Deploy:
- Frontend: Vercel.
- Backend / API: Render.
- Banco de Dados (Produção): Azure Database for PostgreSQL + Azure Blob Storage + Azure Key Vault.
- CI/CD: Pipelines automatizadas com GitHub Actions e suíte de testes de integração com Pytest.
| Categoria | Ferramentas |
|---|---|
| Linguagem e API | Python 3.11, FastAPI, Pydantic, Uvicorn |
| Frontend | React, Vite, Tailwind CSS, Recharts |
| Machine Learning | Scikit-learn, CatBoost, XGBoost, LightGBM, SHAP, Optuna, imbalanced-learn |
| MLOps | MLflow (Tracking e Artifact Store) |
| Dados e Bancos | Pandas, SQLAlchemy, PostgreSQL (Azure / Local), MongoDB |
| Cloud e DevOps | Microsoft Azure (Blob Storage, Key Vault, PostgreSQL), Docker, Docker Compose, GitHub Actions |
| Deploy | Vercel (Frontend), Render (Backend) |
