def __init__(self): """ needs to set: - num tasks - domains - conditional goals/constraints (for multi domain tasks) - outfile root name - for .json (to be used by voiphub) and for .xml for Camdial - NOTE: not sure if any problems could arise from unicode v. string differences... """ # Set number of goals/different dialogues to generate: self.MIN_TASK_NUM = 10000 # start the tasks from a large number - so that DTMF = 3*task_id can work self.NUM_TASKS = 100 if Settings.config.has_option("tasks","numtasks"): self.NUM_TASKS = Settings.config.getint("tasks","numtasks") # SAVE NAME: if not Settings.config.has_option("tasks","savename"): logger.error("No name given to save file under") self.savename = Settings.config.get("tasks","savename") # if savedir given, then prepend it to save name if Settings.config.has_option("tasks","savedir"): directory = Settings.config.get("tasks","savedir") self.savename = directory+self.savename ## Create goal generators for each domain: self.multi_domain_sim_user = SimulatedUsersManager.SimulatedUsersManager(Ontology.global_ontology.possible_domains) # data structure to hold and write out generated tasks: self.tasks = {"possible_domains":Ontology.global_ontology.possible_domains, "tasks": {}, # will add to this, keys=task numbers }
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, 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