Rasa Skill

A Rasa wrapper implementation that reads a folder with Rasa models (provided by path_to_models argument), initializes Rasa Agent with this configuration and responds for incoming utterances according to responses predicted by Rasa. Each response has confidence value estimated as product of scores of executed actions by Rasa system in the current prediction step (each prediction step in Rasa usually consists of multiple actions). If Rasa responds with multiple BotUttered actions, then such phrases are merged into one utterance divided by '\n'.

Quick Start

To setup a Rasa Skill you need to have a working Rasa project at some path, then you can specify the path to Rasa’s models (usually it is a folder with name models inside the project path) at initialization of Rasa Skill class by providing path_to_models attribute.

Dummy Rasa project

DeepPavlov library has a template config for RASASkill. This project is in essence a working Rasa project created with rasa init and rasa train commands with minimal additions. The Rasa bot can greet, answer about what he can do and detect user’s mood sentiment.

The template DeepPavlov config specifies only one component (RASASkill) in a pipeline. The configuration also specifies: metadata.requirements which is the file with Rasa dependency and metadata.download configuration specifies to download and unpack the gzipped template project into subdir {DOWNLOADS_PATH}.

If you create a configuration for a Rasa project hosted on your machine, you don’t need to specify metadata.download and just need to correctly set path_to_models of the rasa_skill component. path_to_models needs to be a path to your Rasa’s models directory.

See Rasa’s documentation for explanation on how to create project.

Usage without DeepPavlov configuration files

from deeppavlov.agents.default_agent.default_agent import DefaultAgent
from deeppavlov.agents.processors.highest_confidence_selector import HighestConfidenceSelector
from deeppavlov.skills.rasa_skill.rasa_skill import RASASkill

rasa_skill_config = {
    'path_to_models': <put the path to your Rasa models>,
}

rasa_skill = RASASkill(**rasa_skill_config)
agent = DefaultAgent([rasa_skill], skills_selector=HighestConfidenceSelector())
responses = agent(["Hello"])
print(responses)