eco / app.py
beerth21624
Add artifacts
d177e0a
# !pip install gradio ipywidgets
import pandas as pd
import gradio as gr
import joblib
# "Artifacts"
pipeline = joblib.load("pipeline.joblib")
label_pipeline = joblib.load("label_pipeline.joblib")
cities = joblib.load("cities.joblib")
def predict(city, location, area, bedrooms, baths):
sample = dict()
sample["city"] = city
sample["location"] = location
sample["Area_in_Marla"] = area # Column names matching feature names
sample["bedrooms"] = bedrooms
sample["baths"] = baths
price = pipeline.predict(pd.DataFrame([sample]))
price = label_pipeline.inverse_transform([price])
return int(price[0][0])
# https://www.gradio.app/guides
with gr.Blocks() as blocks:
city = gr.Dropdown(cities, value=cities[0], label="City")
location = gr.Textbox(label="Location")
area = gr.Number(label="Area", value=1, minimum=0.5, step=0.5)
bedrooms = gr.Slider(label="Bedrooms", minimum=0, maximum=10, step=1)
baths = gr.Slider(label="Baths", minimum=0, maximum=10, step=1)
price = gr.Number(label="Price")
inputs = [city, location, area, bedrooms, baths]
outputs = [price]
predict_btn = gr.Button("Predict")
predict_btn.click(predict, inputs=inputs, outputs=outputs)
if __name__ == "__main__":
blocks.launch() # Local machine only
# blocks.launch(server_name="0.0.0.0") # LAN access to local machine
# blocks.launch(share=True) # Public access to local machine