karthikmn's picture
Update app.py
2a4c77b verified
raw
history blame
2.72 kB
import gradio as gr
from scorer import get_lead_score, calculate_score, calculate_confidence, calculate_risk
from recommender import generate_recommendation
from insights import explain_score
from logger import log_submission
def run_engine(amount, stage, industry, emails, meetings, close_gap, feedback=""):
lead_score = get_lead_score(stage, emails, meetings, close_gap, amount)
ai_score = calculate_score(lead_score, emails, meetings, close_gap, amount)
confidence = calculate_confidence(ai_score)
risk = calculate_risk(ai_score, confidence, emails, meetings)
recommendation = generate_recommendation(stage, emails, meetings, risk)
explanation = explain_score(lead_score, ai_score, confidence, risk, stage, close_gap, emails, meetings)
# Simulate logging (can be extended to DB)
log_submission({
"amount": amount, "stage": stage, "industry": industry,
"emails": emails, "meetings": meetings, "gap": close_gap,
"lead_score": lead_score, "score": ai_score, "confidence": confidence,
"risk": risk, "feedback": feedback
})
return lead_score, ai_score, confidence, risk, recommendation, explanation
with gr.Blocks(title="AI Deal Qualification Engine") as app:
gr.Markdown("# 🤖 AI-Powered Deal Qualification Engine")
gr.Markdown("Score deals intelligently using pipeline stage, engagement, and timing.")
with gr.Row():
amount = gr.Number(label="Deal Amount (USD)", value=50000)
stage = gr.Dropdown(["Prospecting", "Proposal/Price Quote", "Negotiation", "Closed Won", "Closed Lost"], label="Stage")
industry = gr.Textbox(label="Industry", value="Software")
with gr.Row():
emails = gr.Number(label="Emails in Last 7 Days", value=3)
meetings = gr.Number(label="Meetings in Last 30 Days", value=2)
close_gap = gr.Number(label="Days Until Close Date", value=14)
feedback = gr.Textbox(label="Optional: Rep Feedback")
with gr.Row():
submit = gr.Button("Run AI Scoring")
with gr.Accordion("📊 Results", open=True):
lead_score_out = gr.Number(label="Lead Score (Generated)", interactive=False)
ai_score_out = gr.Number(label="AI Score (0–100)", interactive=False)
confidence_out = gr.Number(label="Confidence", interactive=False)
risk_out = gr.Textbox(label="Risk Level")
reco_out = gr.Textbox(label="AI Recommendation")
explain_out = gr.Textbox(label="AI Explanation")
submit.click(fn=run_engine,
inputs=[amount, stage, industry, emails, meetings, close_gap, feedback],
outputs=[lead_score_out, ai_score_out, confidence_out, risk_out, reco_out, explain_out])
app.launch()