Spaces:
Sleeping
Sleeping
| 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() | |