File size: 1,423 Bytes
d92c861
 
 
 
 
 
 
54db18f
be531b6
6e48fd5
54db18f
d92c861
 
 
 
 
 
 
 
 
005c659
07fe890
318071e
 
ae5f2f2
 
3d340a8
ae5f2f2
 
 
 
 
3d340a8
 
ae5f2f2
318071e
 
 
 
 
 
4d7c0ac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from fastapi import FastAPI, File, UploadFile, HTTPException
from fastapi.responses import HTMLResponse
from fastapi.responses import StreamingResponse
from fastapi.responses import FileResponse
from fastapi.middleware.cors import CORSMiddleware
from io import StringIO
import os
import uuid,requests
import data_collector as dc
import pandas as pd

app = FastAPI()
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)



@app.post("/get_product_count_prediction")
async def get_product_count_prediction(b_id:int,product_name:str):
    # main
    data,message = dc.get_data(b_id = b_id , product_name = product_name)
    
    if message=="done":
      # Summarize the sales count per month
      data['transaction_date'] = pd.to_datetime(data['transaction_date'])
      data.set_index('transaction_date', inplace=True)
      monthly_sales = data['sell_qty'].resample('M').sum().reset_index()
        
      full_trend,forecasted_value,rounded_value = dc.forecast(monthly_sales)
      print(full_trend,forecasted_value,rounded_value)
        
      rounded_value.columns = ["next_month", "y", "predicted_count"]
        
      # Convert to dictionary
      result_dict = rounded_value.to_dict(orient="records")[0]
        
      return {"next_month":str(result_dict["next_month"]) , "predicted_count":result_dict["predicted_count"]}