agent = RequestInformSlotAgent(kb, act_set, slot_set, agent_params, movie_request_slots, movie_inform_slots) elif agt == 5: # movie request rule agent agent = RequestBasicsAgent(kb, act_set, slot_set, agent_params, movie_request_slots) elif agt == 6: # restaurant request rule agent agent = RequestBasicsAgent(kb, act_set, slot_set, agent_params, restaurant_request_slots) elif agt == 7: # taxi request agent agent = RequestBasicsAgent(kb, act_set, slot_set, agent_params, taxi_request_slots) elif agt == 8: # taxi request-inform rule agent agent = RequestInformSlotAgent(kb, act_set, slot_set, agent_params, taxi_request_slots, taxi_inform_slots) elif agt == 9: # DQN agent for movie domain agent = AgentDQN(kb, act_set, slot_set, agent_params) agent.initialize_config(movie_request_slots, movie_inform_slots) elif agt == 10: # restaurant request-inform rule agent agent = RequestInformSlotAgent(kb, act_set, slot_set, agent_params, restaurant_request_slots, restaurant_inform_slots) elif agt == 11: # taxi request-inform-cost rule agent agent = RequestInformSlotAgent(kb, act_set, slot_set, agent_params, taxi_request_slots, taxi_inform_cost_slots) elif agt == 12: # DQN agent for restaurant domain load_actions(dialog_config.restaurant_sys_request_slots, dialog_config.restaurant_sys_inform_slots) agent = AgentDQN(kb, act_set, slot_set, agent_params) agent.initialize_config(restaurant_request_slots, restaurant_inform_slots) elif agt == 13: # DQN agent for taxi domain load_actions(dialog_config.taxi_sys_request_slots,
agent_params['cmd_input_mode'] = params['cmd_input_mode'] if agt == 0: agent = AgentCmd(movie_kb, act_set, slot_set, agent_params) elif agt == 1: agent = InformAgent(movie_kb, act_set, slot_set, agent_params) elif agt == 2: agent = RequestAllAgent(movie_kb, act_set, slot_set, agent_params) elif agt == 3: agent = RandomAgent(movie_kb, act_set, slot_set, agent_params) elif agt == 4: agent = EchoAgent(movie_kb, act_set, slot_set, agent_params) elif agt == 5: agent = RequestBasicsAgent(movie_kb, act_set, slot_set, agent_params) elif agt == 9: agent = AgentDQN(movie_kb, act_set, slot_set, agent_params) ################################################################################ # Add your agent here ################################################################################ else: pass ################################################################################ # Parameters for User Simulators ################################################################################ usersim_params = {} usersim_params['max_turn'] = max_turn usersim_params['slot_err_probability'] = params['slot_err_prob'] usersim_params['slot_err_mode'] = params['slot_err_mode'] usersim_params['intent_err_probability'] = params['intent_err_prob']
if agt == 0: agent = AgentCmd(course_kb, act_set, slot_set, agent_params) elif agt == 1: agent = InformAgent(course_kb, act_set, slot_set, agent_params) elif agt == 2: agent = RequestAllAgent(course_kb, act_set, slot_set, agent_params) elif agt == 3: agent = RandomAgent(course_kb, act_set, slot_set, agent_params) elif agt == 4: agent = EchoAgent(course_kb, act_set, slot_set, agent_params) elif agt == 5: agent = RequestBasicsAgent(course_kb, act_set, slot_set, agent_params) elif agt == 9: agent = AgentDQN(course_kb, act_set, slot_set, agent_params) ################################################################################ # Add your agent here ################################################################################ else: pass ################################################################################ # Parameters for User Simulators ################################################################################ usersim_params = {} usersim_params['max_turn'] = max_turn usersim_params['slot_err_probability'] = params['slot_err_prob'] usersim_params['slot_err_mode'] = params['slot_err_mode'] usersim_params['intent_err_probability'] = params['intent_err_prob']
curr_user_goals = {} if num_goals != 120: curr_user_goals = select_random_user_goals(train_user_goals_no_req_slots, train_user_goals_with_req_slots, training_user_goals_no_req_cardinality[i], training_user_goals_req_cardinality[i]) else: curr_user_goals["all"] = [] curr_user_goals["all"].extend(copy.deepcopy(train_user_goals)) # create pretrain user simulator pretrain_user_sim = RuleSimulator(mock_dictionary, act_set, slot_set, copy.deepcopy(curr_user_goals), pretrain_usersim_params) # create not a pre-trained user simulator user_sim = RuleSimulator(mock_dictionary, act_set, slot_set, copy.deepcopy(curr_user_goals), usersim_params) # create the pre-trained agent pretrained_agent = AgentDQN(kb, act_set, slot_set, pretrained_agent_params) # create the agent from scratch agent = AgentDQN(kb, act_set, slot_set, agent_params) # create dialogue manager for pre-trained agent pretrain_dialog_manager = DialogManager(pretrained_agent, pretrain_user_sim, act_set, slot_set, kb) # create dialogue manager for not pre-trained agent dialog_manager = DialogManager(agent, user_sim, act_set, slot_set, kb) # the warmup success rate of the pre-trained model pretrain_warmup_succ_rate = 0 # the warmup success rate of the scratch model warmup_succ_rate = 0