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 ¶
- #8876: Added
sasl_mechanismas an optional configurable parameter for the Kafka Event Broker.
[1.10.25] - 2021-04-14 ¶
Features ¶
- #8429: Added partition_by_sender flag to Kafka Producer to optionally associate events with Kafka partition based on sender_id.
Improvements ¶
- #8345: Improved the [lock store](lock-stores.mdx) debug log message when the process has to queue because other messages have to be processed before this item.
[1.10.24] - 2021-03-29 ¶
Bugfixes ¶
- #8019: Added
group_idparameter back toKafkaEventBrokerto fix error when instantiating event broker with a config containing thegroup_idparameter which is only relevant to the event consumer
[1.10.23] - 2021-02-22 ¶
Bugfixes ¶
- #7895: Fixed bug where the conversation does not lock before handling a reminder event.
[1.10.22] - 2021-02-05 ¶
Bugfixes ¶
- #7772: Backported the Rasa Open Source 2 PikaEventBroker implementation to address problems when using it with multiple Sanic workers.
[1.10.21] - 2021-02-01 ¶
Improvements ¶
- #7439: The url option now supports a list of servers url: [‘10.0.0.158:32803’,’10.0.0.158:32804’]. Removed group_id because it is not a valid Kafka producer parameter.
Bugfixes ¶
#7638: Fixed a bug that occurred when setting multiple Sanic workers in combination with a custom [Lock Store](lock-stores.mdx). Previously, if the number was set higher than 1 and you were using a custom lock store, it would reject because of a strict check to use a [Redis Lock Store](lock-stores.mdx#redislockstore).
#7722: Fix a bug where, if a user injects an intent using the HTTP API, slot auto-filling is not performed on the entities provided.
[1.10.20] - 2020-12-18 ¶
Bugfixes ¶
- #7575: Fix scikit-learn crashing during evaluation of ResponseSelector predictions.
[1.10.19] - 2020-12-17 ¶
Improvements ¶
- #6251: Kafka Producer connection now remains active across sends. Added support for group and client id. The Kafka producer also adds support for the PLAINTEXT and SASL_SSL protocols.
DynamoDB table exists check fixed bug when more than 100 tables exist.
#6814: Replace use of
python-telegram-botpackage withpyTelegramBotAPI#7423: Use response selector keys (sub-intents) as labels for plotting the confusion matrix during NLU evaluation to improve readability.
[1.10.18] - 2020-11-26 ¶
Bugfixes ¶
- #7340: Fixed an issues with the DynamoDB TrackerStore creating a new table entry/object for each TrackerStore update. The column session_date has been deprecated and should be removed manually in existing DynamoDB tables.
[1.10.17] - 2020-11-12 ¶
Bugfixes ¶
- #7219: Prevent the message handling process in
PikaEventBrokerfrom being terminated.
[1.10.16] - 2020-10-15 ¶
Bugfixes ¶
- #6703: Update Pika event broker to be a separate process and make it use a
multiprocessing.Queueto send and process messages. This change should help avoid situations when events stop being sent after a while.
[1.10.15] - 2020-10-09 ¶
Improvements ¶
- #6900: Debug logs from
matplotliblibraries are now hidden by default and are configurable with theLOG_LEVEL_LIBRARIESenvironment variable.
Bugfixes ¶
#3597: Fixed issue where temporary model directories were not removed after pulling from a model server. If the model pulled from the server was invalid, this could lead to large amounts of local storage usage.
#6755: Treat the length of OOV token as 1 to fix token align issue when OOV occurred.
#6899: Fixed
MappingPolicynot predictingaction_listenafter the mapped action while runningrasa test.
[1.10.14] - 2020-09-23 ¶
Bugfixes ¶
- #6741: Fixed the remote URL of ConveRT model as it was recently updated by its authors.
Also made the remote URL configurable at runtime in the corresponding tokenizer’s and featurizer’s configuration.
[1.10.13] - 2020-09-21 ¶
Bugfixes ¶
- #6577: Remove BILOU tag prefix from role and group labels when creating entities.
[1.10.12] - 2020-09-03 ¶
Bugfixes ¶
- #6549: Fix slow training of
CRFEntityExtractorwhen using Entity Roles and Groups.
[1.10.11] - 2020-08-21 ¶
Improvements ¶
#6044: Do not deepcopy slots when instantiating trackers. This leads to a significant speedup when training on domains with a large number of slots.
#6226: Added more debugging logs to the Lock Stores to simplify debugging in case of connection problems.
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 ¶
#5182: Fixed a bug where domain fields such as
store_entities_as_slotswere overridden with defaults and therefore ignored.#6191: If two entities are separated by a comma (or any other symbol), extract them as two separate entities.
#6340: If two entities are separated by a single space and uses BILOU tagging, extract them as two separate entities based on their BILOU tags.
[1.10.10] - 2020-08-04 ¶
Bugfixes ¶
- #6280: Fixed
TypeError: expected string or bytes-like objectissue caused by integer, boolean, and null values in templates.
[1.10.9] - 2020-07-29 ¶
Improvements ¶
- #6255: Rasa Open Source will no longer add
responsesto theactionssection of the domain when persisting the domain as a file. This addresses related problems in Rasa X when Integrated Version Control introduced big diffs due to the added utterances in theactionssection.
Bugfixes ¶
- #6160: Consider entity roles/groups during interactive learning.
[1.10.8] - 2020-07-15 ¶
Bugfixes ¶
#6075: Add ‘Access-Control-Expose-Headers’ for ‘filename’ header
#6137: Fixed a bug where an invalid language variable prevents rasa from finding training examples when importing Dialogflow data.
[1.10.7] - 2020-07-07 ¶
Features ¶
- #6150: Add
not_supported_language_listto component to be able to define languages that a component can NOT handle.
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 ¶
- #6150:
WhitespaceTokenizeronly removes emoji if complete token matches emoji regex.
[1.10.6] - 2020-07-06 ¶
Bugfixes ¶
- #6143: Prevent
WhitespaceTokenizerfrom outputting empty list of tokens.
[1.10.5] - 2020-07-02 ¶
Bugfixes ¶
- #6119: Explicitly remove all emojis which appear as unicode characters from the output of
regex.subinsideWhitespaceTokenizer.
[1.10.4] - 2020-07-01 ¶
Bugfixes ¶
#5998:
WhitespaceTokenizerdoes not remove vowel signs in Hindi anymore.#6031: Previously, specifying a lock store in the endpoint configuration with a type other than
redisorin_memorywould lead to anAttributeError: 'str' object has no attribute 'type'. This bug is fixed now.#6032: Fix
Interpreter parsed an intent ...warning when using the/model/parseendpoint with an NLU-only model.#6042: Convert entity values coming from any entity extractor to string during evaluation to avoid mismatches due to different types.
#6078: The assistant will respond through the webex channel to any user (room) communicating to it. Before the bot responded only to a fixed
roomIdset in thecredentials.ymlconfig file.
[1.10.3] - 2020-06-12 ¶
Improvements ¶
- #3900: Reduced duplicate logs and warnings when running
rasa train.
Bugfixes ¶
#5972: Remove the
clean_up_entitiesmethod from theDIETClassifierandCRFEntityExtractoras it let to incorrect entity predictions.#5976: Fix server crashes that occurred when Rasa Open Source pulls a model from a model server and an exception was thrown during model loading (such as a domain with invalid YAML).
[1.10.2] - 2020-06-03 ¶
Bugfixes ¶
#5521: Responses used in ResponseSelector now support new lines with explicitly adding
\nbetween them.#5758: Fixed a bug in rasa export ( Export Conversations to an Event Broker) which caused Rasa Open Source to only migrate conversation events from the last Session configuration.
[1.10.1] - 2020-05-15 ¶
Improvements ¶
- #5794: Creating a
DomainusingDomain.fromDictcan no longer alter the input dictionary. Previously, there could be problems when the input dictionary was re-used for other things after creating theDomainfrom it.
Bugfixes ¶
#5617: Don’t create TensorBoard log files during prediction.
#5638: Fix: DIET breaks with empty spaCy model
#5755: Remove
clean_up_entitiesfrom extractors that extract pre-defined entities. Just keep the clean up method for entity extractors that extract custom entities.#5792: Fixed issue where the
DucklingHTTPExtractorcomponent would not work if its url contained a trailing slash.#5825: Fix list index out of range error in
ensure_consistent_bilou_tagging.
Miscellaneous internal changes ¶
- #5788
[1.10.0] - 2020-04-28 ¶
Features ¶
- #3765: Add support for entities with roles and grouping of entities in Rasa NLU.
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.
- #5465: Update training data format for NLU to support entities with a role or group label.
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 ¶
#2224: Suppressed
pikalogs when establishing the connection. These log messages mostly happened when Rasa X and RabbitMQ were started at the same time. Since RabbitMQ can take a few seconds to initialize, Rasa X has to re-try until the connection is established. In case you suspect a different problem (such as failing authentication) you can re-enable thepikalogs by setting the log level toDEBUG. To run Rasa Open Source in debug mode, use the--debugflag. To run Rasa X in debug mode, set the environment variableDEBUG_MODEtotrue.#3419: Include the source filename of a story in the failed stories
Include the source filename of a story in the failed stories to make it easier to identify the file which contains the failed story.
- #5544: Add confusion matrix and “confused_with” to response selection evaluation
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.
#5578: Added
socketioto the compatible channels for Reminders and External Events.#5595: Update
POST /model/trainendpoint to accept retrieval action responses at theresponseskey of the JSON payload.#5627: All Rasa Open Source images are now using Python 3.7 instead of Python 3.6.
#5635: Update dependencies based on the
dependabotcheck.#5636: Add dropout between
FFNNandDenseForSparselayers inDIETClassifier,ResponseSelectorandEmbeddingIntentClassifiercontrolled byuse_dense_input_dropoutconfig parameter.#5646:
DIETClassifieronly counts as extractor inrasa testif it was actually trained for entity recognition.#5669: Remove regularization gradient for variables that don’t have prediction gradient.
#5672: Raise a warning in
CRFEntityExtractorandDIETClassifierif entities are not correctly annotated in the training data, e.g. their start and end values do not match any start and end values of tokens.#5690: Add
full_retrieval_intentproperty toResponseSelectorrankings#5717: Change default values for hyper-parameters in
EmbeddingIntentClassifierandDIETClassifier
Use scale_loss=False in DIETClassifier. Reduce the number of dense dimensions for sparse features of text from 512 to 256 in EmbeddingIntentClassifier.
Bugfixes ¶
#5230: Fixed issue where posting to certain callback channel URLs would return a 500 error on successful posts due to invalid response format.
#5475: One word can just have one entity label.
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.
- #5509: An entity label should always cover a complete word.
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.
- #5574: Fixed an issue that happened when metadata is passed in a new session.
Now the metadata is correctly passed to the ActionSessionStart.
- #5672: Updated Python dependency
ruamel.yamlto>=0.16. We recommend to use at least0.16.10due to the security issue CVE-2019-20478 which is present in in prior versions.
Miscellaneous internal changes ¶
- #5556, #5587, #5614, #5631, #5633
[1.9.7] - 2020-04-23 ¶
Improvements ¶
- #4606: The stream reading timeout for
rasa shell` is now configurable by using the environment variable ``RASA_SHELL_STREAM_READING_TIMEOUT_IN_SECONDS. This can help to fix problems when usingrasa shellwith custom actions which run 10 seconds or longer.
Bugfixes ¶
- #5709: Reverted changes in 1.9.6 that led to model incompatibility. Upgrade to 1.9.7 to fix
self.sequence_lengths_for(tf_batch_data[TEXT_SEQ_LENGTH][0]) IndexError: list index out of rangeerror without needing to retrain earlier 1.9 models.
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 ¶
#5426: Fix rasa test nlu plotting when using multiple runs.
#5489: Fixed issue where
max_number_of_predictionswas not considered when running end-to-end testing.
Miscellaneous internal changes ¶
- #5626
[1.9.5] - 2020-04-01 ¶
Improvements ¶
- #5533: Support for
PostgreSQL schemas in
SQLTrackerStore. The
SQLTrackerStoreaccesses schemas defined by thePOSTGRESQL_SCHEMAenvironment variable if connected to a PostgreSQL database.
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 ¶
- #5547: Fixed ambiguous logging in
DIETClassifierby adding the name of the calling class to the log message.
[1.9.4] - 2020-03-30 ¶
Bugfixes ¶
- #5529: Fix memory leak problem on increasing number of calls to
/model/parseendpoint.
[1.9.3] - 2020-03-27 ¶
Bugfixes ¶
- #5505: Set default value for
weight_sparsityinResponseSelectorto0. This fixes a bug in the default behaviour ofResponseSelectorwhich was accidentally introduced inrasa==1.8.0. Users should update to this version and re-train their models ifResponseSelectorwas used in their pipeline.
[1.9.2] - 2020-03-26 ¶
Improved Documentation ¶
- #5497: Fix documentation to bring back Sara.
[1.9.1] - 2020-03-25 ¶
Bugfixes ¶
- #5492: Fix an issue where the deprecated
queueparameter for the Pika Event Broker was ignored and Rasa Open Source published the events to therasa_core_eventsqueue instead. Note that this does not change the fact that thequeueargument is deprecated in favor of thequeuesargument.
[1.9.0] - 2020-03-24 ¶
Features ¶
#5006: Channel
hangoutsfor Rasa integration with Google Hangouts Chat is now supported out-of-the-box.#5389: Add an optional path to a specific directory to download and cache the pre-trained model weights for HFTransformersNLP.
#5422: Add options
tensorboard_log_directoryandtensorboard_log_leveltoEmbeddingIntentClassifier,DIETClasifier,ResponseSelector,EmbeddingPolicyandTEDPolicy.
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 ¶
#4756: Make response timeout configurable.
rasa run,rasa shellandrasa xcan now be started with--response-timeout <int>to configure a response timeout of<int>seconds.#4826: Add full retrieval intent name to message data
ResponseSelectorwill now add the full retrieval intent name e.g.faq/which_versionto the prediction, making it accessible from the tracker.#5258: Added
PikaEventBroker( Pika Event Broker) support for publishing to multiple queues. Messages are now published to afanoutexchange with namerasa-exchange(see exchange-fanout for more information onfanoutexchanges).
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
#5416: Change
rasa initto includetests/conversation_tests.mdfile by default.#5446: The endpoint
PUT /conversations/<conversation_id>/tracker/eventsno longer adds session start events (to learn more about conversation sessions, please see Session configuration) in addition to the events which were sent in the request payload. To achieve the old behavior send aGET /conversations/<conversation_id>/trackerrequest before appending events.#5482: Make
scale_lossfor intents behave the same way as in versions below1.8, but only scale if some of the examples in a batch has probability of the golden label more than0.5. Introducescale_lossfor entities inDIETClassifier.
Bugfixes ¶
#5205: Fixed the bug when FormPolicy was overwriting MappingPolicy prediction (e.g.
/restart). Priorities for Mapping Policy and Form Policy are no longer linear:FormPolicypriority is 5, but its prediction is ignored ifMappingPolicyis used for prediction.#5215: Fixed issue related to storing Python
floatvalues asdecimal.Decimalobjects in DynamoDB tracker stores. Alldecimal.Decimalobjects are now converted tofloaton tracker retrieval.
Added a new docs section on DynamoTrackerStore.
#5356: Fixed bug where
FallbackPolicywould always fall back if the fallback action isaction_listen.#5361: Fixed bug where starting or ending a response with
\n\nled to one of the responses returned being empty.#5405: Fixes issue where model always gets retrained if multiple NLU/story files are in a directory, by sorting the list of files.
#5444: Fixed ambiguous logging in DIETClassifier by adding the name of the calling class to the log message.
Improved Documentation ¶
#2237: Restructure the “Evaluating models” documentation page and rename this page to Testing Your Assistant.
#5302: Improved documentation on how to build and deploy an action server image for use on other servers such as Rasa X deployments.
Miscellaneous internal changes ¶
- #5340
[1.8.3] - 2020-03-27 ¶
Bugfixes ¶
#5444: Fixed ambiguous logging in DIETClassifier by adding the name of the calling class to the log message.
#5506: Set default value for
weight_sparsityinResponseSelectorto0. This fixes a bug in the default behaviour ofResponseSelectorwhich was accidentally introduced inrasa==1.8.0. Users should update to this version orrasa>=1.9.3and re-train their models ifResponseSelectorwas used in their pipeline.
Improved Documentation ¶
[1.8.2] - 2020-03-19 ¶
Bugfixes ¶
#5438: Fixed bug when installing rasa with
poetry.#5413: Fixed bug with
EmbeddingIntentClassifier, where results weren’t the same as in 1.7.x. Fixed by setting weight sparsity to 0.
Improved Documentation ¶
#5404: Explain how to run commands as
rootuser in Rasa SDK Docker images since version1.8.0. Since version1.8.0the Rasa SDK Docker images does not longer run asrootuser by default. For commands which requirerootuser usage, you have to switch back to therootuser in your Docker image as described in Building an Action Server Image.#5402: Made improvements to Building Assistants tutorial
[1.8.1] - 2020-03-06 ¶
Bugfixes ¶
- #5354: Fixed issue with using language models like
xlnetalong withentity_recognitionset toTrueinsideDIETClassifier.
Miscellaneous internal changes ¶
- #5330, #5348
[1.8.0] - 2020-02-26 ¶
Deprecations and Removals ¶
#4991: Removed
Agent.continue_trainingand thedump_flattened_storiesparameter fromAgent.persist.#5266: Properties
Component.providesandComponent.requiresare deprecated. UseComponent.required_components()instead.
Features ¶
- #2674: Add default value
__other__tovaluesof aCategoricalSlot.
All values not mentioned in the list of values of a CategoricalSlot
will be mapped to __other__ for featurization.
#4088: Add story structure validation functionality (e.g. rasa data validate stories –max-history 5).
#5065: Add LexicalSyntacticFeaturizer to sparse featurizers.
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.
- #5187: Integrate language models from HuggingFace’s Transformers Library.
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.
#5225: Added a new CLI command
rasa exportto publish tracker events from a persistent tracker store using an event broker. See Export Conversations to an Event Broker, Tracker Stores and Event Brokers for more details.#5230: Refactor how GPU and CPU environments are configured for TensorFlow 2.0.
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"
- #5266: Added a new NLU component DIETClassifier and a new policy TEDPolicy.
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.
- #663: The sentence vector of the
SpacyFeaturizerandMitieFeaturizercan be calculated using max or mean pooling.
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 ¶
#3975: Added command line argument
--conversation-idtorasa interactive. If the argument is not given,conversation_iddefaults to a random uuid.#4653: Added a new command-line argument
--init-dirto commandrasa initto specify the directory in which the project is initialised.#4682: Added support to send images with the twilio output channel.
#4817: Part of Slack sanitization: Multiple garbled URL’s in a string coming from slack will be converted into actual strings.
Example: health check of <http://eemdb.net|eemdb.net> and <http://eemdb1.net|eemdb1.net> to health check of eemdb.net and eemdb1.net#5117: New command-line argument –conversation-id will be added and wiil give the ability to set specific conversation ID for each shell session, if not passed will be random.
#5211: Messages sent to the Pika Event Broker are now persisted. This guarantees the RabbitMQ will re-send previously received messages after a crash. Note that this does not help for the case where messages are sent to an unavailable RabbitMQ instance.
#5250: Added support for mattermost connector to use bot accounts.
#5266: We updated our code to TensorFlow 2.
#5317: Events exported using
rasa exportreceive a message header if published through aPikaEventBroker. The header is added to the message’sBasicProperties.headersunder therasa-export-process-idkey (rasa.core.constants.RASA_EXPORT_PROCESS_ID_HEADER_NAME). The value is a UUID4 generated at each call ofrasa export. The resulting header is a key-value pair that looks as follows:
'rasa-export-process-id': 'd3b3d3ffe2bd4f379ccf21214ccfb261'
#5292: Added
followlinks=Trueto os.walk calls, to allow the use of symlinks in training, NLU and domain data.#4811: Support invoking a
SlackBotby direct messaging or@<app name>mentions.
Bugfixes ¶
#4006: Fixed timestamp parsing warning when using DucklingHTTPExtractor
#4601: Fixed issue with
action_restartgetting overridden byaction_listenwhen theMappingPolicyand the TwoStageFallbackPolicy are used together.#5201: Fixed incorrectly raised Error encountered in pipelines with a
ResponseSelectorand NLG.
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.
- #5277: Fixed sending custom json with Twilio channel
Improved Documentation ¶
#5174: Updated the documentation to properly suggest not to explicitly add utterance actions to the domain.
#5189: Added user guide for reminders and external events, including
reminderbotdemo.
Miscellaneous internal changes ¶
- #3923, #4597, #4903, #5180, #5189, #5266, #699
[1.7.4] - 2020-02-24 ¶
Bugfixes ¶
- #5068: Tracker stores supporting conversation sessions (
SQLTrackerStoreandMongoTrackerStore) do not save the tracker state to database immediately after starting a new conversation session. This leads to the number of events being saved in addition to the already-existing ones to be calculated correctly.
This fixes action_listen events being saved twice at the beginning of
conversation sessions.
[1.7.3] - 2020-02-21 ¶
Bugfixes ¶
- #5231: Fix segmentation fault when running
rasa trainorrasa shell.
Improved Documentation ¶
- #5286: Fix doc links on “Deploying your Assistant” page
[1.7.2] - 2020-02-13 ¶
Bugfixes ¶
- #5197: Fixed incompatibility of Oracle with the SQLTrackerStore, by using a
Sequencefor the primary key columns. This does not change anything for SQL databases other than Oracle. If you are using Oracle, please create a sequence with the instructions in the SQLTrackerStore docs.
Improved Documentation ¶
#5197: Added section on setting up the SQLTrackerStore with Oracle
#5210: Renamed “Running the Server” page to “Configuring the HTTP API”
[1.7.1] - 2020-02-11 ¶
Bugfixes ¶
#5106: Fixed file loading of non proper UTF-8 story files, failing properly when checking for story files.
#5162: Fix problem with multi-intents. Training with multi-intents using the
CountVectorsFeaturizertogether withEmbeddingIntentClassifieris working again.#5171: Fix bug
ValueError: Cannot concatenate sparse features as sequence dimension does not match.
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.
#5199: If no text features are present in
EmbeddingIntentClassifierreturn the intentNone.#5216: Resolve version conflicts: Pin version of cloudpickle to ~=1.2.0.
[1.7.0] - 2020-01-29 ¶
Deprecations and Removals ¶
#4964: The endpoint
/conversations/<conversation_id>/executeis now deprecated. Instead, users should use the/conversations/<conversation_id>/trigger_intentendpoint and thus trigger intents instead of actions.#4978: Remove option
use_cls_tokenfrom tokenizers and optionreturn_sequencefrom featurizers.
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 ¶
- #400: Rename
templateskey in domain toresponses.
templates key will still work for backwards compatibility but will raise a future warning.
#4902: Added a new configuration parameter,
ranking_lengthto theEmbeddingPolicy,EmbeddingIntentClassifier, andResponseSelectorclasses.#4964: External events and reminders now trigger intents (and entities) instead of actions.
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.
- #4978: Add
ConveRTTokenizer.
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 ¶
#1988: Remove the need of specifying utter actions in the
actionssection explicitly if these actions are already listed in thetemplatessection.#4877: Entity examples that have been extracted using an external extractor are excluded from Markdown dumping in
MarkdownWriter.dumps(). The excluded external extractors areDucklingHTTPExtractorandSpacyEntityExtractor.#4902: The
EmbeddingPolicy,EmbeddingIntentClassifier, andResponseSelectornow by default normalize confidence levels over the top 10 results. See Rasa 1.6 to Rasa 1.7 for more details.#4964:
ReminderCancelledcan now cancel multiple reminders if no name is given. It still cancels a single reminder if the reminder’s name is specified.
Bugfixes ¶
#4774: Requests to
/model/traindo not longer block other requests to the Rasa server.#4896: Fixed default behavior of
rasa test core --evaluate-model-directorywhen called without--model. Previously, the latest model file was used as--model. Now the default model directory is used instead.
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.
- #5040: Updated the dependency
networkxfrom 2.3.0 to 2.4.0. The old version created incompatibilities when using pip.
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.
#5057: Fixed compatibility issue with Microsoft Bot Framework Emulator if
service_urllacked a trailing/.#5092: DynamoDB tracker store decimal values will now be rounded on save. Previously values exceeding 38 digits caused an unhandled error.
Miscellaneous internal changes ¶
- #4458, #4664, #4780, #5029
[1.6.2] - 2020-01-28 ¶
Improvements ¶
- #4994: Switching back to a TensorFlow release which only includes CPU support to reduce the
size of the dependencies. If you want to use the TensorFlow package with GPU support,
please run
pip install tensorflow-gpu==1.15.0.
Bugfixes ¶
#5111: Fixes
Exception 'Loop' object has no attribute '_ready'error when runningrasa init.#5126: Updated the end-to-end ValueError you recieve when you have a invalid story format to point to the updated doc link.
[1.6.1] - 2020-01-07 ¶
Bugfixes ¶
#4989: Use an empty domain in case a model is loaded which has no domain (avoids errors when accessing
agent.doman.<some attribute>).#4995: Replace error message with warning in tokenizers and featurizers if default parameter not set.
#5019: Pin sanic patch version instead of minor version. Fixes sanic
_run_request_middleware()error.#5032: Fix wrong calculation of additional conversation events when saving the conversation. This led to conversation events not being saved.
#5032: Fix wrong order of conversation events when pushing events to conversations via
POST /conversations/<conversation_id>/tracker/events.
[1.6.0] - 2019-12-18 ¶
Deprecations and Removals ¶
- #4935: Removed
ner_featuresas a feature name fromCRFEntityExtractor, usetext_dense_featuresinstead.
The following settings match the previous NGramFeaturizer:
- name: 'CountVectorsFeaturizer'
analyzer: 'char_wb'
min_ngram: 3
max_ngram: 17
max_features: 10
min_df: 5
#4957: To use custom features in the
CRFEntityExtractorusetext_dense_featuresinstead ofner_features. Iftext_dense_featuresare present in the feature set, theCRFEntityExtractorwill automatically make use of them. Just make sure to add a dense featurizer in front of theCRFEntityExtractorin your pipeline and set the flagreturn_sequencetoTruefor that featurizer. See https://rasa.com/docs/rasa/nlu/entity-extraction/#passing-custom-features-to-crfentityextractor.#4990: Deprecated
Agent.continue_training. Instead, a model should be retrained.#684: Specifying lookup tables directly in the NLU file is now deprecated. Please specify them in an external file.
Features ¶
#4795: Replaced the warnings about missing templates, intents etc. in validator.py by debug messages.
#4830: Added conversation sessions to trackers.
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:
Added a new event
SessionStartedthat marks the beginning of a new conversation session.Added a new default action
ActionSessionStart. This action takes allSlotSetevents from the previous session and applies it to the next session.Added a new default intent
session_startwhich triggers the start of a new conversation session.SQLTrackerStoreandMongoTrackerStoreonly retrieve events from the last session from the database.
Note
The session behaviour is disabled for existing projects, i.e. existing domains without session config section.
- #4935: Preparation for an upcoming change in the
EmbeddingIntentClassifier:
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 ¶
#3549: Added
--no-plotoption forrasa testcommand, which disables rendering of confusion matrix and histogram. By default plots will be rendered.#4086: If matplotlib couldn’t set up a default backend, it will be set automatically to TkAgg/Agg one
#4647: Add the option
random_seedto therasa data split nlucommand to generate reproducible train/test splits.#4734: Changed
url``__init__()arguments for custom tracker stores tohostto reflect the__init__arguments of currently supported tracker stores. Note that inendpoints.yml, these are still declared asurl.#4751: The
kafka-pythondependency has become as an “extra” dependency. To use theKafkaEventConsumer,rasahas to be installed with the[kafka]option, i.e.
$ pip install rasa[kafka]
#4801: Allow creation of natural language interpreter and generator by classname reference in
endpoints.yml.#4834: Made it explicit that interactive learning does not work with NLU-only models.
Interactive learning no longer trains NLU-only models if no model is provided and no core data is provided.
#4899: The
intent_report.jsoncreated byrasa testnow creates an extra fieldconfused_withfor each intent. This is a dictionary containing the names of the most common false positives when this intent should be predicted, and the number of such false positives.#4976:
rasa test nlu --cross-validationnow also includes an evaluation of the response selector. As a result, the train and test F1-score, accuracy and precision is logged for the response selector. A report is also generated in theresultsfolder by the nameresponse_selection_report.json
Bugfixes ¶
#4635: If a
wait_time_between_pullsis configured for the model server inendpoints.yml, this will be used instead of the default one when running Rasa X.#4759: Training Luis data with
luis_schema_versionhigher than 4.x.x will show a warning instead of throwing an exception.#4799: Running
rasa interactivewith no NLU data now works, with the functionality ofrasa interactive core.#4917: When loading models from S3, namespaces (folders within a bucket) are now respected. Previously, this would result in an error upon loading the model.
#4925: “rasa init” will ask if user wants to train a model
#4942: Pin
multidictdependency to 4.6.1 to prevent sanic from breaking, see https://github.com/huge-success/sanic/issues/1729#4985: Fix errors during training and testing of
ResponseSelector.
[1.5.3] - 2019-12-11 ¶
Improvements ¶
- #4933: Improved error message that appears when an incorrect parameter is passed to a policy.
Bugfixes ¶
- #4914: Added
rasa/nlu/schemas/config.ymlto wheel package
[1.5.2] - 2019-12-09 ¶
Improvements ¶
#3684:
rasa interactivewill skip the story visualization of training stories in case there are more than 200 stories. Stories created during interactive learning will be visualized as before.#4792: The log level for SocketIO loggers, including
websockets.protocol,engineio.server, andsocketio.server, is now handled by theLOG_LEVEL_LIBRARIESenvironment variable, where the default log level isERROR.#4873: Updated all example bots and documentation to use the updated
dispatcher.utter_message()method from rasa-sdk==1.5.0.
Bugfixes ¶
#3684:
rasa interactivewill not load training stories in case the visualization is skipped.#4789: Fixed error where spacy models where not found in the docker images.
#4802: Fixed unnecessary
kwargsunpacking inrasa.test.test_corecall inrasa.test.testfunction.#4898: Training data files now get loaded in the same order (especially relevant to subdirectories) each time to ensure training consistency when using a random seed.
#4918: Locks for tickets in
LockStoreare immediately issued without a redundant check for their availability.
Improved Documentation ¶
#4844: Added
towncrierto automatically collect changelog entries.#4869: Document the pipeline for
pretrained_embeddings_convertin the pre-configured pipelines section.#4894:
Proactively Reaching Out to the User Using Actionsnow correctly links to the endpoint specification.
[1.5.1] - 2019-11-27 ¶
Improvements ¶
- When NLU training data is dumped as Markdown file the intents are not longer ordered alphabetically, but in the original order of given training data
Bugfixes ¶
End to end stories now support literal payloads which specify entities, e.g.
greet: /greet{"name": "John"}Slots will be correctly interpolated if there are lists in custom response templates.
Fixed compatibility issues with
rasa-sdk``1.5Updated
/statusendpoint to show correct path to model archive
[1.5.0] - 2019-11-26 ¶
Features ¶
Added data validator that checks if domain object returned is empty. If so, exit early from the command
rasa data validate.Added the KeywordIntentClassifier.
Added documentation for
AugmentedMemoizationPolicy.Fall back to
InMemoryTrackerStorein case there is any problem with the current tracker store.Arbitrary metadata can now be attached to any
Eventsubclass. The data must be stored under themetadatakey when reading the event from a JSON object or dictionary.Add command line argument
rasa x --config CONFIG, to specify path to the policy and NLU pipeline configuration of your bot (default:config.yml).Added a new NLU featurizer -
ConveRTFeaturizerbased on ConveRT model released by PolyAI.Added a new preconfigured pipeline -
pretrained_embeddings_convert.
Improvements ¶
Do not retrain the entire Core model if only the
templatessection of the domain is changed.Upgraded
jsonschemaversion.
Deprecations and Removals ¶
- Remove duplicate messages when creating training data (issues/1446).
Bugfixes ¶
MultiProjectImporternow imports files in the order of the import statementsFixed server hanging forever on leaving
rasa shellbefore first messageFixed rasa init showing traceback error when user does Keyboard Interrupt before choosing a project path
CountVectorsFeaturizerfeaturizes intents only if its analyzer is set towordFixed bug where facebooks generic template was not rendered when buttons were
NoneFixed default intents unnecessarily raising undefined parsing error
[1.4.6] - 2019-11-22 ¶
Bugfixes ¶
Fixed Rasa X not working when any tracker store was configured for Rasa.
Use the matplotlib backend
aggin case thetkinterpackage is not installed.
[1.4.5] - 2019-11-14 ¶
Bugfixes ¶
NLU-only models no longer throw warnings about parsing features not defined in the domain
Fixed bug that stopped Dockerfiles from building version 1.4.4.
Fixed format guessing for e2e stories with intent restated as
/intent
[1.4.4] - 2019-11-13 ¶
Features ¶
PikaEventProduceradds the RabbitMQApp IDmessage property to published messages with the value of theRASA_ENVIRONMENTenvironment variable. The message property will not be assigned if this environment variable isn’t set.
Improvements ¶
Updated Mattermost connector documentation to be more clear.
Updated format strings to f-strings where appropriate.
Updated tensorflow requirement to
1.15.0Dump domain using UTF-8 (to avoid
\UXXXXsequences in the dumped files)
Bugfixes ¶
Fixed exporting NLU training data in
jsonformat fromrasa interactiveFixed numpy deprecation warnings
[1.4.3] - 2019-10-29 ¶
Bugfixes ¶
- Fixed
Connection reset by peererrors and bot response delays when using the RabbitMQ event broker.
[1.4.2] - 2019-10-28 ¶
Deprecations and Removals ¶
- TensorFlow deprecation warnings are no longer shown when running
rasa x
Bugfixes ¶
Fixed
'Namespace' object has no attribute 'persist_nlu_data'error during interactive learningPinned networkx~=2.3.0 to fix visualization in rasa interactive and Rasa X
Fixed
No model founderror when usingrasa run actionswith “actions” as a directory.
[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 ¶
add flag to CLI to persist NLU training data if needed
log a warning if the
Interpreterpicks up an intent or an entity that does not exist in the domain file.added
DynamoTrackerStoreto support persistence of agents running on AWSadded docstrings for
TrackerStoreclassesadded buttons and images to mattermost.
CRFEntityExtractorupdated to accept arbitrary token-level features like word vectors (issues/4214)SpacyFeaturizerupdated to addner_featuresforCRFEntityExtractorSanitizing incoming messages from slack to remove slack formatting like < mailto:xyz@rasa.com|xyz@rasa.com> or < http://url.com|url.com> and substitute it with original content
Added the ability to configure the number of Sanic worker processes in the HTTP server (
rasa.server) and input channel server (rasa.core.agent.handle_channels()). The number of workers can be set using the environment variableSANIC_WORKERS(default: 1). A value of >1 is allowed only in combination withRedisLockStoreas the lock store.Botframework channel can handle uploaded files in
UserMessagemetadata.Added data validator that checks there is no duplicated example data across multiples intents
Improvements ¶
Unknown sections in markdown format (NLU data) are not ignored anymore, but instead an error is raised.
It is now easier to add metadata to a
UserMessagein existing channels. You can do so by overwriting the methodget_metadata. The return value of this method will be passed to theUserMessageobject.Tests can now be run in parallel
Serialise
DialogueStateTrackeras json instead of pickle. DEPRECATION warning: Deserialisation of pickled trackers will be deprecated in version 2.0. For now, trackers are still loaded from pickle but will be dumped as json in any subsequent save operations.Event brokers are now also passed to custom tracker stores (using the
event_brokerparameter)Don’t run the Rasa Docker image as
root.Use multi-stage builds to reduce the size of the Rasa Docker image.
Updated the
/statusapi route to use the actual model file location instead of thetmplocation.
Deprecations and Removals ¶
- Removed Python 3.5 support
Bugfixes ¶
fixed missing
tkinterdependency for running tests on Ubuntufixed issue with
conversationJSON serializationfixed the hanging HTTP call with
ner_duckling_httppipelinefixed Interactive Learning intent payload messages saving in nlu files
fixed DucklingHTTPExtractor dimensions by actually applying to the request
[1.3.10] - 2019-10-18 ¶
Features ¶
- Can now pass a package as an argument to the
--actionsparameter of therasa run actionscommand.
Bugfixes ¶
- Fixed visualization of stories with entities which led to a failing visualization in Rasa X
[1.3.9] - 2019-10-10 ¶
Features ¶
Port of 1.2.10 (support for RabbitMQ TLS authentication and
portkey in event broker endpoint config).Port of 1.2.11 (support for passing a CA file for SSL certificate verification via the –ssl-ca-file flag).
Bugfixes ¶
Fixed the hanging HTTP call with
ner_duckling_httppipeline.Fixed text processing of
intentattribute insideCountVectorFeaturizer.Fixed
argument of type 'NoneType' is not iterablewhen usingrasa shell,rasa interactive/rasa run
[1.3.8] - 2019-10-08 ¶
Improvements ¶
- Policies now only get imported if they are actually used. This removes TensorFlow warnings when starting Rasa X
Bugfixes ¶
Fixed error
Object of type 'MaxHistoryTrackerFeaturizer' is not JSON serializablewhen runningrasa train coreDefault channel
send_methods no longer support kwargs as they caused issues in incompatible channels
[1.3.7] - 2019-09-27 ¶
Bugfixes ¶
re-added TLS, SRV dependencies for PyMongo
socketio can now be run without turning on the
--enable-apiflagMappingPolicy no longer fails when the latest action doesn’t have a policy
[1.3.6] - 2019-09-21 ¶
Features ¶
- Added the ability for users to specify a conversation id to send a message to when
using the
RasaChatinput channel.
[1.3.5] - 2019-09-20 ¶
Bugfixes ¶
- Fixed issue where
rasa initwould fail without spaCy being installed
[1.3.4] - 2019-09-20 ¶
Features ¶
Added the ability to set the
backlogparameter in Sanicsrun()method using theSANIC_BACKLOGenvironment variable. This parameter sets the number of unaccepted connections the server allows before refusing new connections. A default value of 100 is used if the variable is not set.Status endpoint (
/status) now also returns the number of training processes currently running
Bugfixes ¶
Added the ability to properly deal with spaCy
Doc-objects created on empty strings as discussed here. Only training samples that actually bear content are sent toself.nlp.pipefor every given attribute. Non-content-bearing samples are converted to emptyDoc-objects. The resulting lists are merged with their preserved order and properly returned.asyncio warnings are now only printed if the callback takes more than 100ms (up from 1ms).
agent.load_model_from_serverno longer affects logging.
Improvements ¶
- The endpoint
POST /model/trainno longer supports specifying an output directory for the trained model using the fieldout. Instead you can choose whether you want to save the trained model in the default model directory (models) (default behavior) or in a temporary directory by specifying thesave_to_default_model_directoryfield in the training request.
[1.3.3] - 2019-09-13 ¶
Bugfixes ¶
Added a check to avoid training
CountVectorizerfor a particular attribute of a message if no text is provided for that attribute across the training data.Default one-hot representation for label featurization inside
EmbeddingIntentClassifierif label features don’t exist.Policy ensemble no longer incorrectly wrings “missing mapping policy” when mapping policy is present.
“text” from
utter_custom_jsonnow correctly saved to tracker when using telegram channel
Deprecations and Removals ¶
- Removed computation of
intent_spacy_doc. As a result, none of the spacy components process intents now.
[1.3.2] - 2019-09-10 ¶
Bugfixes ¶
- SQL tracker events are retrieved ordered by timestamps. This fixes interactive learning events being shown in the wrong order.
[1.3.1] - 2019-09-09 ¶
Improvements ¶
- Pin gast to == 0.2.2
[1.3.0] - 2019-09-05 ¶
Features ¶
Added option to persist nlu training data (default: False)
option to save stories in e2e format for interactive learning
bot messages contain the
timestampof theBotUtteredevent, which can be used in channelsFallbackPolicycan now be configured to trigger when the difference between confidences of two predicted intents is too narrowexperimental training data importer which supports training with data of multiple sub bots. Please see the docs for more information.
throw error during training when triggers are defined in the domain without
MappingPolicybeing present in the policy ensembleThe tracker is now available within the interpreter’s
parsemethod, giving the ability to create interpreter classes that use the tracker state (eg. slot values) during the parsing of the message. More details on motivation of this change see issues/3015.add example bot
knowledgebasebotto showcase the usage ofActionQueryKnowledgeBasesoftmaxstarspace loss for bothEmbeddingPolicyandEmbeddingIntentClassifierbalancedbatching strategy for bothEmbeddingPolicyandEmbeddingIntentClassifiermax_historyparameter forEmbeddingPolicySuccessful predictions of the NER are written to a file if
--successesis set when runningrasa test nluIncorrect predictions of the NER are written to a file by default. You can disable it via
--no-errors.New NLU component
ResponseSelectoradded for the task of response selectionMessage data attribute can contain two more keys -
response_key,responsedepending on the training dataNew action type implemented by
ActionRetrieveResponseclass and identified withresponse_prefixVocabulary sharing inside
CountVectorsFeaturizerwithuse_shared_vocabflag. If set to True, vocabulary of corpus is shared between text, intent and response attributes of messageAdded an option to share the hidden layer weights of text input and label input inside
EmbeddingIntentClassifierusing the flagshare_hidden_layersNew type of training data file in NLU which stores response phrases for response selection task.
Add flag
intent_split_symbolandintent_tokenization_flagto allWhitespaceTokenizer,JiebaTokenizerandSpacyTokenizerAdded evaluation for response selector. Creates a report
response_selection_report.jsoninside--outdirectory.argument
--config-endpointto specify the URL from whichrasa xpulls the runtime configuration (endpoints and credentials)LockStoreclass storing instances ofTicketLockfor everyconversation_idenvironment variables
SQL_POOL_SIZE(default: 50) andSQL_MAX_OVERFLOW(default: 100) can be set to control the pool size and maximum pool overflow forSQLTrackerStorewhen used with thepostgresqldialectAdd a bot_challenge intent and a utter_iamabot action to all example projects and the rasa init bot.
Allow sending attachments when using the socketio channel
rasa data validatewill fail with a non-zero exit code if validation fails
Improvements ¶
added character-level
CountVectorsFeaturizerwith empirically found parameters into thesupervised_embeddingsNLU pipeline templateNLU evaluations now also stores its output in the output directory like the core evaluation
show warning in case a default path is used instead of a provided, invalid path
compare mode of
rasa train coreallows the whole core config comparison, naming style of models trained for comparison is changed (this is a breaking change)pika keeps a single connection open, instead of open and closing on each incoming event
RasaChatInputfetches the public key from the Rasa X API. The key is used to decode the bearer token containing the conversation ID. This requiresrasa-x>=0.20.2.more specific exception message when loading custom components depending on whether component’s path or class name is invalid or can’t be found in the global namespace
change priorities so that the
MemoizationPolicyhas higher priority than theMappingPolicysubstitute LSTM with Transformer in
EmbeddingPolicyEmbeddingPolicycan now useMaxHistoryTrackerFeaturizernon zero
evaluate_on_num_examplesinEmbeddingPolicyandEmbeddingIntentClassifieris the size of hold out validation set that is excluded from training datadefaults parameters and architectures for both
EmbeddingPolicyandEmbeddingIntentClassifierare changed (this is a breaking change)evaluation of NER does not include ‘no-entity’ anymore
--successesforrasa test nluis now boolean values. If set incorrect/successful predictions are saved in a file.--errorsis renamed to--no-errorsand is now a boolean value. By default incorrect predictions are saved in a file. If--no-errorsis set predictions are not written to a file.Remove
label_tokenization_flagandlabel_split_symbolfromEmbeddingIntentClassifier. Instead move these parameters toTokenizers.Process features of all attributes of a message, i.e. - text, intent and response inside the respective component itself. For e.g. - intent of a message is now tokenized inside the tokenizer itself.
Deprecate
as_markdownandas_jsonin favour ofnlu_as_markdownandnlu_as_jsonrespectively.pin python-engineio >= 3.9.3
update python-socketio req to >= 4.3.1
Bugfixes ¶
rasa test nluwith a folder of configuration filesMappingPolicystandard featurizer is set toNoneRemoved
textparameter from send_attachment function in slack.py to avoid duplication of text output to slackbotserver
/statusendpoint reports status when an NLU-only model is loaded
Deprecations and Removals ¶
- Removed
--reportargument fromrasa test nlu. All output files are stored in the--outdirectory.
[1.2.12] - 2019-10-16 ¶
Features ¶
- Support for transit encryption with Redis via
use_ssl: Truein the tracker store config in endpoints.yml
[1.2.11] - 2019-10-09 ¶
Features ¶
- Support for passing a CA file for SSL certificate verification via the –ssl-ca-file flag
[1.2.10] - 2019-10-08 ¶
Features ¶
Added support for RabbitMQ TLS authentication. The following environment variables need to be set:
RABBITMQ_SSL_CLIENT_CERTIFICATE- path to the SSL client certificate (required)RABBITMQ_SSL_CLIENT_KEY- path to the SSL client key (required)RABBITMQ_SSL_CA_FILE- path to the SSL CA file (optional, for certificate verification)RABBITMQ_SSL_KEY_PASSWORD- SSL private key password (optional)Added ability to define the RabbitMQ port using the
portkey in theevent_brokerendpoint config.
[1.2.9] - 2019-09-17 ¶
Bugfixes ¶
- Correctly pass SSL flag values to x CLI command (backport of
[1.2.8] - 2019-09-10 ¶
Bugfixes ¶
- SQL tracker events are retrieved ordered by timestamps. This fixes interactive
learning events being shown in the wrong order. Backport of
1.3.2patch (PR #4427).
[1.2.7] - 2019-09-02 ¶
Bugfixes ¶
- Added
querydictionary argument toSQLTrackerStorewhich will be appended to the SQL connection URL as query parameters.
[1.2.6] - 2019-09-02 ¶
Bugfixes ¶
- fixed bug that occurred when sending template
elementsthrough a channel that doesn’t support them
[1.2.5] - 2019-08-26 ¶
Features ¶
- SSL support for
rasa runcommand. Certificate can be specified using--ssl-certificateand--ssl-keyfile.
Bugfixes ¶
made default augmentation value consistent across repo
'/restart'will now also restart the bot if the tracker is paused
[1.2.4] - 2019-08-23 ¶
Bugfixes ¶
- the
SocketIOinput channel now allows accesses from other origins (fixesSocketIOchannel on Rasa X)
[1.2.3] - 2019-08-15 ¶
Improvements ¶
messages with multiple entities are now handled properly with e2e evaluation
data/test_evaluations/end_to_end_story.mdwas re-written in the restaurantbot domain
[1.2.3] - 2019-08-15 ¶
Improvements ¶
messages with multiple entities are now handled properly with e2e evaluation
data/test_evaluations/end_to_end_story.mdwas re-written in the restaurantbot domain
Bugfixes ¶
- Free text input was not allowed in the Rasa shell when the response template contained buttons, which has now been fixed.
[1.2.2] - 2019-08-07 ¶
Bugfixes ¶
UserUtteredevents always got the same timestamp
[1.2.1] - 2019-08-06 ¶
Features ¶
- Docs now have an
EDIT THIS PAGEbutton
Bugfixes ¶
Flood control exceedederror in Telegram connector which happened because the webhook was set twice
[1.2.0] - 2019-08-01 ¶
Features ¶
add root route to server started without
--enable-apiparameteradd
--evaluate-model-directorytorasa test coreto evaluate models fromrasa train core -c <config-1> <config-2>option to send messages to the user by calling
POST /conversations/{conversation_id}/execute
Improvements ¶
Agent.update_model()andAgent.handle_message()now work without needing to set a domain or a policy ensembleUpdate pytype to
2019.7.11new event broker class:
SQLProducer. This event broker is now used when running locally with Rasa XAPI requests are not longer logged to
rasa_core.logby default in order to avoid problems when running on OpenShift (use--log-file rasa_core.logto retain the old behavior)metadataattribute added toUserMessage
Bugfixes ¶
rasa test corecan handle compressed model filesrasa can handle story files containing multi line comments
template will retain { if escaped with {. e.g. {{“foo”: {bar}}} will result in {“foo”: “replaced value”}
[1.1.8] - 2019-07-25 ¶
Features ¶
TrainingFileImporterinterface to support customizing the process of loading training datafill slots for custom templates
Improvements ¶
Agent.update_model()andAgent.handle_message()now work without needing to set a domain or a policy ensembleupdate pytype to
2019.7.11
Bugfixes ¶
interactive learning bug where reverted user utterances were dumped to training data
added timeout to terminal input channel to avoid freezing input in case of server errors
fill slots for image, buttons, quick_replies and attachments in templates
rasa train corein comparison mode stores the model files compressed (tar.gzfiles)slot setting in interactive learning with the TwoStageFallbackPolicy
[1.1.7] - 2019-07-18 ¶
Features ¶
added optional pymongo dependencies
[tls, srv]torequirements.txtfor better mongodb supportcase_sensitiveoption added toWhiteSpaceTokenizerwithtrueas default.
Bugfixes ¶
validation no longer throws an error during interactive learning
fixed wrong cleaning of
use_entitiesin case it was a list and notTrueupdated the server endpoint
/model/parseto handle also messages with the intent prefixfixed bug where “No model found” message appeared after successfully running the bot
debug logs now print to
rasa_core.logwhen runningrasa x -vvorrasa run -vv
[1.1.6] - 2019-07-12 ¶
Features ¶
- rest channel supports setting a message’s input_channel through a field
input_channelin the request body
Improvements ¶
- recommended syntax for empty
use_entitiesandignore_entitiesin the domain file has been updated fromFalseorNoneto an empty list ([])
Bugfixes ¶
rasa runwithout--enable-apidoes not require a local model anymoreusing
rasa runwith--enable-apito run a server now prints “running Rasa server” instead of “running Rasa Core server”actions, intents, and utterances created in
rasa interactivecan no longer be empty
[1.1.5] - 2019-07-10 ¶
Features ¶
debug logging now tells you which tracker store is connected
the response of
/model/trainnow includes a response header for the trained model filenameValidatorclass to help developing by checking if the files have any errorsproject’s code is now linted using flake8
infolog when credentials were provided for multiple channels and channel in--connectorargument was specified at the same timevalidate export paths in interactive learning
Improvements ¶
deprecate
rasa.core.agent.handle_channels(...)`. Please use ``rasa.run(...)orrasa.core.run.configure_appinstead.Agent.load()also acceptstar.gzmodel file
Deprecations and Removals ¶
revert the stripping of trailing slashes in endpoint URLs since this can lead to problems in case the trailing slash is actually wanted
starter packs were removed from Github and are therefore no longer tested by Travis script
Bugfixes ¶
all temporal model files are now deleted after stopping the Rasa server
rasa shell nlunow outputs unicode characters instead of\uxxxxcodesfixed PUT /model with model_server by deserializing the model_server to EndpointConfig.
x in AnySlotDictis nowTruefor anyx, which fixes empty slot warnings in interactive learningrasa trainnow also includes NLU files in other formats than the Rasa formatrasa train coreno longer crashes without a--domainargrasa interactivenow looks for endpoints inendpoints.ymlif no--endpointsarg is passedcustom files, e.g. custom components and channels, load correctly when using the command line interface
MappingPolicynow works correctly when used as part of a PolicyEnsemble
[1.1.4] - 2019-06-18 ¶
Features ¶
unfeaturize single entities
added agent readiness check to the
/statusresource
Improvements ¶
- removed leading underscore from name of ‘_create_initial_project’ function.
Bugfixes ¶
fixed bug where facebook quick replies were not rendering
take FB quick reply payload rather than text as input
fixed bug where training_data path in metadata.json was an absolute path
[1.1.3] - 2019-06-14 ¶
Bugfixes ¶
- fixed any inconsistent type annotations in code and some bugs revealed by type checker
[1.1.2] - 2019-06-13 ¶
Bugfixes ¶
- fixed duplicate events appearing in tracker when using a PostgreSQL tracker store
[1.1.1] - 2019-06-13 ¶
Bugfixes ¶
fixed compatibility with Rasa SDK
bot responses can contain
custommessages besides other message types
[1.1.0] - 2019-06-13 ¶
Features ¶
- nlu configs can now be directly compared for performance on a dataset
in
rasa test nlu
Improvements ¶
update the tracker in interactive learning through reverting and appending events instead of replacing the tracker
POST /conversations/{conversation_id}/tracker/eventssupports a list of events
Bugfixes ¶
fixed creation of
RasaNLUHttpInterpreterform actions are included in domain warnings
default actions, which are overriden by custom actions and are listed in the domain are excluded from domain warnings
SQL
datacolumn type toTextfor compatibility with MySQLnon-featurizer training parameters don’t break SklearnPolicy anymore
[1.0.9] - 2019-06-10 ¶
Improvements ¶
- revert PR #3739 (as this is a breaking change): set
PikaProducerandKafkaProducerdefault queues back torasa_core_events
[1.0.8] - 2019-06-10 ¶
Features ¶
support for specifying full database urls in the
SQLTrackerStoreconfigurationmaximum number of predictions can be set via the environment variable
MAX_NUMBER_OF_PREDICTIONS(default is 10)
Improvements ¶
default
PikaProducerandKafkaProducerqueues torasa_production_eventsexclude unfeaturized slots from domain warnings
Bugfixes ¶
loading of additional training data with the
SkillSelectorstrip trailing slashes in endpoint URLs
[1.0.7] - 2019-06-06 ¶
Features ¶
- added argument
--rasa-x-portto specify the port of Rasa X when running Rasa X locally viarasa x
Bugfixes ¶
slack notifications from bots correctly render text
fixed usage of
--log-fileargument forrasa runandrasa shellcheck if correct tracker store is configured in local mode
[1.0.6] - 2019-06-03 ¶
Bugfixes ¶
- fixed backwards incompatible utils changes
[1.0.5] - 2019-06-03 ¶
Bugfixes ¶
- fixed spacy being a required dependency (regression)
[1.0.4] - 2019-06-03 ¶
Features ¶
- automatic creation of index on the
sender_idcolumn when using an SQL tracker store. If you have an existing data and you are running into performance issues, please make sure to add an index manually usingCREATE INDEX event_idx_sender_id ON events (sender_id);.
Improvements ¶
- NLU evaluation in cross-validation mode now also provides intent/entity reports, confusion matrix, etc.
[1.0.3] - 2019-05-30 ¶
Bugfixes ¶
non-ascii characters render correctly in stories generated from interactive learning
validate domain file before usage, e.g. print proper error messages if domain file is invalid instead of raising errors
[1.0.2] - 2019-05-29 ¶
Features ¶
- added
domain_warnings()method toDomainwhich returns a dict containing the diff between supplied {actions, intents, entities, slots} and what’s contained in the domain
Bugfixes ¶
fix lookup table files failed to load issues/3622
buttons can now be properly selected during cmdline chat or when in interactive learning
set slots correctly when events are added through the API
mapping policy no longer ignores NLU threshold
mapping policy priority is correctly persisted
[1.0.1] - 2019-05-21 ¶
Bugfixes ¶
- updated installation command in docs for Rasa X
[1.0.0] - 2019-05-21 ¶
Features ¶
added arguments to set the file paths for interactive training
added quick reply representation for command-line output
added option to specify custom button type for Facebook buttons
added tracker store persisting trackers into a SQL database (
SQLTrackerStore)added rasa command line interface and API
Rasa HTTP training endpoint at
POST /jobs. This endpoint will train a combined Rasa Core and NLU modelReminderCancelled(action_name)event to cancel given action_name reminder for current userRasa HTTP intent evaluation endpoint at
POST /intentEvaluation. This endpoints performs an intent evaluation of a Rasa modeloption to create template for new utterance action in
interactive learningyou can now choose actions previously created in the same session in
interactive learningadd formatter ‘black’
channel-specific utterances via the
- "channel":key in utterance templatesarbitrary json messages via the
- "custom":key in utterance templates and viautter_custom_json()method in custom actionssupport to load sub skills (domain, stories, nlu data)
support to select which sub skills to load through
importsection inconfig.ymlsupport for spaCy 2.1
a model for an agent can now also be loaded from a remote storage
log level can be set via environment variable
LOG_LEVELadd
--store-uncompressedto train command to not compress Rasa modellog level of libraries, such as tensorflow, can be set via environment variable
LOG_LEVEL_LIBRARIESif no spaCy model is linked upon building a spaCy pipeline, an appropriate error message is now raised with instructions for linking one
Improvements ¶
renamed all CLI parameters containing any
_to use dashes-instead (GNU standard)renamed
rasa_corepackage torasa.corefor interactive learning only include manually annotated and ner_crf entities in nlu export
made
message_idan additional argument tointerpreter.parsechanged removing punctuation logic in
WhitespaceTokenizertraining_processesin the Rasa NLU data router have been renamed toworker_processescreated a common utils package
rasa.utilsfor nlu and core, common methods likeread_yamlmoved thereremoved
--num_threadsfrom run command (server will be asynchronous but running in a single thread)the
_check_token()method inRasaChatnow authenticates against/auth/verifyinstead of/userremoved
--pre_loadfrom run command (Rasa NLU server will just have a maximum of one model and that model will be loaded by default)changed file format of a stored trained model from the Rasa NLU server to
tar.gztrain command uses fallback config if an invalid config is given
test command now compares multiple models if a list of model files is provided for the argument
--modelMerged rasa.core and rasa.nlu server into a single server. See swagger file in
docs/_static/spec/server.yamlfor available endpoints.utter_custom_message()method in rasa_core_sdk has been renamed toutter_elements()updated dependencies. as part of this, models for spacy need to be reinstalled for 2.1 (from 2.0)
make sure all command line arguments for
rasa testandrasa interactiveare actually used, removed arguments that were not used at all (e.g.--coreforrasa test)
Deprecations and Removals ¶
removed possibility to execute
python -m rasa_core.trainetc. (e.g. scripts inrasa.coreandrasa.nlu). Use the CLI for rasa instead, e.g.rasa train core.removed
_sklearn_numpy_warning_fixfrom theSklearnIntentClassifierremoved
Dispatcherclass from coreremoved projects: the Rasa NLU server now has a maximum of one model at a time loaded.
Bugfixes ¶
evaluating core stories with two stage fallback gave an error, trying to handle None for a policy
the
/evaluateroute for the Rasa NLU server now runs evaluation in a parallel process, which prevents the currently loaded model unloadingadded missing implementation of the
keys()function for the Redis Tracker Storein interactive learning: only updates entity values if user changes annotation
log options from the command line interface are applied (they overwrite the environment variable)
all message arguments (kwargs in dispatcher.utter methods, as well as template args) are now sent through to output channels
utterance templates defined in actions are checked for existence upon training a new agent, and a warning is thrown before training if one is missing
👋 I can help you get started with Rasa and answer your technical questions.