Exemple #1
0
    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
Exemple #2
0
    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()
Exemple #4
0
    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