Spaces:
Sleeping
Sleeping
#!/usr/bin/env python | |
# coding: utf-8 | |
# In[3]: | |
import streamlit as st | |
import urllib.request | |
import json | |
# Streamlit app title | |
st.title("Stroke Prediction") | |
# Define input fields | |
st.sidebar.header("Input Parameters") | |
gender = st.sidebar.selectbox("Gender", ["Male", "Female"]) | |
age = st.sidebar.slider("Age", 0, 100, 30) | |
hypertension = st.sidebar.checkbox("Hypertension") | |
heart_disease = st.sidebar.checkbox("Heart Disease") | |
ever_married = st.sidebar.checkbox("Ever Married") | |
work_type = st.sidebar.selectbox("Work Type", ["Private", "Self-employed", "Govt_job", "Children", "Never_worked"]) | |
residence_type = st.sidebar.selectbox("Residence Type", ["Urban", "Rural"]) | |
avg_glucose_level = st.sidebar.slider("Average Glucose Level", 0.0, 300.0, 100.0) | |
bmi = st.sidebar.number_input("BMI", 0.0, 100.0, 25.0) | |
smoking_status = st.sidebar.selectbox("Smoking Status", ["Smokes", "Never Smoked", "Unknown"]) | |
# Create a button to trigger prediction | |
if st.sidebar.button("Predict"): | |
# Prepare data | |
data = { | |
"Inputs": { | |
"data": [ | |
{ | |
"id": 0, | |
"gender": gender, | |
"age": age, | |
"hypertension": 1 if hypertension else 0, | |
"heart_disease": 1 if heart_disease else 0, | |
"ever_married": ever_married, | |
"work_type": work_type, | |
"Residence_type": residence_type, | |
"avg_glucose_level": avg_glucose_level, | |
"bmi": bmi, | |
"smoking_status": smoking_status | |
} | |
] | |
}, | |
"GlobalParameters": { | |
"method": "predict" | |
} | |
} | |
# Convert data to JSON | |
data_json = json.dumps(data).encode() | |
# Azure ML Model URL | |
model_url = 'http://38d9a89f-0a86-4fdb-bf82-50ed33213947.southeastasia.azurecontainer.io/score' | |
# Set headers | |
headers = {'Content-Type': 'application/json'} | |
# Make the HTTP request to the model | |
try: | |
response = urllib.request.urlopen(urllib.request.Request(model_url, data_json, headers)) | |
result = response.read() | |
st.success(f"Prediction Result: {result}") | |
except urllib.error.HTTPError as error: | |
st.error(f"Prediction failed with status code: {error.code}") | |
# In[ ]: | |