def next_action(self, dialogue_state):
        """
        Generate a response given which conditions are met by the current
        dialogue state.

        :param dialogue_state:
        :return:
        """
        # Check for terminal state
        if dialogue_state.is_terminal_state:
            return [DialogueAct('bye', [DialogueActItem('', Operator.EQ, '')])]

        # Select intent
        intent = random.choice(self.intents)

        dact = DialogueAct(intent, [])

        # Select slot
        if intent in ['inform', 'request']:

            if intent == 'inform':
                # The Dialogue Manager will fill the slot's value
                slot = random.choice(
                    self.ontology.ontology['requestable']
                )
            else:
                slot = \
                    random.choice(self.ontology.ontology['system_requestable'])

            dact.params = [DialogueActItem(slot, Operator.EQ, '')]

        return [dact]

        Generate a response given which conditions are met by the current
        dialogue state.

        :param dialogue_state:
        :return:
        
plato/agent/component/dialogue_policy/random_policy.py