Yatheshr's picture
Update app.py
b11de85 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]
recommendation = f"πŸ“ˆ Stock **{ticker.upper()}** is recommended to: **{rating}**"
return recommendation
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)", placeholder="Enter stock ticker symbol here"),
gr.Slider(label="PE Ratio", minimum=0, maximum=100, step=0.1, value=15),
gr.Slider(label="DE Ratio", minimum=0, maximum=10, step=0.1, value=1),
gr.Slider(label="ROE (%)", minimum=0, maximum=100, step=0.1, value=15),
gr.Slider(label="Market Cap (β‚Ή Cr)", minimum=0, maximum=500000, step=1000, value=100000),
gr.Slider(label="Dividend Yield (%)", minimum=0, maximum=20, step=0.1, value=2)
],
outputs=gr.Textbox(label="Stock Advice", placeholder=" "),
title="πŸ“Š Stock Recommendation ",
description="Enter stock parameters to get a Buy/Hold/Sell recommendation."
)
iface.launch()