| import streamlit as st |
|
|
| def render_input_form(): |
| """Renderiza o formulário de entrada e retorna o payload caso preenchido, ou None.""" |
| st.subheader("📊 Insira os Dados Financeiros do Cliente") |
| |
| col1, col2 = st.columns(2) |
| with col1: |
| bal_freq = st.slider("Frequência de Saldo (0 a 1)", 0.0, 1.0, 0.8, help="Proporção de meses em que o saldo da conta foi atualizado (1 = todos os meses).") |
| purchases = st.number_input("Total de Compras na Fatura ($)", 0.0, 50000.0, 1000.0, help="Valor total em dinheiro de todas as compras feitas pelo cliente.") |
| oneoff_freq = st.slider("Frequência de Compras à Vista (0 a 1)", 0.0, 1.0, 0.5, help="Frequência com que o cliente faz compras de parcela única (à vista).") |
| cash_adv = st.number_input("Saques em Espécie (Cash Advance - $)", 0.0, 50000.0, 0.0, help="Valor sacado em dinheiro vivo usando o limite do cartão.") |
| credit_limit = st.number_input("Limite de Crédito Total ($)", 0.0, 50000.0, 5000.0, help="O limite máximo de crédito disponível para o usuário.") |
| |
| with col2: |
| prc_full = st.slider("Taxa de Pagamentos Integrais (0 a 1)", 0.0, 1.0, 0.0, help="Frequência em que o cliente paga o valor total da fatura (sem entrar no rotativo).") |
| tenure = st.selectbox("Tempo de Conta (Meses)", [6, 7, 8, 9, 10, 11, 12], index=6, help="Há quanto tempo (em meses) o cliente possui este cartão de crédito.") |
| cred_util = st.slider("Nível de Utilização de Crédito", 0.0, 2.0, 0.3, help="Relação entre o saldo devedor e o limite do cartão. Exemplo: 0.5 significa que usou 50% do limite. Se for 1.77, o cliente estourou o limite em 77%!") |
| pay_ratio = st.number_input("Proporção de Pagamento", 0.0, 100.0, 1.0, help="Proporção entre o valor que o cliente paga e a dívida real dele. Valores maiores indicam que o cliente abate mais a dívida.") |
| |
| st.markdown("---") |
| |
| |
| if st.button("🧠 Executar Motor de Inteligência", use_container_width=True): |
| return { |
| "BALANCE_FREQUENCY": bal_freq, "PURCHASES": purchases, |
| "ONEOFF_PURCHASES_FREQUENCY": oneoff_freq, "CASH_ADVANCE": cash_adv, |
| "CREDIT_LIMIT": credit_limit, "PRC_FULL_PAYMENT": prc_full, |
| "TENURE": tenure, "CREDIT_UTILIZATION": cred_util, "PAYMENT_RATIO": pay_ratio |
| } |
| |
| return None |
|
|