My bot can now check answer and reply if it is correct or not but after that the bot doesn’t continue to next story?
My environment
rasa 2.2.0
rasa-sdk 2.2.0
Docker version 20.10.8, build 3967b7d
Ubuntu 18.04.5 LTS
Domain
version: "2.0"
intents:
- aloita
- vastaus01
- vastaus02
- siirry_diaan_09
- siirry_diaan_10
forms:
kysymys01_form:
vastaus01:
- type: from_text
slots:
vastaus01:
type: text
influence_conversation: false
responses:
utter_ask_vastaus01:
- text: "- Potilaalle on määrätty tyroksiinia 50 mikrogrammaa. Thyroxin tablettien vahvuus on 0,1 mg. Kuinka monta tablettia annat potilaalle? \n- Montako tablettia otat purkista ja annat potilaalle? \n- Kirjoita vastauksesi alle"
utter_kysymys01_oikein:
- text: Hienoa, oikea vastaus! potilas saa oikean annoksen lääkettä.
utter_lopetus:
- text: potilas saa oikean annoksen lääkettä.
image: "https://i.imgur.com/nGF1K8f.jpg"
utter_kysymys01_vaarin:
- text: "- Vastauksesi on väärin, lasketaan yhdessä uudestaan."
utter_kysymys_02:
- text: "- Aloitetaan siitä, että muunnetaan ensin yksiköt samaan yksikköön. \n- Koska potilaalle on määrätty lääkeannos mikrogrammoissa, sinun täytyy muuttaa lääkepurkin vahvuutena oleva milligrammat samaan yksikköön eli mikrogrammoiksi (potilaalle oli määrätty 50 mcg) \n- Purkissa olevan yhden tabletin vahvuus on? mikrogrammaa, kirjoita yksikönmuunnos vastauksesi alle."
utter_kysymys02_oikein:
- text: Hienoa, nyt on oikeat yksiköt laskua varten.
buttons:
- title: " en tiedä"
payload: "/siirry_diaan_09"
- title: " tarkistetaan mikä olikaan potilaalle määrätty annos "
payload: "/siirry_diaan_10"
- title: " annetaan potilaalle 0,05 tablettia"
payload: "/siirry_diaan_09"
utter_dia_09:
- text: Käydäänpä läpi miten yksikönmuunnokset tehdään.
utter_dia_10:
- text: "Käydäänpä läpi miten yksikönmuunnokset tehdään."
utter_kysymys02_vaarin:
- text: Väärin
utter_kysymys_03:
- text: Mikä olikaan potilaalle määrätty annos mikrogrammoina ? Tarvitset tämän tiedon pystyäksesi jatkamaan laskua. kirjoita vastauksesi alle.
utter_kysymys_04:
- text: Eli jos purkissa oleva tabletti on 100 mikrogrammaa ja potilaalle on määrätty 50 mikrogrammaa. Eli kuinka monta tablettia annat?
utter_dia_12:
- text: Kokeillaanpa laskea verranto -laskutavalla. X = kuinka monta tablettia pitää antaa?
utter_kysymys_05:
- text: Lasketaan verranto -laskutavalla /n- Kerrotaan ristiin 100 x X ja 50 x 1 /n- 100x = 50 /n- X = 50/100 /n- X = 0,5 eli ___ tbl /n- kirjoita vastauksesi alle
utter_kysymys05_vaarin:
- text: Katso matikkapirkon video verranto -laskutapa
utter_kysymys04_vaarin:
- text: lisää oikea teksti
utter_dia_13:
- text: tähän kanssa lisää
actions:
- action_tarkista_kysymys_01
- action_tarkista_kysymys_02
- action_tarkista_kysymys_04
- action_tarkista_kysymys_05
session_config:
session_expiration_time: 60
carry_over_slots_to_new_session: true
Actions
from typing import Any, Text, Dict, List
from rasa_sdk.events import SlotSet
from rasa_sdk import Action, Tracker
from rasa_sdk.executor import CollectingDispatcher
from rasa_sdk.types import DomainDict
class kysymyksienTarkistus1(Action):
def name(self) -> Text:
return "action_tarkista_kysymys_01"
def run(
self,
dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
vastaus = tracker.latest_message["text"]
# tarkistetaan onko vastaus oikein
if vastaus == "puolikas":
dispatcher.utter_message(text = "vastaus oikein")
dispatcher.utter_message(template = "utter_kysymys01_oikein")
dispatcher.utter_message(template = "utter_lopetus")
return []
else:
dispatcher.utter_message(text = "vastaus väärin")
dispatcher.utter_message(template = "utter_kysymys01_vaarin")
return []
class kysymyksienTarkistus2(Action):
def name(self) -> Text:
return "action_tarkista_kysymys_02"
def run(
self,
dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
vastaus = tracker.latest_message["text"]
# tarkistetaan onko vastaus oikein
if vastaus == "100":
dispatcher.utter_message(template = "utter_kysymys02_oikein")
return []
else:
dispatcher.utter_message(template = "utter_kysymys02_vaarin")
return []
class kysymyksienTarkistus4(Action):
def name(self) -> Text:
return "action_tarkista_kysymys_04"
def run(
self,
dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
vastaus = tracker.latest_message["text"]
# tarkistetaan onko vastaus oikein
if vastaus == "100":
dispatcher.utter_message(template = "utter_kysymys01_oikein")
return []
else:
dispatcher.utter_message(template = "utter_kysymys04_vaarin")
return []
class kysymyksienTarkistus5(Action):
def name(self) -> Text:
return "action_tarkista_kysymys_05"
def run(
self,
dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
vastaus = tracker.latest_message["text"]
# tarkistetaan onko vastaus oikein
if vastaus == "100":
dispatcher.utter_message(template = "utter_kysymys01_oikein")
return []
else:
dispatcher.utter_message(template = "utter_kysymys05_vaarin")
return []
NLU
version: "2.0"
nlu:
- intent: aloita
examples: |
- aloitus
- aloita
- intent: vastaus01
examples: |
- puolikas
- puoli
- intent: vastaus02
examples: |
- 100
- sata
- intent: siirry_diaan_09
examples: |
- siirry_diaan_09
- intent: siirry_diaan_10
examples: |
- siirry_diaan_10
Stories
version: "2.0"
stories:
- story: aloitus ja kysymys 01
steps:
- intent: aloita
- action: kysymys01_form
# formi kysyy kysymyksen
- active_loop: kysymys01_form
- active_loop: null
# - slot_was_set:
# - requested_slot: null
- action: action_tarkista_kysymys_01
- action: action_restart
- story: lopetus 01
steps:
- action: utter_kysymys01_oikein
- action: utter_lopetus
- story: kysymys 2
steps:
- action: utter_kysymys01_vaarin
- action: utter_kysymys_02
- intent: vastaus02
- action: action_tarkista_kysymys_02
- action: utter_kysymys02_oikein
- story: Valinta a ja c 01
steps:
- intent: siirry_diaan_09
- action: utter_dia_09
- action: utter_kysymys_02
- intent: vastaus02
- action: action_tarkista_kysymys_02
- action: utter_kysymys02_oikein
- story: Dia 10 ja kysymys 04
steps:
- intent: siirry_diaan_10
- action: utter_dia_10
- action: utter_kysymys_04
- intent: vastaus01
- action: action_tarkista_kysymys_04
- story: Kysymys 03 ja 04
steps:
- action: utter_kysymys02_vaarin
- action: utter_kysymys_03
- action: utter_kysymys_04
- intent: vastaus01
- action: action_tarkista_kysymys_04
- story: Kysymys 04
steps:
- action: utter_kysymys_04
- intent: vastaus01
- action: utter_kysymys04_vaarin
- action: utter_dia_12
- action: utter_dia_13
- story: kysymys 05
steps:
- action: utter_kysymys04_vaarin
- action: utter_dia_12
- action: utter_dia_13
- action: utter_kysymys_05
- intent: vastaus01
- action: action_tarkista_kysymys_05
- story: Kysymys 5 uudestaan
steps:
- action: utter_kysymys05_vaarin
- action: utter_kysymys_05
- intent: vastaus01
- action: action_tarkista_kysymys_05
Rules
version: "2.0"
rules:
- rule: Activate form
steps:
- intent: aloita
- action: kysymys01_form
- active_loop: kysymys01_form
- rule: Submit form
condition:
- active_loop: kysymys01_form
steps:
- action: kysymys01_form
- active_loop: null
- slot_was_set:
- requested_slot: null
- action: action_tarkista_kysymys_01
- action: action_restart