def __init__(self): self.configname = './tests/test_configs/tasks.cfg' Settings.init(config_file=self.configname) ContextLogger.createLoggingHandlers(config=Settings.config) self.taskdir = Settings.config.get('tasks', 'savedir') if not os.path.isdir(self.taskdir): os.mkdir(self.taskdir) savename = Settings.config.get('tasks', 'savename') self.taskfile = self.taskdir + savename + '.json'
def test_simulate_multidomain(self): '''Run HDC policy for domains in 2 multi domain dialogues ''' Settings.init(config_file='./tests/test_configs/simulate_multiDomains_HDC.cfg') ContextLogger.createLoggingHandlers(config=Settings.config) logger = ContextLogger.getLogger('') logger.info("Starting HDC Multidomain Simulation") reload(Ontology.FlatOntologyManager) # since this has a singleton class Ontology.init_global_ontology() simulator = Simulate.SimulationSystem(error_rate=0.1) simulator.run_dialogs(2) # run 2 dialogues
def test_simulate_multidomain(self): '''Run 2 dialogues with the multidomain system and GP policies (NB: config needs to explicitly set each domain to use gp actually...) ''' Settings.init(config_file='./tests/test_configs/simulate_multiDomains_GP.cfg') ContextLogger.createLoggingHandlers(config=Settings.config) logger = ContextLogger.getLogger('') logger.info("Starting GP Multidomain Simulation") reload(Ontology.FlatOntologyManager) # since this has a singleton class Ontology.init_global_ontology() simulator = Simulate.SimulationSystem(error_rate=0.1) simulator.run_dialogs(2) # run 2 dialogues
def test_simulate_singledomain_for_all_domains(self): '''Loop over all domains and runs 2 dialogues with GP policy in each ''' import numpy.random as nprand # not seeding this - so will be based on system clock--> meaning TESTING here will be somewhat random --> # NOTE --> THIS IS !!!REALLY REALLY REALLY!!! NOT IN THE SPIRIT OF (UNIT) TESTING - WHICH SHOULD NEVER BE ~RANDOM # doing it to get a little more coverage of testing without writing permutations of explicit tests ... Settings.init( config_file= './tests/test_configs/simulate_singledomain_for_all_domains.cfg') ContextLogger.createLoggingHandlers(config=Settings.config) logger = ContextLogger.getLogger('') domains = TestingUtils.get_loop_over_domains() for dstring in domains: Settings.config.set("GENERAL", 'domains', dstring) logger.info("Starting GP Single Domain Simulation for " + dstring) # [policy_DOMAINTAG] Settings.config.add_section('policy_' + dstring) Settings.config.set('policy_' + dstring, 'learning', 'True') Settings.config.set('policy_' + dstring, 'policytype', 'gp') # no inpolicy file give --> starts with empty file (random policy) Settings.config.set('policy_' + dstring, 'outpolicyfile', 'tests/test_gp/' + dstring) if nprand.uniform() > 0.5: Settings.config.set('policy_' + dstring, 'belieftype', 'baseline') else: Settings.config.set('policy_' + dstring, 'belieftype', 'focus') # [gppolicy_DOMAINTAG] Settings.config.add_section('gppolicy_' + dstring) if nprand.uniform() > 0.5: Settings.config.set('gppolicy_' + dstring, 'kernel', 'polysort') else: Settings.config.set('gppolicy_' + dstring, 'kernel', 'gausssort') if nprand.uniform() > 0.5: Settings.config.set('gppolicy_' + dstring, 'actionkerneltype', 'delta') else: Settings.config.set('gppolicy_' + dstring, 'actionkerneltype', 'hdc') reload(Ontology.FlatOntologyManager ) # since this has a singleton class Ontology.init_global_ontology() simulator = Simulate.SimulationSystem(error_rate=0.1) simulator.run_dialogs(2) # run 2 dialogues
def test_simulate_singledomain_for_all_domains(self): '''Loop over all domains and run 2 dialogues via HDC policy in each ''' Settings.init(config_file='./tests/test_configs/simulate_singledomain_for_all_domains.cfg') ContextLogger.createLoggingHandlers(config=Settings.config) logger = ContextLogger.getLogger('') domains = TestingUtils.get_loop_over_domains() for dstring in domains: Settings.config.set("GENERAL", 'domains', dstring) # no policy settings given --> defaults to HDC logger.info("Starting HDC Single Domain Simulation for "+dstring) reload(Ontology.FlatOntologyManager) # since this has a singleton class Ontology.init_global_ontology() simulator = Simulate.SimulationSystem(error_rate=0.1) simulator.run_dialogs(2) # run 2 dialogues
.. seealso:: CUED Imports/Dependencies: import :mod:`utils.Settings` |.| import :mod:`utils.ContextLogger` |.| import :mod:`ontology.Ontology` |.| import :mod:`ontology.OntologyUtils` ************************ ''' __author__ = "cued_dialogue_systems_group" from utils import Settings, ContextLogger from ontology import Ontology, OntologyUtils logger = ContextLogger.getLogger('') class PolicyManager(object): ''' The policy manager manages the policies for all domains. It provides the interface to get the next system action based on the current belief state in :func:`act_on` and to initiate the learning in the policy in :func:`train`. ''' def __init__(self): self.domainPolicies = dict.fromkeys(OntologyUtils.available_domains, None) self.committees = self._load_committees() self.shared_params = None self.SPECIAL_DOMAINS = ['topicmanager', 'wikipedia']
import :mod:`utils.Settings` |.| import :mod:`usersimulator.SimulatedUsersManager` |.| import :mod:`ontology.FlatOntology` |.| import :mod:`Agent` |.| ************************ ''' import os import argparse import Agent from usersimulator import SimulatedUsersManager from utils import Settings from utils import ContextLogger from ontology import Ontology logger = ContextLogger.getLogger('') __author__ = "cued_dialogue_systems_group" __version__ = Settings.__version__ class SimulationSystem(object): ''' Semantic level simulated dialog system ''' def __init__(self, error_rate): ''' :param error_rate: error rate of the simulated environment :type error_rate: float ''' # Dialogue Agent Factory:
def __init__(self): # cfg = 'tests/test_configs/dialogueserver-KUSTOM.cfg' cfg = 'tests/test_configs/dialogueserver-Films.cfg' assert (os.path.exists(cfg)) Settings.init(config_file=cfg) ContextLogger.createLoggingHandlers(config=Settings.config)
import json import argparse try: from utils import Settings, ContextLogger from usersimulator import SimulatedUsersManager from ontology import Ontology except ImportError: import os,sys curdir = os.path.dirname(os.path.realpath(__file__)) curdir = curdir.split('/') curdir = '/'.join(curdir[:-1]) +'/' sys.path.append(curdir) from utils import Settings, ContextLogger from usersimulator import SimulatedUsersManager from ontology import Ontology logger = ContextLogger.getLogger('') class TaskCreator(object): """ """ 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... """
.. seealso:: CUED Imports/Dependencies: import :mod:`policy.Policy` |.| import :mod:`utils.Settings` |.| import :mod:`utils.ContextLogger` ************************ """ __author__ = "cued_dialogue_systems_group" import wikipedia # pip install wikipedia from utils import Settings from utils import ContextLogger import Policy logger = ContextLogger.getLogger('wiki') import sys reload(sys) # sys.setdefaultencoding("utf8") class WikipediaDM(Policy.Policy): """ Dialogue Manager interface to Wikipedia -- developement state. """ def __init__(self): super(WikipediaDM,self).__init__("wikipedia") self.startwithhello = False