Thamaraikannan commited on
Commit
1b0652b
·
verified ·
1 Parent(s): 6839632

Upload 2 files

Browse files
Files changed (2) hide show
  1. app.py +73 -0
  2. requirement.txt +0 -0
app.py ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import requests
3
+ import pandas as pd
4
+ import json
5
+
6
+ st.set_page_config(page_title="MMM Platform", layout="wide")
7
+
8
+ st.title("MMM Platform")
9
+
10
+ # Upload CSV file
11
+ uploaded_file = st.file_uploader("Upload your CSV file", type=["csv"])
12
+
13
+ if uploaded_file is not None:
14
+ df = pd.read_csv(uploaded_file)
15
+ st.write("### Preview of Uploaded Data")
16
+ st.dataframe(df.head())
17
+
18
+ if "DATE" in df.columns:
19
+ # Convert date column to datetime
20
+ df["DATE"] = pd.to_datetime(df["DATE"], errors="coerce")
21
+ min_date = df["DATE"].min()
22
+ max_date = df["DATE"].max()
23
+
24
+ # Date input selectors
25
+ start_date = st.date_input("Select Start Date", min_value=min_date, max_value=max_date, value=min_date)
26
+ end_date = st.date_input("Select End Date", min_value=min_date, max_value=max_date, value=max_date)
27
+
28
+ if st.button("Send"):
29
+ try:
30
+ # Prepare data for request
31
+ files = {"file": uploaded_file.getvalue()}
32
+ data = {"start_date": start_date.strftime("%Y-%m-%d"), "end_date": end_date.strftime("%Y-%m-%d")}
33
+
34
+ with st.spinner("Processing CSV..."):
35
+ # Send file and date range to FastAPI endpoint
36
+ response = requests.post("https://yuvabe-ai-robyn-backend.hf.space/upload_csv/", files=files, data=data)
37
+
38
+ if response.status_code == 200:
39
+ response_data = response.json()
40
+ st.success("CSV processed successfully!")
41
+ st.json(response_data)
42
+
43
+ st.write("### Robyn Model is Training...")
44
+
45
+ with st.spinner("Training Robyn model..."):
46
+ robyn_response = requests.post(
47
+ "https://yuvabe-ai-robyn-backend.hf.space/run_robyn/",
48
+ files=files,
49
+ data={"data": json.dumps(response_data["mmm_data_spec"])}
50
+ )
51
+
52
+ if robyn_response.status_code == 200:
53
+ robyn_data = robyn_response.json()
54
+ st.write(robyn_data)
55
+ report_url = robyn_data.get("report_urls")
56
+ st.write(report_url)
57
+ if report_url:
58
+ st.success("Robyn model training completed successfully!")
59
+
60
+ st.image(report_url)
61
+
62
+ else:
63
+ st.error("Failed to retrieve report URL.")
64
+ else:
65
+ st.error(f"Robyn training failed: {robyn_response.json().get('error', 'Unknown error')}")
66
+ else:
67
+ st.error(f"CSV processing failed: {response.json().get('error', 'Unknown error')}")
68
+
69
+ except Exception as e:
70
+ st.error(f"An error occurred: {e}")
71
+
72
+ else:
73
+ st.error("The uploaded CSV must contain a 'DATE' column.")
requirement.txt ADDED
Binary file (1.36 kB). View file