Spaces:
Sleeping
Sleeping
File size: 3,552 Bytes
3f6d8c2 616e02e 3f6d8c2 616e02e 3f6d8c2 616e02e ca85cf9 3f6d8c2 616e02e 3f6d8c2 616e02e 3f6d8c2 616e02e |
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
import streamlit as st
import pandas as pd
import requests
# Set the title and header of the app
st.set_page_config(page_title="ExtraaLearn Lead Conversion Predictor", layout="wide")
st.title("π ExtraaLearn Lead Conversion Predictor")
st.markdown("### Predict whether a lead will convert to a paid customer.")
# --- API Configuration ---
API_URL = "https://Pratik26Dec-ExtraaLearn.hf.space/predict"
# --- User Input Form ---
st.header("Lead Information")
with st.form("lead_form"):
col1, col2, col3 = st.columns(3)
with col1:
age = st.slider("Age", 18, 65, 30)
current_occupation = st.radio("Current Occupation", ['Professional', 'Unemployed', 'Student'])
first_interaction = st.radio("First Interaction", ['Website', 'Mobile App'])
with col2:
profile_completed = st.selectbox("Profile Completed", ['Low', 'Medium', 'High'])
website_visits = st.slider("Website Visits", 0, 30, 3)
time_spent_on_website = st.slider("Time Spent on Website (seconds)", 0, 2600, 500)
with col3:
page_views_per_visit = st.number_input("Pages Viewed per Visit", 0.0, 20.0, 3.0)
last_activity = st.selectbox("Last Activity", ['Email Activity', 'Phone Activity', 'Website Activity'])
st.markdown("<br>", unsafe_allow_html=True)
st.write("---")
st.subheader("Source of Information")
print_media_type1 = st.checkbox("Seen on Newspaper Ad?")
print_media_type2 = st.checkbox("Seen on Magazine Ad?")
digital_media = st.checkbox("Seen on Digital Ad?")
educational_channels = st.checkbox("Heard on Educational Channels?")
referral = st.checkbox("Referred by someone?")
# Submit button for the form
submit_button = st.form_submit_button(label='Predict Lead Conversion')
# --- Prediction Logic ---
if submit_button:
# Prepare data to be sent to the API
input_data = {
"age": age,
"current_occupation": current_occupation,
"first_interaction": first_interaction,
"profile_completed": profile_completed,
"website_visits": website_visits,
"time_spent_on_website": time_spent_on_website,
"page_views_per_visit": page_views_per_visit,
"last_activity": last_activity,
"print_media_type1": "Yes" if print_media_type1 else "No",
"print_media_type2": "Yes" if print_media_type2 else "No",
"digital_media": "Yes" if digital_media else "No",
"educational_channels": "Yes" if educational_channels else "No",
"referral": "Yes" if referral else "No"
}
with st.spinner("Analyzing lead data..."):
try:
response = requests.post(API_URL, json=input_data)
if response.status_code == 200:
prediction = response.json()
st.success("β
Prediction Successful!")
# Display the prediction result
st.write(f"The model predicts this lead is **{prediction['prediction_label']}**.")
st.progress(int(prediction['probabilities']['Converted'] * 100), text="Conversion Probability")
st.info(f"Probability of Conversion: **{prediction['probabilities']['Converted']:.2f}**")
else:
st.error(f"β API call failed with status code: {response.status_code}")
st.json(response.json())
except requests.exceptions.RequestException as e:
st.error(f"β An error occurred while connecting to the API: {e}") |