HelpDesk / user_simulator.py
Freakdivi's picture
openenv space
2bd71de
import random
from typing import Dict, List
class UserSimulator:
def __init__(self, ticket: Dict):
self.ticket_id = ticket.get("id", "")
self.initial_text = ticket.get("initial_text", "")
self.clarified_text = ticket.get("clarified_text", "")
self.trigger_phrases: List[str] = ticket.get("trigger_phrases", [])
self.gold_faq_id = ticket.get("gold_faq_id", "")
self.state = "initial"
self.issue_resolved = False
self.clarification_given = False
def respond(self, agent_message: str) -> str:
agent_message_lower = agent_message.lower()
if self.state == "initial":
if any(phrase.lower() in agent_message_lower for phrase in self.trigger_phrases):
self.state = "clarified"
self.clarification_given = True
return self.clarified_text
return random.choice(
[
"I'm not sure what you mean",
"Can you help me?",
"It just stopped working",
]
)
if self.state == "clarified":
guidance_keywords = ["try", "follow", "steps", "should", "please"]
if any(keyword in agent_message_lower for keyword in guidance_keywords):
self.state = "waiting_resolve"
return "Ok I will try that, thanks"
if self.state == "waiting_resolve":
self.issue_resolved = True
return "Yes that fixed it!"
return "Can you help me?"
def confirm_resolved(self) -> bool:
return self.issue_resolved