Yatheshr's picture
Create app.py
ee8711b verified
import gradio as gr
import joblib
import numpy as np
# Load model and scaler
model = joblib.load("stock_model.pkl")
scaler = joblib.load("scaler.pkl")
label_encoder = joblib.load("label_encoder.pkl")
def predict_rating(ticker, pe, de, roe, mcap, dividend):
try:
# Prepare input for model
features = np.array([[float(pe), float(de), float(roe), float(mcap), float(dividend)]])
scaled = scaler.transform(features)
prediction = model.predict(scaled)
rating = label_encoder.inverse_transform(prediction)[0]
return f"๐Ÿ“ˆ Stock **{ticker.upper()}** is recommended to: **{rating}**"
except Exception as e:
return f"โŒ Error: {str(e)}"
# Define the Gradio interface
iface = gr.Interface(
fn=predict_rating,
inputs=[
gr.Textbox(label="Stock Ticker (e.g., INFY)"),
gr.Number(label="PE Ratio"),
gr.Number(label="DE Ratio"),
gr.Number(label="ROE (%)"),
gr.Number(label="Market Cap (โ‚น Cr)"),
gr.Number(label="Dividend Yield (%)")
],
outputs="markdown",
title="๐Ÿ“Š Stock Recommendation - Morningstar Style",
description="Enter stock parameters to get a Buy/Hold/Sell recommendation."
)
iface.launch()