def select_action(self, dialogue_act): sys_act = deepcopy(dialogue_act) print("----------self.dialogue_state-----------------") print(self.dialogue_state) print(self.prev_dialog_state) # if self.init_flag == True: # self.init_flag = False # if not self.dialogue_state.has('LOCATION') and not self.dialogue_state.has('GENRE') and not self.dialogue_state.has('MAXIMUM_AMOUNT'): # sys_act['sys_act_type'] = 'REPEAT_QUESTION' # self.prev_dialog_state = self.dialogue_state # return sys_act # 前と同じなら、質問が理解できてない if self.dialogue_state.get_data_by_key( 'LOCATION') == self.prev_dialog_state.get_data_by_key( 'LOCATION') and self.dialogue_state.get_data_by_key( 'GENRE') == self.prev_dialog_state.get_data_by_key( 'GENRE') and self.dialogue_state.get_data_by_key( 'MAXIMUM_AMOUNT' ) == self.prev_dialog_state.get_data_by_key( 'MAXIMUM_AMOUNT'): print("repeat") sys_act['sys_act_type'] = 'REPEAT_QUESTION' # self.prev_dialog_state = self.dialogue_state return sys_act if not self.dialogue_state.has('LOCATION'): sys_act['sys_act_type'] = 'REQUEST_LOCATION' elif not self.dialogue_state.has('GENRE'): sys_act['sys_act_type'] = 'REQUEST_GENRE' elif not self.dialogue_state.has('MAXIMUM_AMOUNT'): sys_act['sys_act_type'] = 'REQUEST_BUDGET' else: api = HotPepperGourmetAPI() area = self.dialogue_state.get_area() food = self.dialogue_state.get_food() budget = self.dialogue_state.get_budget() restaurant = api.search_restaurant(area=area, food=food, budget=budget) sys_act['sys_act_type'] = 'INFORM_RESTAURANT' sys_act['restaurant'] = restaurant self.prev_dialog_state = deepcopy(self.dialogue_state) return sys_act
def select_action(self, dialogue_act): from copy import deepcopy sys_act = deepcopy(dialogue_act) if not self.dialogue_state.has('LOCATION'): sys_act['sys_act_type'] = 'REQUEST_LOCATION' elif not self.dialogue_state.has('GENRE'): sys_act['sys_act_type'] = 'REQUEST_GENRE' elif not self.dialogue_state.has('MAXIMUM_AMOUNT'): sys_act['sys_act_type'] = 'REQUEST_BUDGET' else: api = HotPepperGourmetAPI() area = self.dialogue_state.get_area() food = self.dialogue_state.get_food() budget = self.dialogue_state.get_budget() restaurant = api.search_restaurant(area=area, food=food,budget=budget) sys_act['sys_act_type'] = 'INFORM_RESTAURANT' sys_act['restaurant'] = restaurant return sys_act
def select_action(self, dialogue_act): from copy import deepcopy sys_act = deepcopy(dialogue_act) # if dialogue_act['user_act_type'] == 'OTHER': # reply = self.dialogue_api.reply(dialogue_act['utt']) # sys_act['sys_act_type'] = 'CHAT' # sys_act['utt'] = reply # el if not self.dialogue_state.has('LOCATION'): print('setting LOCATION') sys_act['sys_act_type'] = 'REQUEST_LOCATION' elif not self.dialogue_state.has('GENRE'): print('setting GENRE') sys_act['sys_act_type'] = 'REQUEST_GENRE' else: self.gourmet_api = HotPepperGourmetAPI() area = self.dialogue_state.get_area() food = self.dialogue_state.get_food() restaurant = self.gourmet_api.search_restaurant(area=area, food=food) sys_act['sys_act_type'] = 'INFORM_RESTAURANT' sys_act['restaurant'] = restaurant # self.dialogue_state.clear() return sys_act
def setUp(self): self.api = HotPepperGourmetAPI()