Deprecations and Removals
- #8141: The following import abbreviations were removed:
rasa.core.train
: Please userasa.core.train.train
instead.rasa.core.visualize
: Please userasa.core.visualize.visualize
instead.rasa.nlu.train
: Please userasa.nlu.train.train
instead.rasa.nlu.test
: Please userasa.nlu.test.run_evaluation
instead.rasa.nlu.cross_validate
: Please userasa.nlu.test.cross_validate
instead.
Features
-
#7869: Upgraded Rasa to be compatible with spaCy 3.0.
This means that we can support more features for more languages but there are also a few changes.
SpaCy 3.0 deprecated the
spacy link <language model>
command so that means that from now on the
full model name needs to be used in theconfig.yml
file.Before
Before you could run
spacy link en en_core_web_md
and then we would be able
to pick up the correct model from thelanguage
parameter.language: en pipeline: - name: SpacyNLP
Now
This behavior will be deprecated and instead you'll want to be explicit in
config.yml
.language: en pipeline: - name: SpacyNLP model: en_core_web_md
Fallback
To make the transition easier, Rasa will try to fall back to a medium spaCy model when-ever
a compatible language is configured for the entire pipeline inconfig.yml
even if you don't
specify amodel
. This fallback behavior is temporary and will be deprecated in Rasa 3.0.0.We've updated our docs to reflect these changes. All examples now show a direct link to the
correct spaCy model. We've also added a warning to the SpaCyNLP
docs that explains the fallback behavior.
Improvements
-
#4280: Improved CLI startup time.
-
#4596: Add
augmentation
andnum_threads
arguments to APIPOST /model/train
Fix boolean casting issue for
force_training
andsave_to_default_model_directory
arguments -
#7477: Add minimum compatible version to --version command
-
#7660: Updated warning for unexpected slot events during prediction time to Rasa Open Source
2.0 YAML training data format. -
#7701: Hide dialogue turns predicted by
RulePolicy
in the tracker states
for ML-only policies likeTEDPolicy
if those dialogue turns only appear as rules in the training data and do not appear in stories.Add
set_shared_policy_states(...)
method to all policies.
This method sets_rule_only_data
dict with keys:rule_only_slots
: Slot names, which only occur in rules but not in stories.rule_only_loops
: Loop names, which only occur in rules but not in stories.
This information is needed for correct featurization to hide dialogue turns that appear only in rules.
-
#8208: Faster reading of YAML NLU training data files.
-
#8335: Added partition_by_sender flag to Kafka Producer to optionally associate events with Kafka partition based on sender_id.
Bugfixes
-
#7260: Fixed the 'loading model' message which was logged twice when using
rasa run
. -
#7379: Change training data validation to only count nlu training examples.
-
#7450: Rule tracker states no longer include the initial value of slots.
Rules now only require slot values when explicitly stated in the rule. -
#7640:
rasa test
,rasa test core
andrasa test nlu
no longer show temporary paths
in case there are issues in the test files. -
#7690: Resolved memory problems with dense features and
CRFEntityExtractor
-
#7916: Handle empty intent and entity mapping in the
domain
.There is now an InvalidDomain exception raised if in the
domain.yml
file there are empty intent or entity mappings.
An example of empty intent and entity mappings is the following :intents: - greet: - goodbye: entities: - cuisine: - number:
-
#8102: Fixed a bug in a form where slot mapping doesn't work if the predicted intent name is substring for another intent name.
-
#8114: Fixes bug where stories could not be retrieved if entities had no start or end.
-
#8178: Catch ChannelNotFoundEntity exception coming from the pika broker and raise as ConnectionException.
-
#8337: Fix bug with NoReturn throwing an exception in Python 3.7.0 when running
rasa train
-
#8382: Throw
RasaException
instead ofValueError
in situations when environment variables
specified in YAML cannot be expanded. -
#8343: Updated python-engineio version for compatibility with python-socketio