def process_input(self, utterance, dialogue_state=None):
        """

        :param utterance: a string, the input utterance
        :param dialogue_state: the current dialogue state, if available
        :return:
        """
        if not self.model:
            print('ERROR! Ludwig nlu model not initialized!')
            return pd.DataFrame({'empty': [0]})

        # Warning: Make sure the same tokenizer that was used to train the
        # model is used during prediction
        return self.model.predict(
            pd.DataFrame(
                data={'transcription': [utterance]}),
            logging_level='logging.INFO')


        :param utterance: a string, the input utterance
        :param dialogue_state: the current dialogue state, if available
        :return:
        
plato/agent/component/nlu/ludwig_nlu.py