prophet-api / app.py
mkashanz's picture
added
f4091fb
Raw
History Blame Contribute Delete
998 Bytes
import gradio as gr
import pandas as pd
from prophet import Prophet
import json
def forecast_api(json_data, periods):
# 1. Parse Data
try:
data = json.loads(json_data)
df = pd.DataFrame(data)
# 2. Train Prophet (Runs on Hugging Face Server, not your machine)
m = Prophet()
m.fit(df)
# 3. Predict
future = m.make_future_dataframe(periods=int(periods))
forecast = m.predict(future)
# 4. Return result as JSON
result = forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail(int(periods))
# Convert timestamps to string for JSON serialization
result['ds'] = result['ds'].astype(str)
return result.to_json(orient='records')
except Exception as e:
return json.dumps({"error": str(e)})
# Create the API interface
demo = gr.Interface(
fn=forecast_api,
inputs=[gr.Textbox(label="JSON Data"), gr.Number(label="Periods", value=30)],
outputs="json"
)
demo.launch()