Dialogue tracker gets too big

Hello all. I have a problem with Rasa (we use older versions nlu: 0.15.1, core: 0.14.5): the dialogue tracker is getting too big and that is really slowing down the performance of our bot. Can someone help me figure out how to make Rasa store a specific number of events in a tracker store? We did not configure the tracker or tracker store, so it uses default settings.

If there is no way of doing this in the older version, can you please show how to do this in the new version of Rasa? Thanks!

Hi, the default tracker store that is used is the InMemoryTrackerStore. The way this tracker store is implemented, it always stores the whole conversation history. If you want to specify the maximum number of events to store, you can add a custom tracker store (as described in our docs - the corresponding legacy docs are here). Set up your custom tracker store to use a tracker with the parameter max_event_history set to some number instead of None.

E.g. your tracker store class could look similar to this:

class InMemoryTrackerStoreLimited(InMemoryTrackerStore):

    def __init__(
        self, domain: Domain, url: Text, event_broker: Optional[EventBroker] = None, max_event_history: Optional[int] = 60
    ) -> None:
        super().__init__(domain, event_broker)
        self.max_event_history = max_event_history

An example of a custom tracker store to limit the event number can also be found in this blogpost.

This works the same way in the current Rasa Open Source as in the old Rasa Core. We strongly recommend you to upgrade to the most recent version of Rasa Open Source (1.10.1) though, as the 0.x versions are not supported anymore. Especially because you mention that you run into performance problems: Since the release of Rasa Open Source 1.0, we have been working on several issues to improve bot performance.

1 Like