Skip to content

Releases: RasaHQ/rasa-sdk

2.0.0

07 Oct 13:49
f57e257
Compare
Choose a tag to compare

Deprecations and Removals

  • #246: Using the Form event is
    deprecated. Please use the new ActiveLoop event instead.
    Using the active_form property of the Tracker object is now deprecated. Please
    use the active_loop property instead.

    The usage of the FormAction is deprecated. Please see the migration guide
    for Rasa Open Source 2.0 for instructions how to migrate your FormActions.

  • #250: Removed support for the
    rasa_core_sdk python module: use import rasa_sdk syntax instead.

  • #6463: The FormValidation event
    was renamed to LoopInterrupted as part of Rasa Open Source 2.0. Using the
    FormValidation is now deprecated and will be removed in the future.
    Please use LoopInterrupted instead.

Features

  • #238: Added the method
    slots_to_validate to Tracker. This method is helpful
    when using a custom action to validate slots which were extracted by a
    form as shown by the following example.

    from typing import Text, Dict, List, Any
    from rasa_sdk import Action, Tracker
    from rasa_sdk.events import EventType, SlotSet
    from rasa_sdk.types import DomainDict
    from rasa_sdk.executor import CollectingDispatcher
    
    class ValidateSlots(Action):
        def name(self) -> Text:
            return "validate_your_form"
    
        def run(
            self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: DomainDict
        ) -> List[EventType]:
            extracted_slots: Dict[Text, Any] = tracker.slots_to_validate()
    
            validation_events = []
    
            for slot_name, slot_value in extracted_slots.items():
                # Check if slot is valid.
                if self.is_valid(slot_value):
                    validation_events.append(SlotSet(slot_name, slot_value))
                else:
                    # Return a `SlotSet` event with value `None` to indicate that this
                    # slot still needs to be filled.
                    validation_events.append(SlotSet(slot_name, None))
    
            return validation_events
    
        def is_valid(self, slot_value: Any) -> bool:
            # Implementation of the validate function.
          return True

    Please note that tracker.form_slots_to_validate only works with Rasa Open Source 2.

Improvements

  • #239: Validate user input during
    form activation even if there is an action in between.

  • #246: Rasa Open Source 2.0 renamed
    the Form event to ActiveLoop. The ActiveLoop
    event was added to the SDK and support for the active_loop field in JSON payloads
    was added.

  • #267: The actions package
    in a Rasa project may contain multiple files containing custom
    action code. The Rasa SDK Docker container now loads the entire actions package.

  • #288: Add the FormValidationAction
    abstract class that can be used to validate slots which were extracted by a Form.

    Example:

    from typing import Text, Any, Dict
    from rasa_sdk import FormValidationAction, Tracker
    from rasa_sdk.types import DomainDict
    from rasa_sdk.executor import CollectingDispatcher
    
    class MyFormValidationAction(FormValidationAction):
        def name(self) -> Text:
            return "some_form"
    
        def validate_slot1(
            self,
            slot_value: Any,
            dispatcher: "CollectingDispatcher",
            tracker: "Tracker",
            domain: "DomainDict",
        ) -> Dict[Text, Any]:
            if slot_value == "correct_value":
                return {
                    "slot1": "validated_value",
                }
            return {
                "slot1": None,
            }
  • #6463: Added support for the
    LoopInterrupted event.

Bugfixes

  • #280: tracker.applied_events
    now correctly deals with restart, undo, and rewind events

Miscellaneous internal changes

refs/tags/1.10.3: 1.10.3

23 Sep 13:10
03d0981
Compare
Choose a tag to compare
next micro release

2.0.0a3

31 Aug 14:31
945a97b
Compare
Choose a tag to compare
next release

2.0.0a2

14 Aug 16:18
Compare
Choose a tag to compare
next release

2.0.0a1: Merge pull request #235 from RasaHQ/1.10.x-merge

13 Jul 14:36
6514a8a
Compare
Choose a tag to compare

refs/tags/0.10.2: Merge pull request #224 from RasaHQ/dependabot-pip-flake8-3.8.2

25 Jun 15:27
e8a4e55
Compare
Choose a tag to compare

refs/tags/1.10.1: Merge pull request #213 from RasaHQ/prepare-release-1.10.1

11 May 16:14
f634046
Compare
Choose a tag to compare

1.10.0

28 Apr 10:20
d330491
Compare
Choose a tag to compare
next release

1.9.0

28 Apr 07:58
5f5698d
Compare
Choose a tag to compare

Bugfixes

  • #110: Exit program (python -m rasa_sdk --actions actions or
    rasa run actions --actions actions) if a requested module under the
    --actions command-line option cannot be found.

1.8.1

28 Apr 07:58
ffcd74a
Compare
Choose a tag to compare

Bugfixes

  • #153: Make it possible to use the requests library inside the default Rasa SDK container.