File size: 1,232 Bytes
ee8711b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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()