Spaces:
Sleeping
Sleeping
# app/recommender.py | |
import pandas as pd | |
import json | |
def recommend_plans(bill_file, customer_type): | |
""" | |
Recommend SME or Enterprise plans based on usage patterns. | |
""" | |
# Load plan data | |
if customer_type == "SME": | |
plans = pd.read_csv("data/plans_sme.csv") | |
elif customer_type == "Enterprise": | |
plans = pd.read_csv("data/plans_enterprise.csv") | |
else: | |
return pd.DataFrame([{"message": "No plans available for this customer type"}]) | |
# Load bill data (simulate usage capture for now) | |
try: | |
if bill_file.name.endswith(".json"): | |
bill_data = json.load(bill_file) | |
else: | |
bill_data = {"lines": 10, "data_usage_gb": 50, "current_cost": 500} | |
except: | |
bill_data = {"lines": 10, "data_usage_gb": 50, "current_cost": 500} | |
# Simple matching logic: filter plans based on number of lines / data usage | |
recommended = plans[ | |
(plans["min_lines"] <= bill_data["lines"]) & | |
(plans["max_lines"] >= bill_data["lines"]) | |
] | |
recommended = recommended.sort_values(by="price_per_line") | |
return recommended[["plan_name", "price_per_line", "data_quota_gb", "notes"]].head(5) | |