| import gradio as gr | |
| from model import score_opportunity | |
| def predict_deal(amount, stage, industry, lead_score, email_count, meeting_count, close_date_gap): | |
| input_data = { | |
| "amount": amount, | |
| "stage": stage, | |
| "industry": industry, | |
| "lead_score": lead_score, | |
| "email_count": email_count, | |
| "meeting_count": meeting_count, | |
| "close_date_gap": close_date_gap | |
| } | |
| result = score_opportunity(input_data) | |
| return result['score'], result['risk'], result['recommendation'] | |
| with gr.Blocks(title="AI Deal Qualification Engine") as demo: | |
| gr.Markdown("# 🤖 AI-Powered B2B Deal Qualification Engine") | |
| with gr.Row(): | |
| amount = gr.Number(label="Amount") | |
| stage = gr.Dropdown(["Prospecting", "Qualified", "Proposal", "Negotiation", "Closed Won", "Closed Lost"], label="Stage") | |
| industry = gr.Textbox(label="Industry") | |
| lead_score = gr.Number(label="Lead Score") | |
| email_count = gr.Number(label="Email Count") | |
| meeting_count = gr.Number(label="Meeting Count") | |
| close_date_gap = gr.Number(label="Close Date Gap (days)") | |
| submit_btn = gr.Button("Predict Deal Quality") | |
| with gr.Row(): | |
| score = gr.Number(label="Score (0–100)", interactive=False) | |
| risk = gr.Textbox(label="Risk Level", interactive=False) | |
| recommendation = gr.Textbox(label="AI Recommendation", lines=2, interactive=False) | |
| submit_btn.click(fn=predict_deal, | |
| inputs=[amount, stage, industry, lead_score, email_count, meeting_count, close_date_gap], | |
| outputs=[score, risk, recommendation]) | |
| demo.launch() | |