Rasa Open Source Change Log

Rasa Open Source Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning starting with version 1.0.

[1.10.26] - 2021-06-17

Features

[1.10.25] - 2021-04-14

Features

Improvements

[1.10.24] - 2021-03-29

Bugfixes

[1.10.23] - 2021-02-22

Bugfixes

[1.10.22] - 2021-02-05

Bugfixes

[1.10.21] - 2021-02-01

Improvements

Bugfixes

[1.10.20] - 2020-12-18

Bugfixes

[1.10.19] - 2020-12-17

Improvements

DynamoDB table exists check fixed bug when more than 100 tables exist.

[1.10.18] - 2020-11-26

Bugfixes

[1.10.17] - 2020-11-12

Bugfixes

[1.10.16] - 2020-10-15

Bugfixes

[1.10.15] - 2020-10-09

Improvements

Bugfixes

[1.10.14] - 2020-09-23

Bugfixes

Also made the remote URL configurable at runtime in the corresponding tokenizer’s and featurizer’s configuration.

[1.10.13] - 2020-09-21

Bugfixes

[1.10.12] - 2020-09-03

Bugfixes

[1.10.11] - 2020-08-21

Improvements

Added a new parameter socket_timeout to the RedisLockStore. If Redis doesn’t answer within socket_timeout seconds to requests from Rasa Open Source, an error is raised. This avoids seemingly infinitely blocking connections and exposes connection problems early.

Bugfixes

[1.10.10] - 2020-08-04

Bugfixes

[1.10.9] - 2020-07-29

Improvements

Bugfixes

[1.10.8] - 2020-07-15

Bugfixes

[1.10.7] - 2020-07-07

Features

WhitespaceTokenizer is not able to process languages which are not separated by whitespace. WhitespaceTokenizer will throw an error if it is used with Chinese, Japanese, and Thai.

Bugfixes

[1.10.6] - 2020-07-06

Bugfixes

[1.10.5] - 2020-07-02

Bugfixes

[1.10.4] - 2020-07-01

Bugfixes

[1.10.3] - 2020-06-12

Improvements

Bugfixes

[1.10.2] - 2020-06-03

Bugfixes

[1.10.1] - 2020-05-15

Improvements

Bugfixes

Miscellaneous internal changes

[1.10.0] - 2020-04-28

Features

You can now define a role and/or group label in addition to the entity type for entities. Use the role label if an entity can play different roles in your assistant. For example, a city can be a destination or a departure city. The group label can be used to group multiple entities together. For example, you could group different pizza orders, so that you know what toppings goes with which pizza and what size which pizza has. For more details see Entities Roles and Groups.

To fill slots from entities with a specific role/group, you need to either use forms or use a custom action. We updated the tracker method get_latest_entity_values to take an optional role/group label. If you want to use a form, you can add the specific role/group label of interest to the slot mapping function from_entity (see Forms).

Note

Composite entities are currently just supported by the DIETClassifier and CRFEntityExtractor.

You can now specify synonyms, roles, and groups of entities using the following data format: Markdown:

[LA]{"entity": "location", "role": "city", "group": "CA", "value": "Los Angeles"}

JSON:

"entities": [\
      {\
          "start": 10,\
          "end": 12,\
          "value": "Los Angeles",\
          "entity": "location",\
          "role": "city",\
          "group": "CA",\
      }\
]

The markdown format [LA](location:Los Angeles) is deprecated. To update your training data file just execute the following command on the terminal of your choice: sed -i -E 's/\[([^)]+)\]\(([^)]+):([^)]+)\)/[\1]{"entity": "\2", "value": "\3"}/g' nlu.md

For more information about the new data format see Training Data Format.

Improvements

Include the source filename of a story in the failed stories to make it easier to identify the file which contains the failed story.

If you are using ResponseSelectors, they now produce similiar outputs during NLU evaluation. Misclassfied responses are listed in a “confused_with” attribute in the evaluation report. Similiarily, a confusion matrix of all responses is plotted.

Use scale_loss=False in DIETClassifier. Reduce the number of dense dimensions for sparse features of text from 512 to 256 in EmbeddingIntentClassifier.

Bugfixes

