File size: 2,976 Bytes
58ce706
 
115011f
 
 
 
 
 
58ce706
 
 
 
 
 
 
 
 
 
 
 
 
2f471d8
58ce706
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import gradio as gr
from modules.kyc_processor import extract_text_from_id
from modules.profile_matcher import match_profiles
from modules.interview_scheduler import suggest_slots
from modules.onboarding_trainer import generate_quiz
from modules.performance_tracker import analyze_performance
from modules.agent_motivation import personalized_nudge

def run_kyc(image):
    return extract_text_from_id(image)

def run_profile_match(resume, job_role):
    return match_profiles(resume, job_role)

def run_schedule(availability):
    return suggest_slots(eval(availability))  # input as a dict

def run_quiz(topic):
    return generate_quiz(topic)

def run_performance(agent_data):
    try:
        agents = eval(agent_data)
        return "\n".join(analyze_performance(agents))
    except:
        return "Invalid data format. Use: [{'name': 'A', 'sales': 5}, ...]"

def run_motivation(name, goal):
    return personalized_nudge(name, goal)

with gr.Blocks(title="Agent Recruitment & Management Suite") as demo:

    with gr.Tab("KYC OCR"):
        gr.Markdown("### Upload an ID Document for OCR")
        image_input = gr.Image(type="filepath")
        ocr_output = gr.Textbox(label="Extracted Text")
        gr.Button("Extract").click(run_kyc, inputs=image_input, outputs=ocr_output)

    with gr.Tab("Agent Profile Matcher"):
        gr.Markdown("### Compare Resume with Job Role")
        resume_input = gr.Textbox(label="Resume Text")
        job_input = gr.Textbox(label="Job Role Description")
        match_output = gr.Textbox(label="Match Result")
        gr.Button("Check Match").click(run_profile_match, [resume_input, job_input], match_output)

    with gr.Tab("Interview Scheduler"):
        gr.Markdown("### Suggest Interview Slots")
        schedule_input = gr.Textbox(label="Availability Dict (e.g. {'2025-06-21': ['10AM', '2PM']})")
        schedule_output = gr.Textbox(label="Suggested Slots")
        gr.Button("Suggest").click(run_schedule, schedule_input, schedule_output)

    with gr.Tab("Training Quiz"):
        gr.Markdown("### Generate Quiz for a Topic")
        topic_input = gr.Textbox(label="Training Topic")
        quiz_output = gr.JSON(label="Generated Quiz")
        gr.Button("Generate Quiz").click(run_quiz, topic_input, quiz_output)

    with gr.Tab("Performance Tracker"):
        gr.Markdown("### Enter Agent Sales Data")
        performance_input = gr.Textbox(label="Agent List (e.g. [{'name': 'A', 'sales': 3}])")
        performance_output = gr.Textbox(label="Alerts")
        gr.Button("Analyze").click(run_performance, performance_input, performance_output)

    with gr.Tab("Motivational Nudge"):
        gr.Markdown("### Send Motivation to Agent")
        name_input = gr.Textbox(label="Agent Name")
        goal_input = gr.Textbox(label="Goal (e.g. 10 meetings)")
        nudge_output = gr.Textbox(label="Generated Nudge")
        gr.Button("Motivate").click(run_motivation, [name_input, goal_input], nudge_output)

demo.launch()