What’s Ahead in Rasa Open Source 2.0 [Alpha Feedback Thread]

Hey Rasa @community

We’re fast approaching our next major release, and we’re excited to give the community an in-depth look at what we’ve been working on in this blog post!

Rasa Open Source 2.0 is centered on simplicity, especially unifying key concepts and reducing the learning curve for newcomers—while still expanding what advanced Rasa users can create. We’re in early stages, and we expect to build on the 2.0.0a1 release as we receive feedback from the community and iterate.

With that being said, we’d love to hear your thoughts on Config suggestions, introduction of Forms, a new Training Data format and the simplification of Rule Policies.

Want to try out Rasa Open Source 2.0 today?

Download Rasa Open Source 2.0.0a1, tell us what you think here in this thread, and help us shape the next major release of Rasa Open Source!


Edit 29.07.20:

10 Likes

This is awesome @Emma ! Looking forward to testing it out. Glad to know that all policies are merged. This will lead to less confusion and simplicity especially among beginners.

3 Likes

Awesome. Especially Suggestion config will be very much useful for the beginners.

Sounds great. Can we learn more about RulePolicy? I was struggling to find a description by googling.

1 Like

Sweet! I have been waiting for Rasa 2.0. Just installed it, can’t wait to try it out. Good work Team Rasa!

You can refer this video @szedjani

I’d love to see the new Forms format!

1 Like

The blog post about Rasa 2.0 Alpha announcement mentioned about the dialogue model using user input instead of intent. Is there any example of how to use this feature?

Secondly, how to use response selector/retrieval actions in Rasa 2.0 alpha?

1 Like

Hola Rasa friends!

I’m trying out the exciting new rasa==2.0.0a1 and experiencing some issues importing the standard NLU pipeline components. When I installed rasa==2.0.0a1 in a clean conda environment (MacOS Catalina, Python 3.7) the rasa init worked fine, but if I change the config.yml beyond the “supervised” preconfigured pipeline it breaks. More specifically, it seems that the ConveRTTokenizer, LexicalSyntacticFeaturizer and DIETClassifier are not found in this version.

Is this a bug or was this part of the plan?

Error message:

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/rasa/nlu/registry.py", line 146, in get_component_class
    return class_from_module_path(component_name)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/rasa/utils/common.py", line 193, in class_from_module_path
    raise ImportError("Cannot retrieve class from path {}.".format(module_path))
ImportError: Cannot retrieve class from path DIETClassifier.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/bin/rasa", line 10, in <module>
    sys.exit(main())
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/rasa/__main__.py", line 76, in main
    cmdline_arguments.func(cmdline_arguments)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/rasa/cli/train.py", line 76, in train
    kwargs=extract_additional_arguments(args),
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/rasa/train.py", line 45, in train
    kwargs=kwargs,
  File "uvloop/loop.pyx", line 1417, in uvloop.loop.Loop.run_until_complete
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/rasa/train.py", line 96, in train_async
    kwargs,
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/rasa/train.py", line 182, in _train_async_internal
    kwargs=kwargs,
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/rasa/train.py", line 231, in _do_training
    persist_nlu_training_data=persist_nlu_training_data,
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/rasa/train.py", line 459, in _train_nlu_with_validated_data
    persist_nlu_training_data=persist_nlu_training_data,
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/rasa/nlu/train.py", line 68, in train
    trainer = Trainer(nlu_config, component_builder)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/rasa/nlu/model.py", line 148, in __init__
    components.validate_requirements(cfg.component_names)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/rasa/nlu/components.py", line 38, in validate_requirements
    component_class = registry.get_component_class(component_name)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/rasa/nlu/registry.py", line 175, in get_component_class
    raise ModuleNotFoundError(exception_message)
