Version: 3.x

rasa.shared.core.training_data.structures

EventTypeError Objects

class EventTypeError(RasaCoreException, ValueError)

Represents an error caused by a Rasa Core event not being of the expected type.

Checkpoint Objects

class Checkpoint()

Represents places where trackers split.

This currently happens if

  • users place manual checkpoints in their stories
  • have or statements for intents in their stories.

__init__

def __init__(name: Text, conditions: Optional[Dict[Text, Any]] = None) -> None

Creates Checkpoint.

Arguments:

  • name - Name of the checkpoint.
  • conditions - Slot conditions for this checkpoint.

filter_trackers

def filter_trackers(
trackers: List[DialogueStateTracker]) -> List[DialogueStateTracker]

Filters out all trackers that do not satisfy the conditions.

StoryStep Objects

class StoryStep()

A StoryStep is a section of a story block between two checkpoints.

NOTE: Checkpoints are not only limited to those manually written in the story file, but are also implicitly created at points where multiple intents are separated in one line by chaining them with "OR"s.

__init__

def __init__(block_name: Text,
start_checkpoints: Optional[List[Checkpoint]] = None,
end_checkpoints: Optional[List[Checkpoint]] = None,
events: Optional[List[Union[Event, List[Event]]]] = None,
source_name: Optional[Text] = None) -> None

Initialise StoryStep default attributes.

as_story_string

def as_story_string(flat: bool = False, e2e: bool = False) -> Text

Returns a story as a string.

is_action_unlikely_intent

@staticmethod
def is_action_unlikely_intent(event: Event) -> bool

Checks if the executed action is a action_unlikely_intent.

is_action_session_start

@staticmethod
def is_action_session_start(event: Event) -> bool

Checks if the executed action is a action_session_start.

explicit_events

def explicit_events(domain: Domain,
should_append_final_listen: bool = True) -> List[Event]

Returns events contained in the story step including implicit events.

Not all events are always listed in the story dsl. This includes listen actions as well as implicitly set slots. This functions makes these events explicit and returns them with the rest of the steps events.

RuleStep Objects

class RuleStep(StoryStep)

A Special type of StoryStep representing a Rule.

get_rules_condition

def get_rules_condition() -> List[Union[Event, List[Event]]]

Returns a list of events forming a condition of the Rule.

get_rules_events

def get_rules_events() -> List[Union[Event, List[Event]]]

Returns a list of events forming the Rule, that are not conditions.

add_event_as_condition

def add_event_as_condition(event: Event) -> None

Adds event to the Rule as part of its condition.

Arguments:

  • event - The event to be added.

Story Objects

class Story()

from_events

@staticmethod
def from_events(events: List[Event],
story_name: Optional[Text] = None) -> "Story"

Create a story from a list of events.

StoryGraph Objects

class StoryGraph()

Graph of the story-steps pooled from all stories in the training data.

__hash__

def __hash__() -> int

Return hash for the story step.

Returns:

Hash of the story step.

fingerprint

def fingerprint() -> Text

Returns a unique hash for the stories which is stable across python runs.

Returns:

fingerprint of the stories

ordered_steps

def ordered_steps() -> List[StoryStep]

Returns the story steps ordered by topological order of the DAG.

cyclic_edges

def cyclic_edges() -> List[Tuple[Optional[StoryStep], Optional[StoryStep]]]

Returns the story steps ordered by topological order of the DAG.

merge

def merge(other: Optional["StoryGraph"]) -> "StoryGraph"

Merge two StoryGraph together.

overlapping_checkpoint_names

@staticmethod
def overlapping_checkpoint_names(cps: List[Checkpoint],
other_cps: List[Checkpoint]) -> Set[Text]

Find overlapping checkpoints names.

with_cycles_removed

def with_cycles_removed() -> "StoryGraph"

Create a graph with the cyclic edges removed from this graph.

order_steps

@staticmethod
def order_steps(
story_steps: List[StoryStep]) -> Tuple[deque, List[Tuple[Text, Text]]]

Topological sort of the steps returning the ids of the steps.

topological_sort

@staticmethod
def topological_sort(
graph: Dict[Text, Set[Text]]) -> Tuple[deque, List[Tuple[Text, Text]]]

Creates a top sort of a directed graph. This is an unstable sorting!

The function returns the sorted nodes as well as the edges that need to be removed from the graph to make it acyclic (and hence, sortable).

The graph should be represented as a dictionary, e.g.:

>>> example_graph = { ... "a": set("b", "c", "d"), ... "b": set(), ... "c": set("d"), ... "d": set(), ... "e": set("f"), ... "f": set()} >>> StoryGraph.topological_sort(example_graph) (deque([u'e', u'f', u'a', u'c', u'd', u'b']), [])

is_empty

def is_empty() -> bool

Checks if StoryGraph is empty.

__repr__

def __repr__() -> Text

Returns text representation of object.

generate_id

def generate_id(prefix: Text = "", max_chars: Optional[int] = None) -> Text

Generate a random UUID.

Arguments:

  • prefix - String to prefix the ID with.
  • max_chars - Maximum number of characters.

Returns:

Generated random UUID.