async def log_message(self, message: UserMessage, should_save_tracker: bool = True ) -> Optional[DialogueStateTracker]: """Log `message` on tracker belonging to the message's conversation_id. Optionally save the tracker if `should_save_tracker` is `True`. Tracker saving can be skipped if the tracker returned by this method is used for further processing and saved at a later stage. """ # preprocess message if necessary if self.message_preprocessor is not None: message.text = self.message_preprocessor(message.text) # we have a Tracker instance for each user # which maintains conversation state tracker = self._get_tracker(message.sender_id) if tracker: await self._handle_message_with_tracker(message, tracker) if should_save_tracker: # save tracker state to continue conversation from this state self._save_tracker(tracker) else: logger.warning("Failed to retrieve or create tracker for sender " f"'{message.sender_id}'.") return tracker
async def input_compute(self, message: UserMessage): logger.info("Middleware TextCleaner received message from {}".format( message.sender_id)) message.text = self.clean_message(message.text) await self.next(message)
async def append_message(self, user_message: UserMessage): async with self.mutex: if self.accepting is False: raise HandlerClosedException() user_message.text = self.clean_ponctuation(user_message.text) self.messages.append(user_message) self.__reset_timer()
async def log_message( self, message: UserMessage) -> Optional[DialogueStateTracker]: # preprocess message if necessary if self.message_preprocessor is not None: message.text = self.message_preprocessor(message.text) # we have a Tracker instance for each user # which maintains conversation state tracker = self._get_tracker(message.sender_id) if tracker: await self._handle_message_with_tracker(message, tracker) # save tracker state to continue conversation from this state self._save_tracker(tracker) else: logger.warning("Failed to retrieve or create tracker for sender " "'{}'.".format(message.sender_id)) return tracker