ModuleNotFoundError: Cannot find class 'DIETClassifier' from global namespace. Please check that there is no typo in the class name and that you have imported the class into the global namespace.```

To all the questions around documentation - we’re still working on that at the moment. In the meantime, there’s an open PR on documentation for the RulePolicy here

And an open PR with an example of how to write rules/stories and forms here

1 Like

Some further basic documentation on the yaml format can be found on this public Notion page

2 Likes

Looking forward on what Rasa 2.0.0 can do. Few questions based on the blog posts and concerns on my current implementation:

On the Training Data 2.0, it’s mentioned that intent class will be optional and we can train end-to-end learning in Rasa without mentioning intent labels.

  1. Will it use the text history as well on top of the current user text message?
  2. How does the new NLU training data without intent labels reflect when I only want to use the NLU module?
  3. Not related to the training data, I’ve been using MultiProjectImporter for my implementation for the ease of enabling/disabling topics/functionality, how will Rasa 2.0.0 handle this in the future or will it be deprecated?
  4. Related to number 1, will it be possible to have a fully end-to-end episodic response selector for experiment purpose? This might be conflicting with how Rasa works because it use Stories to control dialog, but I sometimes want to try experimental stuff with how established the tracker and data importer in Rasa.

I will try to see 2.0.0a1 and try to answer above questions based on the actual code and self-experiments, but if it can be answered here, it would be really great. Thank you!

Very cool! Thanks! :fire:

  1. Will it use the text history as well on top of the current user text message?

the end-to-end approach will allow the mix of user text and intents. From dialogue history point of view, it’ll be the same as now, but it’ll account for text instead of intent if you provided text in your training stories

  1. How does the new NLU training data without intent labels reflect when I only want to use the NLU module?

no intent label affects core training data, not nlu. So nlu module stays the same and you can use it for intent classification entity extraction and response selection as before

  1. Not related to the training data, I’ve been using MultiProjectImporter for my implementation for the ease of enabling/disabling topics/functionality, how will Rasa 2.0.0 handle this in the future or will it be deprecated?

it should be still supported in 2.0

  1. Related to number 1, will it be possible to have a fully end-to-end episodic response selector for experiment purpose? This might be conflicting with how Rasa works because it use Stories to control dialog, but I sometimes want to try experimental stuff with how established the tracker and data importer in Rasa.

what do you mean? our current response selector will still be supported.

2 Likes

Thank you! I am liking the new format a lot. However when I tried it, rasa complained it couldn’t find responses for my response selector inputs (I moved the responses from responses.md to domain.yml, just like the format ideas topic). Did I do something wrong? I’d really like to see a bot example that utilizes response selector, but none of the examples do.

Thank you for your answer. I understand how the new end-to-end approach works now based on the new story training data format.

the end-to-end approach will allow the mix of user text and intents. From dialogue history point of view, it’ll be the same as now, but it’ll account for text instead of intent if you provided text in your training stories

so for example from this story from the notion page:

  • story: Labeled data is mixed with end-to-end user / bot messages steps:
    • user: | Hi
    • bot: | Hi
    • user: | I want to talk to sales
    • bot: | Sure, we can book a sales call! Let’s get to know each other first :wink:
    • intent: celebrate_bot
    • slot: feedback_value value: positive
    • action: action_tag_feedback
    • action: utter_yey
    • action: utter_anything_else_I_can_help_with

Does it means that it’s possible for the bot to retrieve “Sure, we can book a sales call! Let’s get to know each other first :wink:” or any other response in story.yml file without initialize that response in the domain as utter_something?

what do you mean? our current response selector will still be supported.

What I meant is whether it’s possible to have response selector without intent, fully end-to-end, and the input sequence is [history] + [current_message] that will retrieve possible input just like in research setting for end-to-end retrieval model with Rasa 2.0. This is for me if I want to use my own deep learning model and combine it with Rasa’s system. However, after looking into the 2.0 new story training data format, I think I know what I need to do to achieve it assuming what I ask above is correct. I’ll try to do some experiments on 2.0 then hopefully I can give some feedback.

Thanks

1 Like

When i did a rasa init with below, i see the same old structure?

Rasa Version : 2.0.0a1 Rasa SDK Version : 2.0.0a1 Rasa X Version : None Python Version : 3.7.7 (default, Mar 10 2020, 15:43:33) Operating System : Darwin-19.4.0-x86_64-i386-64bit

Yes, please pull one of the example 2.0 bots from the Notion page Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

1 Like

it’ll be possible from technical point of view, the ability of a model to make correct prediction will depend on your training data

1 Like

Thanks. Where do i find enhancement documentation of each features?

Like here, forms have become very flexible is a new feature of 2.0?

forms:
  - restaurant_form:
      cuisine:
        - type: from_entity
          entity: cuisine
          not_intent: chitchat
      num_people:
        - type: from_entity
          entity: number
          intent: [inform, request_restaurant]
      outdoor_seating:
        - type: from_entity
          entity: seating
        - type: from_intent
          intent: affirm
          value: true
        - type: from_intent
          intent: deny
          value: false
      preferences:
        - type: from_intent
          intent: deny
          value: no additional preferences
        - type: from_text
          not_intent: affirm
      feedback:
        - type: from_entity
          entity: feedback
        - type: from_text