From d863f68be5de91137127276ea9dcfa8695c6233f Mon Sep 17 00:00:00 2001 From: Tobias Wochinger Date: Fri, 19 Oct 2018 14:45:10 +0200 Subject: [PATCH 1/3] add documentation on how to use different tracker stores #1195 --- docs/index.rst | 1 + docs/tracker_stores.rst | 103 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 docs/tracker_stores.rst diff --git a/docs/index.rst b/docs/index.rst index 91666bedeb2..265d1362586 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -97,6 +97,7 @@ The Rasa Core dialogue engine :caption: Developer Documentation migrations + tracker_stores brokers docker changelog diff --git a/docs/tracker_stores.rst b/docs/tracker_stores.rst new file mode 100644 index 00000000000..4a6e6252499 --- /dev/null +++ b/docs/tracker_stores.rst @@ -0,0 +1,103 @@ +.. _tracker_store: + + +Tracker Stores +============== + +All conversations are stored within a `tracker store`. +Rasa Core provides implementations for different store types out of the box. +If you want to use another store, you can also build a custom tracker store by extending the `TrackerStore` class. + +.. contents:: + +InMemoryTrackerStore (default) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:Description: + `InMemoryTrackerStore` is the default tracker store. It is used if no other tracker store is configured. + It stores the conversation history in memory. + + .. note:: As this store keeps all history in memory the entire history is lost if you restart Rasa Core. + +:Configuration: + To use the `InMemoryTrackerStore` no configuration is needed. + + +RedisTrackerStore +~~~~~~~~~~~~~~~~~~ + +:Description: + `RedisTrackerStore` can be used to store the conversation history in `Redis `_. + Redis is a fast in-memory key-value store which can optionally also persist data. + +:Configuration: + To set up Rasa Core with Redis the following steps are required: + + 1. Start your Redis instance + 2. Add required configuration to your `endpoints.yml` + + .. code-block:: yaml + + tracker_store: + store_type: redis + url: + port: + db: + password: + + 3. To start the Rasa Core server using your configured Redis instance, + add the :code:`--endpoints` flag, e.g.: + + .. code-block:: bash + + python -m rasa_core.run --core models/dialogue --endpoints endpoints.yml + +MongoTrackerStore +~~~~~~~~~~~~~~~~~ + +:Description: + `MongoTrackerStore` can be used to store the conversation history in `Mongo `_. + MongoDB is a free and open-source cross-platform document-oriented NoSQL database. + +:Configuration: + 1. Start your MongoDB instance. + 2. Add required configuration to your `endpoints.yml` + + .. code-block:: yaml + + tracker_store: + store_type: mongod + url: + db: + user: + password: + + 3. To start the Rasa Core server using your configured MongoDB instance, + add the :code:`--endpoints` flag, e.g.: + + .. code-block:: bash + + python -m rasa_core.run --core models/dialogue --endpoints endpoints.yml + + +Custom Tracker Store +~~~~~~~~~~~~~~~~~~~~ + +:Description: + If you require a tracker store which is not available out of the box, you can implement your own. + This is done by extending the base class `TrackerStore`. + + .. autoclass:: rasa_core.tracker_store.TrackerStore + +:Steps: + 1. Extend the `TrackerStore` base class + 2. Adapt the code in :code:`rasa_core.run.py` to use your custom tracker store. + + .. code-block:: python + + [...] + _agent = load_agent(cmdline_args.core, + interpreter=_interpreter, + endpoints=_endpoints, + tracker_store=CustomTrackerStore(...)) + [...] From 9e6c14d15c4ce98610ad15dddb6c65aa6ebd0169 Mon Sep 17 00:00:00 2001 From: Tobias Wochinger Date: Fri, 26 Oct 2018 16:45:00 +0200 Subject: [PATCH 2/3] fix typos #1195 --- docs/tracker_stores.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/tracker_stores.rst b/docs/tracker_stores.rst index 4a6e6252499..7d3c07bfc02 100644 --- a/docs/tracker_stores.rst +++ b/docs/tracker_stores.rst @@ -40,7 +40,7 @@ RedisTrackerStore tracker_store: store_type: redis - url: + url: port: db: password: @@ -52,6 +52,7 @@ RedisTrackerStore python -m rasa_core.run --core models/dialogue --endpoints endpoints.yml + MongoTrackerStore ~~~~~~~~~~~~~~~~~ From 3bc07d30dc3be4e9053efedc96d00fabb601e20e Mon Sep 17 00:00:00 2001 From: Tobias Wochinger Date: Tue, 30 Oct 2018 15:31:20 +0100 Subject: [PATCH 3/3] add section for possible parameters #1195 --- docs/tracker_stores.rst | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/tracker_stores.rst b/docs/tracker_stores.rst index 7d3c07bfc02..726168db872 100644 --- a/docs/tracker_stores.rst +++ b/docs/tracker_stores.rst @@ -51,7 +51,13 @@ RedisTrackerStore .. code-block:: bash python -m rasa_core.run --core models/dialogue --endpoints endpoints.yml - +:Parameters: + - ``url`` (default: ``localhost``): The url of your redis instance + - ``port`` (default: ``6379``): The port which redis is running on + - ``db`` (default: ``0``): The number of your redis database + - ``password`` (default: ``None``): Password used for authentication + (``None`` equals no authentication) + - ``record_exp`` (default: ``None``): Record expiry in seconds MongoTrackerStore ~~~~~~~~~~~~~~~~~ @@ -70,7 +76,7 @@ MongoTrackerStore store_type: mongod url: db: - user: + username: password: 3. To start the Rasa Core server using your configured MongoDB instance, @@ -79,7 +85,13 @@ MongoTrackerStore .. code-block:: bash python -m rasa_core.run --core models/dialogue --endpoints endpoints.yml - +:Parameters: + - ``url`` (default: ``mongodb://localhost:27017``): URL of your MongoDB + - ``db`` (default: ``rasa``): The database name which should be used + - ``username`` (default: ``0``): The username which is used for authentication + - ``password`` (default: ``None``): The password which is used for authentication + - ``collection`` (default: ``conversations``): The collection name which is + used to store the conversations Custom Tracker Store ~~~~~~~~~~~~~~~~~~~~