If you are using, for example, ConveRTTokenizer words can be split into multiple tokens. Our entity extractors assign entity labels per token. So, it might happen, that a word, that was split into two tokens, got assigned two different entity labels. This is now fixed. One word can just have one entity label at a time.

If you are using, for example, ConveRTTokenizer words can be split into multiple tokens. Our entity extractors assign entity labels per token. So, it might happen, that just a part of a word has an entity label. This is now fixed. An entity label always covers a complete word.

Now the metadata is correctly passed to the ActionSessionStart.

Miscellaneous internal changes

[1.9.7] - 2020-04-23

Improvements

Bugfixes

Therefore, all 1.9 models except for 1.9.6 will be compatible; a model trained on 1.9.6 will need to be retrained on 1.9.7.

[1.9.6] - 2020-04-15

Bugfixes

Miscellaneous internal changes

[1.9.5] - 2020-04-01

Improvements

The schema is added to the connection string option’s -csearch_path key, e.g. -options=-csearch_path=<SCHEMA_NAME> (see https://www.postgresql.org/docs/11/contrib-dblink-connect.html for more details). As before, if no POSTGRESQL_SCHEMA is defined, Rasa uses the database’s default schema (public).

The schema has to exist in the database before connecting, i.e. it needs to have been created with

CREATE SCHEMA schema_name;

Bugfixes

[1.9.4] - 2020-03-30

Bugfixes

[1.9.3] - 2020-03-27

Bugfixes

[1.9.2] - 2020-03-26

Improved Documentation

[1.9.1] - 2020-03-25

Bugfixes

[1.9.0] - 2020-03-24

Features

By default tensorboard_log_directory is None. If a valid directory is provided, metrics are written during training. After the model is trained you can take a look at the training metrics in tensorboard. Execute tensorboard --logdir <path-to-given-directory>.

Metrics can either be written after every epoch (default) or for every training step. You can specify when to write metrics using the variable tensorboard_log_level. Valid values are ‘epoch’ and ‘minibatch’.

We also write down a model summary, i.e. layers with inputs and types, to the given directory.

Improvements

The former queue key is deprecated. Queues should now be specified as a list in the endpoints.yml event broker config under a new key queues. Example config:

event_broker:
    type: pika
    url: localhost
    username: username
    password: password
    queues:
    - queue-1
    - queue-2
    - queue-3

Bugfixes

Added a new docs section on DynamoTrackerStore.

Improved Documentation

Miscellaneous internal changes

[1.8.3] - 2020-03-27

Bugfixes

Improved Documentation

[1.8.2] - 2020-03-19

Bugfixes

Improved Documentation

[1.8.1] - 2020-03-06

Bugfixes

Miscellaneous internal changes

[1.8.0] - 2020-02-26

Deprecations and Removals

Features

All values not mentioned in the list of values of a CategoricalSlot will be mapped to __other__ for featurization.

LexicalSyntacticFeaturizer does the same featurization as the CRFEntityExtractor. We extracted the featurization into a separate component so that the features can be reused and featurization is independent from the entity extraction.

Add a new NLP component HFTransformersNLP which tokenizes and featurizes incoming messages using a specified pre-trained model with the Transformers library as the backend. Add LanguageModelTokenizer and LanguageModelFeaturizer which use the information from HFTransformersNLP and sets them correctly for message object. Language models currently supported: BERT, OpenAIGPT, GPT-2, XLNet, DistilBert, RoBERTa.

Please refer to the documentation to understand which environment variables to set in what scenarios. A couple of examples are shown below as well:

# This specifies to use 1024 MB of memory from GPU with logical ID 0 and 2048 MB of memory from GPU with logical ID 1
TF_GPU_MEMORY_ALLOC="0:1024, 1:2048"

# Specifies that at most 3 CPU threads can be used to parallelize multiple non-blocking operations
TF_INTER_OP_PARALLELISM_THREADS="3"

# Specifies that at most 2 CPU threads can be used to parallelize a particular operation.
TF_INTRA_OP_PARALLELISM_THREADS="2"

DIET (Dual Intent and Entity Transformer) is a multi-task architecture for intent classification and entity recognition. You can read more about this component in our documentation. The new component will replace the EmbeddingIntentClassifier and the CRFEntityExtractor in the future. Those two components are deprecated from now on. See migration guide for details on how to switch to the new component.

TEDPolicy is the new name for EmbeddingPolicy. EmbeddingPolicy is deprecated from now on. The functionality of TEDPolicy and EmbeddingPolicy is the same. Please update your configuration file to use the new name for the policy.

To specify the pooling operation, set the option pooling for the SpacyFeaturizer or the MitieFeaturizer in your configuration file. The default pooling operation is mean. The mean pooling operation also does not take into account words, that do not have a word vector. See our documentation for more details.

Improvements

'rasa-export-process-id': 'd3b3d3ffe2bd4f379ccf21214ccfb261'

Bugfixes

When NLU training data is split before NLU pipeline comparison, NLG responses were not also persisted and therefore training for a pipeline including the ResponseSelector would fail.

NLG responses are now persisted along with NLU data to a /train directory in the run_x/xx%_exclusion folder.

Improved Documentation

Miscellaneous internal changes

[1.7.4] - 2020-02-24

Bugfixes

This fixes action_listen events being saved twice at the beginning of conversation sessions.

[1.7.3] - 2020-02-21

Bugfixes

Improved Documentation

[1.7.2] - 2020-02-13

Bugfixes

Improved Documentation

[1.7.1] - 2020-02-11

Bugfixes

When training a Rasa model that contains responses for just some of the intents, training was failing. Fixed the featurizers to return a consistent feature vector in case no response was given for a specific message.

[1.7.0] - 2020-01-29

Deprecations and Removals

By default all tokenizer add a special token (__CLS__) to the end of the list of tokens. This token will be used to capture the features of the whole utterance.

The featurizers will return a matrix of size (number-of-tokens x feature-dimension) by default. This allows to train sequence models. However, the feature vector of the __CLS__ token can be used to train non-sequence models. The corresponding classifier can decide what kind of features to use.

Features

templates key will still work for backwards compatibility but will raise a future warning.

Add new endpoint /conversations/<conversation_id>/trigger_intent, which lets the user specify an intent and a list of entities that is injected into the conversation in place of a user message. The bot then predicts and executes a response action.

The tokenizer should be used whenever the ConveRTFeaturizer is used.

Every tokenizer now supports the following configuration options: intent_tokenization_flag: Flag to check whether to split intents (default False). intent_split_symbol: Symbol on which intent should be split (default _)

Improvements

Bugfixes

New behavior of rasa test core --evaluate-model-directory when given an existing file as argument for --model: Previously, this led to an error. Now a warning is displayed and the directory containing the given file is used as --model.

There is an imcompatibility between Rasa dependecy requests 2.22.0 and the own depedency from Rasa for networkx raising errors upon pip install. There is also a bug corrected in requirements.txt which used ~= instead of ==. All of these are fixed using networkx 2.4.0.

Miscellaneous internal changes

[1.6.2] - 2020-01-28

Improvements

Bugfixes

[1.6.1] - 2020-01-07

Bugfixes

[1.6.0] - 2019-12-18

Deprecations and Removals

The following settings match the previous NGramFeaturizer:

- name: 'CountVectorsFeaturizer'
    analyzer: 'char_wb'
    min_ngram: 3
    max_ngram: 17
    max_features: 10
    min_df: 5

Features

A conversation session represents the dialog between the assistant and a user. Conversation sessions can begin in three ways: 1. the user begins the conversation with the assistant, 2. the user sends their first message after a configurable period of inactivity, or 3. a manual session start is triggered with the /session_start intent message. The period of inactivity after which a new conversation session is triggered is defined in the domain using the session_expiration_time key in the session_config section. The introduction of conversation sessions comprises the following changes:

Note

The session behaviour is disabled for existing projects, i.e. existing domains without session config section.

Add option use_cls_token to all tokenizers. If it is set to True, the token __CLS__ will be added to the end of the list of tokens. Default is set to False. No need to change the default value for now.

Add option return_sequence to all featurizers. By default all featurizers return a matrix of size (1 x feature-dimension). If the option return_sequence is set to True, the corresponding featurizer will return a matrix of size (token-length x feature-dimension). See https://rasa.com/docs/rasa/nlu/components/#featurizers. Default value is set to False. However, you might want to set it to True if you want to use custom features in the CRFEntityExtractor. See https://rasa.com/docs/rasa/nlu/entity-extraction/#passing-custom-features-to-crfentityextractor.

Changed some featurizers to use sparse features, which should reduce memory usage with large amounts of training data significantly. Read more: Text Featurizers .

Warning

These changes break model compatibility. You will need to retrain your old models!

Improvements

$ pip install rasa[kafka]

Interactive learning no longer trains NLU-only models if no model is provided and no core data is provided.

Bugfixes

[1.5.3] - 2019-12-11

Improvements

Bugfixes

[1.5.2] - 2019-12-09

Improvements

Bugfixes

Improved Documentation

[1.5.1] - 2019-11-27

Improvements

Bugfixes

[1.5.0] - 2019-11-26

Features

Improvements

Deprecations and Removals

Bugfixes

[1.4.6] - 2019-11-22

Bugfixes

[1.4.5] - 2019-11-14

Bugfixes

[1.4.4] - 2019-11-13

Features

Improvements

Bugfixes

[1.4.3] - 2019-10-29

Bugfixes

[1.4.2] - 2019-10-28

Deprecations and Removals

Bugfixes

[1.4.1] - 2019-10-22

Regression: changes from 1.2.12 were missing from 1.4.0, readded them

[1.4.0] - 2019-10-19

Features

Improvements

Deprecations and Removals

Bugfixes

[1.3.10] - 2019-10-18

Features

Bugfixes

[1.3.9] - 2019-10-10

Features

Bugfixes

[1.3.8] - 2019-10-08

Improvements

Bugfixes

[1.3.7] - 2019-09-27

Bugfixes

[1.3.6] - 2019-09-21

Features

[1.3.5] - 2019-09-20

Bugfixes

[1.3.4] - 2019-09-20

Features

Bugfixes

Improvements

[1.3.3] - 2019-09-13

Bugfixes

Deprecations and Removals

[1.3.2] - 2019-09-10

Bugfixes

[1.3.1] - 2019-09-09

Improvements

[1.3.0] - 2019-09-05

Features

Improvements

Bugfixes

Deprecations and Removals

[1.2.12] - 2019-10-16

Features

[1.2.11] - 2019-10-09

Features

[1.2.10] - 2019-10-08

Features

[1.2.9] - 2019-09-17

Bugfixes

[1.2.8] - 2019-09-10

Bugfixes

[1.2.7] - 2019-09-02

Bugfixes

[1.2.6] - 2019-09-02

Bugfixes

[1.2.5] - 2019-08-26

Features

Bugfixes

[1.2.4] - 2019-08-23

Bugfixes

[1.2.3] - 2019-08-15

Improvements

[1.2.3] - 2019-08-15

Improvements

Bugfixes

[1.2.2] - 2019-08-07

Bugfixes

[1.2.1] - 2019-08-06

Features

Bugfixes

[1.2.0] - 2019-08-01

Features

Improvements

Bugfixes

[1.1.8] - 2019-07-25

Features

Improvements

Bugfixes

[1.1.7] - 2019-07-18

Features

Bugfixes

[1.1.6] - 2019-07-12

Features

Improvements

Bugfixes

[1.1.5] - 2019-07-10

Features

Improvements

Deprecations and Removals

Bugfixes

[1.1.4] - 2019-06-18

Features

Improvements

Bugfixes

[1.1.3] - 2019-06-14

Bugfixes

[1.1.2] - 2019-06-13

Bugfixes

[1.1.1] - 2019-06-13

Bugfixes

[1.1.0] - 2019-06-13

Features

Improvements

Bugfixes

[1.0.9] - 2019-06-10

Improvements

[1.0.8] - 2019-06-10

Features

Improvements

Bugfixes

[1.0.7] - 2019-06-06

Features

Bugfixes

[1.0.6] - 2019-06-03

Bugfixes

[1.0.5] - 2019-06-03

Bugfixes

[1.0.4] - 2019-06-03

Features

Improvements

[1.0.3] - 2019-05-30

Bugfixes

[1.0.2] - 2019-05-29

Features

Bugfixes

[1.0.1] - 2019-05-21

Bugfixes

[1.0.0] - 2019-05-21

Features

Improvements

Deprecations and Removals

Bugfixes

👋 I can help you get started with Rasa and answer your technical questions.