File size: 2,721 Bytes
c4d9410
bc9aa7d
 
2a4c77b
 
bc9aa7d
2a4c77b
 
 
bc9aa7d
 
 
2a4c77b
bc9aa7d
2a4c77b
 
 
 
 
 
 
bc9aa7d
2a4c77b
 
 
 
 
bc9aa7d
 
 
 
 
 
 
 
 
2a4c77b
bc9aa7d
2a4c77b
bc9aa7d
 
2a4c77b
 
 
 
 
 
 
bc9aa7d
2a4c77b
bc9aa7d
 
2a4c77b
 
bc9aa7d
2a4c77b
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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()