-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathevaluation.py
More file actions
51 lines (40 loc) · 1.79 KB
/
evaluation.py
File metadata and controls
51 lines (40 loc) · 1.79 KB
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
import json
from main import route_ticket
from agents.severity_agent import SeverityAgent
from agents.priority_agent import PriorityAgent
# Load test tickets with expected field
with open("test_tickets.json", "r", encoding="utf-8") as f:
test_tickets = json.load(f)
# Initialize agents
severity_agent = SeverityAgent()
priority_agent = PriorityAgent()
def evaluate(tickets):
correct = 0
for i, ticket in enumerate(tickets, 1):
severity_input = {
"subject": ticket["subject"],
"message": ticket["message"]
}
priority_input = {
"customer_tier": ticket["customer_tier"],
"monthly_revenue": ticket["monthly_revenue"],
"previous_tickets": ticket["previous_tickets"],
"account_age_days": ticket["account_age_days"]
}
severity_output = severity_agent.agent.run(severity_input)
priority_output = priority_agent.agent.run(priority_input)
result = route_ticket(severity_output.severity_score, priority_output.priority_score)
# Optional logging
severity_agent.agent.run(severity_input, routing_decision=result)
priority_agent.agent.run(priority_input, routing_decision=result)
expected = ticket.get("expected", None)
print(f"\nTest {i} – {ticket['ticket_id']}: {'✅' if result == expected else '❌'}")
print(f" Severity Score: {severity_output.severity_score}")
print(f" Priority Score: {priority_output.priority_score}")
print(f" Expected: {expected}")
print(f" Got: {result}")
if result == expected:
correct += 1
print(f"\n Final Score: {correct} / {len(tickets)} correct")
if __name__ == "__main__":
evaluate(test_tickets)