File size: 2,439 Bytes
6dfed49 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 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("---")
# Se o botão for clicado, montamos o payload e retornamos
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
|