notice

This is documentation for Rasa Open Source Documentation v2.0.x, which is no longer actively maintained.
For up-to-date documentation, see the latest version (2.1.x).

Version: 2.0.x

rasa.core.tracker_store

TrackerStore Objects

class TrackerStore()

Class to hold all of the TrackerStore classes

__init__

| __init__(domain: Optional[Domain], event_broker: Optional[EventBroker] = None, retrieve_events_from_previous_conversation_sessions: bool = False) -> None

Create a TrackerStore.

Arguments:

  • domain - The Domain to initialize the DialogueStateTracker.
  • event_broker - An event broker to publish any new events to another destination.
  • retrieve_events_from_previous_conversation_sessions - If True, retrieve will return all events (even if they are from a previous conversation session). This setting only applies to TrackerStores which usually would only return events for the latest session.

create

| @staticmethod
| create(obj: Union["TrackerStore", EndpointConfig, None], domain: Optional[Domain] = None, event_broker: Optional[EventBroker] = None) -> "TrackerStore"

Factory to create a tracker store.

get_or_create_tracker

| get_or_create_tracker(sender_id: Text, max_event_history: Optional[int] = None, append_action_listen: bool = True) -> "DialogueStateTracker"

Returns tracker or creates one if the retrieval returns None.

Arguments:

  • sender_id - Conversation ID associated with the requested tracker.
  • max_event_history - Value to update the tracker store's max event history to.
  • append_action_listen - Whether or not to append an initial action_listen.

init_tracker

| init_tracker(sender_id: Text) -> "DialogueStateTracker"

Returns a Dialogue State Tracker

create_tracker

| create_tracker(sender_id: Text, append_action_listen: bool = True) -> DialogueStateTracker

Creates a new tracker for sender_id.

The tracker begins with a SessionStarted event and is initially listening.

Arguments:

  • sender_id - Conversation ID associated with the tracker.
  • append_action_listen - Whether or not to append an initial action_listen.

Returns:

The newly created tracker for sender_id.

save

| save(tracker)

Save method that will be overridden by specific tracker

retrieve

| retrieve(sender_id: Text) -> Optional[DialogueStateTracker]

Retrieve method that will be overridden by specific tracker

stream_events

| stream_events(tracker: DialogueStateTracker) -> None

Streams events to a message broker

number_of_existing_events

| number_of_existing_events(sender_id: Text) -> int

Return number of stored events for a given sender id.

keys

| keys() -> Iterable[Text]

Returns the set of values for the tracker store's primary key

serialise_tracker

| @staticmethod
| serialise_tracker(tracker: DialogueStateTracker) -> Text

Serializes the tracker, returns representation of the tracker.

deserialise_tracker

| deserialise_tracker(sender_id: Text, serialised_tracker: Union[Text, bytes]) -> Optional[DialogueStateTracker]

Deserializes the tracker and returns it.

InMemoryTrackerStore Objects

class InMemoryTrackerStore(TrackerStore)

Stores conversation history in memory

save

| save(tracker: DialogueStateTracker) -> None

Updates and saves the current conversation state

retrieve

| retrieve(sender_id: Text) -> Optional[DialogueStateTracker]

Arguments:

  • sender_id - the message owner ID

Returns:

DialogueStateTracker

keys

| keys() -> Iterable[Text]

Returns sender_ids of the Tracker Store in memory

RedisTrackerStore Objects

class RedisTrackerStore(TrackerStore)

Stores conversation history in Redis

save

| save(tracker, timeout=None)

Saves the current conversation state

retrieve

| retrieve(sender_id)

Arguments:

  • sender_id - the message owner ID

Returns:

DialogueStateTracker

keys

| keys() -> Iterable[Text]

Returns keys of the Redis Tracker Store

DynamoTrackerStore Objects

class DynamoTrackerStore(TrackerStore)

Stores conversation history in DynamoDB

__init__

| __init__(domain: Domain, table_name: Text = "states", region: Text = "us-east-1", event_broker: Optional[EndpointConfig] = None)

Initialize DynamoTrackerStore.

