New rasa core workflow


(Benjamin Bossan) #1

For our purposes, we put Rasa Core behind another service (business logic) that is not written in Python and handles several tasks like API calls, hand-off to a human agents, connecting to different channels etc. For that purpose, we treat Rasa Core (running in server mode) as a passive component that the business logic pushes to by using the /parse & /continue endpoints.

With Rasa Core 0.11, these endpoints have been removed and the migration guide says that

Instead of you calling Rasa Core to update the tracker and receive the next action to be executed, Rasa Core will call your action server once it predicted an action

Is it still possible to reconcile this workflow with our architecture? It seems that I could use /respond and update /tracker/events but this doesn’t seem to be a real solution because

  1. /respond is deprecated
  2. Rasa Core tries to contact the action server (which our model doesn’t have nor need)
  3. this approach contradicts the new direction since 0.11.

Now I wonder if or how we can still use Rasa Core as a component that waits to be called instead of it being the active “hub” of the architecture.

(Akela Drissner) #2

Do you not have any custom actions to run? Because if you update to 0.11, you will have to run an action server to run your custom actions

(Benjamin Bossan) #3

The idea is that the Business Logic component is responsible for running the action. We want the Rasa Core component to only predict the next action name (and, to achieve this, to keep track of dialogue state). Everything else is managed by the BL (i.e. handling channels, calling APIs, executing actions). This workflow was supported by versions < 0.11.

(Akela Drissner) #4

Well you would just start the action server within the BL component then, and Rasa will still predict the next action and query it from the action server

(Benjamin Bossan) #5

Still the workflow would not be the same anymore. E.g., previously, the BL would tell Rasa Core which action it performed but now Rasa Core dictates the action and automatically assumes that this action was executed. Sure we could remove this event later in the tracker but that seems to be working against Rasa Core and not with it.

(Akela Drissner) #6

yes rasa_core predicts the next action and the action server is in charge of executing it. You’d have to implement some custom logic in your action server to reject what Core has predicted