def __init__(self, error_rate, ontology, cfg, logger, SetObj): ''' :param error_rate: error rate of the simulated environment :type error_rate: float ''' # Dialogue Agent Factory: #----------------------------------------- self.agent_factory = Agent.AgentFactory(hub_id='simulate', ontology=ontology, cfg=cfg, logger=logger, SetObj=SetObj) # NOTE - using agent factory here rather than just an agent - since for simulate I can easily envisage wanting to # have multiple agents and looking at combining their policies etc... This is not being used now though; will just use # a single agent in here at present. # Simulated User. #----------------------------------------- self.simulator = SimulatedUsersManager.SimulatedUsersManager( error_rate, ontology, cfg, logger, SetObj) self.traceDialog = 2 self.sim_level = 'act' self.logger = logger if cfg.has_option("GENERAL", "tracedialog"): self.traceDialog = cfg.getint("GENERAL", "tracedialog") if cfg.has_option("usermodel", "simlevel"): self.sim_level = cfg.getint("usermodel", "simlevel")
def __init__(self): """ HTTP Server """ self.RECEIVED_DTMF_MSG = "Got it, thanks." self.GENERATE_TOKEN = True self.COLLECT_SUBJECTIVE_FEEDBACK = False self.COLLECT_TASK = False self.host = "localhost" self.port = 8082 self.TOKENSERVERURL = "http://www.camdial.org/~djv27/mt-multiDomain/receive-token.py" # DTMF prompt given over voip call at dialogue's end self.COLLECT_TASKID_PROMPT = ". Please now enter the 5 digit task number followed by the hash key" #The hash key is only for multiple digits self.COLLECT_SUBJECTIVE_PROMPT = " Have you found all the information you were looking for? Please enter one for yes, and zero for no." self.ood_count = 0 self.OOD_THRESHOLD = 1 # Speech Settings: self.allowbargein = False # TODO - config this or remove it -- OR SHOULD IT BE SOMETHING SENT FROM VOICEBROKER EACH TURN? if Settings.config.has_option("dialogueserver", "tokenserverurl"): self.TOKENSERVERURL = Settings.config.get("dialogueserver", "tokenserverurl") self.TOKENSERVERURL = self.TOKENSERVERURL.strip('"') if Settings.config.has_option("dialogueserver", "generatetoken"): self.GENERATE_TOKEN = Settings.config.getboolean( "dialogueserver", "generatetoken") if Settings.config.has_option("dialogueserver", "collecttask"): self.COLLECT_TASK = Settings.config.getboolean( "dialogueserver", "collecttask") if Settings.config.has_option("dialogueserver", "subjectivefeedback"): self.COLLECT_SUBJECTIVE_FEEDBACK = Settings.config.getboolean( "dialogueserver", "subjectivefeedback") if Settings.config.has_option("dialogueserver", "subjectivefeedbackprompt"): self.COLLECT_SUBJECTIVE_PROMPT = Settings.config.get( "dialogueserver", "subjectivefeedbackprompt") if Settings.config.has_option("dialogueserver", "dialhost"): self.host = Settings.config.get("dialogueserver", "dialhost") self.host = self.host.strip('"') if Settings.config.has_option("dialogueserver", "dialport"): self.port = Settings.config.getint("dialogueserver", "dialport") self.issueConsent = False if Settings.config.has_option("dialogueserver", "issueConsent"): self.issueConsent = Settings.config.getboolean( "dialogueserver", "issueConsent") # Dialogue agent: self.agent_factory = Agent.AgentFactory(hub_id='dialogueserver') self.tasks = None if Settings.config.has_option("dialogueserver", "tasksfile"): from tasks import Tasks self.tasks = Tasks.TaskReader( taskfile=Settings.config.get("dialogueserver", "tasksfile")) if self.COLLECT_TASK and self.tasks is None: logger.error( "Must provide a tasks file if you want to collect task")
def __init__(self): """ HTTP Server """ self.RECEIVED_DTMF_MSG = u"Bien reçu! Au revoir et bonne journée!" self.GENERATE_TOKEN = False self.COLLECT_SUBJECTIVE_FEEDBACK = False self.COLLECT_TASK = False self.host = 'localhost' self.port = 8082 self.TOKENSERVERURL = 'http://www.camdial.org/~djv27/mt-multiDomain/receive-token.py' # DTMF prompt given over voip call at dialogue's end self.COLLECT_TASKID_PROMPT = '. Please now enter the 5 digit task number followed by the hash key' #The hash key is only for multiple digits self.COLLECT_SUBJECTIVE_PROMPT = u" Avez-vous bien obtenu toutes les informations dont vous aviez besoin? Répondez simplement par oui ou non, s'il vous plaît." self.ood_count = 0 self.OOD_THRESHOLD = 1 # Speech Settings: self.allowbargein = False # TODO - config this or remove it -- OR SHOULD IT BE SOMETHING SENT FROM VOICEBROKER EACH TURN? if Settings.config.has_option("dialogueserver", "tokenserverurl"): self.TOKENSERVERURL = Settings.config.get("dialogueserver", "tokenserverurl") self.TOKENSERVERURL = self.TOKENSERVERURL.strip('"') if Settings.config.has_option("dialogueserver", "generatetoken"): self.GENERATE_TOKEN = Settings.config.getboolean( "dialogueserver", "generatetoken") if Settings.config.has_option("dialogueserver", "collecttask"): self.COLLECT_TASK = Settings.config.getboolean( "dialogueserver", "collecttask") if Settings.config.has_option("dialogueserver", "subjectivefeedback"): self.COLLECT_SUBJECTIVE_FEEDBACK = Settings.config.getboolean( "dialogueserver", "subjectivefeedback") if Settings.config.has_option("dialogueserver", "subjectivefeedbackprompt"): self.COLLECT_SUBJECTIVE_PROMPT = Settings.config.get( "dialogueserver", "subjectivefeedbackprompt") if Settings.config.has_option("dialogueserver", "dialhost"): self.host = Settings.config.get("dialogueserver", "dialhost") self.host = self.host.strip('"') if Settings.config.has_option("dialogueserver", "dialport"): self.port = Settings.config.getint("dialogueserver", "dialport") self.issueConsent = False if Settings.config.has_option("dialogueserver", "issueConsent"): self.issueConsent = Settings.config.getboolean( "dialogueserver", "issueConsent") # Dialogue agent: self.agent_factory = Agent.AgentFactory(hub_id='dialogueserver') self.tasks = None if Settings.config.has_option("dialogueserver", "tasksfile"): from tasks import Tasks self.tasks = Tasks.TaskReader( taskfile=Settings.config.get("dialogueserver", "tasksfile")) if self.COLLECT_TASK and self.tasks is None: logger.error( "Must provide a tasks file if you want to collect task")
def __init__(self, error_rate): ''' :param error_rate: error rate of the simulated environment :type error_rate: float ''' # Dialogue Agent Factory: #----------------------------------------- self.agent_factory = Agent.AgentFactory(hub_id='simulate') # NOTE - using agent factory here rather than just an agent - since for simulate I can easily envisage wanting to # have multiple agents and looking at combining their policies etc... This is not being used now though; will just use # a single agent in here at present. # Simulated User. #----------------------------------------- self.simulator = SimulatedUsersManager.SimulatedUsersManager( error_rate) self.traceDialog = 2 self.sim_level = 'dial_act' #self.sim_level = 'text' self.text_sampling = 'dict' if Settings.config.has_option("GENERAL", "tracedialog"): self.traceDialog = Settings.config.getint("GENERAL", "tracedialog") if Settings.config.has_option("usermodel", "simlevel"): self.sim_level = Settings.config.get("usermodel", "simlevel") if Settings.config.has_option("usermodel", "textsampling"): self.text_sampling = Settings.config.get("usermodel", "textsampling") if self.sim_level == 'text': #Load the text generator ''' if self.text_sampling == 'dict': sampling_dict = os.path.join(Settings.root, 'usersimulator/textgenerator/textgen_dict.pkl') else: sampling_dict = None ''' import usersimulator.SCTranslate as SCT #self.SCT = SCT.SCTranslate(sampling_dict=sampling_dict) self.SCT = SCT.SCTranslate() elif self.sim_level == 'sys2text': pass #load here florians model