Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import numpy as np | |
| from PIL import Image | |
| import requests | |
| import xgboost | |
| import pandas as pd | |
| from app_funcs import * | |
| import hopsworks | |
| import joblib | |
| project = hopsworks.login() | |
| fs = project.get_feature_store() | |
| X_columns_to_drop = ["percentage_future", "cohort_first_month", "month", | |
| "cohort_first_product"] | |
| feature_view = fs.get_feature_view(name="cohorts_fv", version=1) | |
| mr = project.get_model_registry() | |
| model = mr.get_model("cohort_model", version=1) | |
| model_dir = model.download() | |
| model = joblib.load(model_dir + "/xgb_.pkl") | |
| def cohort_predict(cohort_start, start_date, product): | |
| # Get feature view in a dataframe | |
| data, labels = feature_view.get_training_data(training_dataset_version=1) | |
| data["percentage_future"] = labels | |
| # Convert it to pandas datetime | |
| data["cohort_first_month"] = pd.to_datetime(data["cohort_first_month"]) | |
| data["month"] = pd.to_datetime(data["month"]) | |
| # Sort and assert | |
| data = data.sort_values(by=["cohort_first_product", "cohort_first_month", "month"]) | |
| new_seq = generate_new_data(data, cohort_start, start_date, product, model, X_columns_to_drop, 12) | |
| hist_seq = get_sequence(data, cohort_start, product) | |
| print(hist_seq.head()) | |
| fig = plot_example_from_case(hist_seq, new_seq, 25, product) | |
| fig.canvas.draw() | |
| arr = np.frombuffer(fig.canvas.tostring_rgb(), dtype=np.uint8) | |
| arr = arr.reshape(fig.canvas.get_width_height()[::-1] + (3,)) | |
| return Image.fromarray(arr) | |
| demo = gr.Interface( | |
| fn=cohort_predict, | |
| title="Cohort Active Percentage Prediction", | |
| description="Predicts active user percentage in a future month for a cohort that started in specific date with specific product", | |
| allow_flagging="never", | |
| inputs=[ | |
| gr.Textbox(default='2022-04-01', label="Cohort Start Date"), | |
| gr.Textbox(default='2022-04-01', label="Prediction Start Date"), | |
| gr.Textbox(default="3m", label="Product (1m, 3m, 4m)"), | |
| ], | |
| outputs=gr.Image(type="pil")) | |
| demo.launch() |