Chatbot for Education - advise on architecture pls

Hi, can you advise on the concept of educational chatbot/assistant? Pls, try to think it through, we plan to put a working solution open-source (or maybe as RASA Demo :slight_smile:

We use RASA for standard chatbot, but now we need to integrate it with an external source of utterances and dialog logics (EDU SW). The plan is to solve standard questions and dialogs with RASA, but educational parts (lessons, quizzes) by EDU SW. Users will have standard RASA Sender_ID.

Any time, EDU SW has to be able to send to any user(s) message (e.g. on Monday 3 p.m. “Hi, got some training for you…”) and set slot edu_lesson1=true. Then, if there is a response message from user, the first policy will be custom (of EDU SW), deciding if the response is answer to the question from the lesson:

  • if yes, the utterance must be provided by EDU SW (e.g. next question),
  • if not, an utterance will be decided by NLU+Core.

We need to maintain educational logics out of RASA (in EDU SW), because there are constant changes to user statuses, courses and logics.

QUESTIONS:

  • Any similar working solution?

  • How to send messages to the user without his interaction (e.g. 2nd reminder a day after initial invitation) and have these messages in TrackerStore history with utterance and slots? Is Reminder a reliable solution for this? (user can respond in meantime or ask a question not connected to the lesson)?

  • Is it better to connect EDU SW through custom Policy or through Rule Policy calling Custom action if slot edu_lesson=true? Is there danger that RASA will select a response from another Policy? (evaluate another policy as better answer)?

  • Any relevant suggestions or tips?

Thanks in advance