Arguments:

  • domain - Domain associated with this tracker store.
  • table_name - The name of the DynamoDB table, does not need to be present a priori.
  • region - The name of the region associated with the client. A client is associated with a single region.
  • event_broker - An event broker used to publish events.

get_or_create_table

| get_or_create_table(table_name: Text) -> "boto3.resources.factory.dynamodb.Table"

Returns table or creates one if the table name is not in the table list

save

| save(tracker)

Saves the current conversation state

serialise_tracker

| serialise_tracker(tracker: "DialogueStateTracker") -> Dict

Serializes the tracker, returns object with decimal types

retrieve

| retrieve(sender_id: Text) -> Optional[DialogueStateTracker]

Create a tracker from all previously stored events.

keys

| keys() -> Iterable[Text]

Returns sender_ids of the DynamoTrackerStore

MongoTrackerStore Objects

class MongoTrackerStore(TrackerStore)

Stores conversation history in Mongo

Property methods: conversations: returns the current conversation

conversations

| @property
| conversations()

Returns the current conversation

save

| save(tracker, timeout=None)

Saves the current conversation state

retrieve

| retrieve(sender_id: Text) -> Optional[DialogueStateTracker]

Arguments:

  • sender_id - the message owner ID

Returns:

DialogueStateTracker

keys

| keys() -> Iterable[Text]

Returns sender_ids of the Mongo Tracker Store

is_postgresql_url

is_postgresql_url(url: Union[Text, "URL"]) -> bool

Determine whether url configures a PostgreSQL connection.

Arguments:

  • url - SQL connection URL.

Returns:

True if url is a PostgreSQL connection URL.

create_engine_kwargs

create_engine_kwargs(url: Union[Text, "URL"]) -> Dict[Text, Any]

Get sqlalchemy.create_engine() kwargs.

Arguments:

  • url - SQL connection URL.

Returns:

kwargs to be passed into sqlalchemy.create_engine().

ensure_schema_exists

ensure_schema_exists(session: "Session") -> None

Ensure that the requested PostgreSQL schema exists in the database.

Arguments:

  • session - Session used to inspect the database.

Raises:

ValueError if the requested schema does not exist.

SQLTrackerStore Objects

class SQLTrackerStore(TrackerStore)

Store which can save and retrieve trackers from an SQL database.

SQLEvent Objects

class SQLEvent(Base)

Represents an event in the SQL Tracker Store

get_db_url

| @staticmethod
| get_db_url(dialect: Text = "sqlite", host: Optional[Text] = None, port: Optional[int] = None, db: Text = "rasa.db", username: Text = None, password: Text = None, login_db: Optional[Text] = None, query: Optional[Dict] = None) -> Union[Text, "URL"]

Build an SQLAlchemy URL object representing the parameters needed to connect to an SQL database.

Arguments:

  • dialect - SQL database type.
  • host - Database network host.
  • port - Database network port.
  • db - Database name.
  • username - User name to use when connecting to the database.
  • password - Password for database user.
  • login_db - Alternative database name to which initially connect, and create the database specified by db (PostgreSQL only).
  • query - Dictionary of options to be passed to the dialect and/or the DBAPI upon connect.

Returns:

URL ready to be used with an SQLAlchemy Engine object.

session_scope

| @contextlib.contextmanager
| session_scope()

Provide a transactional scope around a series of operations.

keys

| keys() -> Iterable[Text]

Returns sender_ids of the SQLTrackerStore

retrieve

| retrieve(sender_id: Text) -> Optional[DialogueStateTracker]

Create a tracker from all previously stored events.

save

| save(tracker: DialogueStateTracker) -> None

Update database with events from the current conversation.

FailSafeTrackerStore Objects

class FailSafeTrackerStore(TrackerStore)

Wraps a tracker store so that we can fallback to a different tracker store in case of errors.

__init__

| __init__(tracker_store: TrackerStore, on_tracker_store_error: Optional[Callable[[Exception], None]] = None, fallback_tracker_store: Optional[TrackerStore] = None) -> None

Create a FailSafeTrackerStore.

Arguments:

  • tracker_store - Primary tracker store.
  • on_tracker_store_error - Callback which is called when there is an error in the primary tracker store.