diff --git a/dialog_model.py b/dialog_model.py index 887b5e3..94a8623 100644 --- a/dialog_model.py +++ b/dialog_model.py @@ -117,7 +117,12 @@ class DST(dst.DST): elif act == 'request': pass - + elif act == 'restart': + self.state["belief_state"] = default_state()["belief_state"] + self.state["booked"] = {} + self.state["request_state"] = [] + self.state["terminated"] = False + self.state["history"] = [] return self.state @@ -145,10 +150,20 @@ class DP(): # zaoferuj cale menu elif self.state['user_action'][-1] == 'ack': - system_action = 'bye' - self.state['terminated'] = True - # potwierdz i zakoncz, podsumuj zamowienie + address = self.state["belief_state"]["address"] + payment_method = self.state["belief_state"]["payment_method"] + dish = self.state["belief_state"]["dish"] + # W przypadku braku szczegolnej informacji o czasie zamówienia zamawiamy natychmiast + if address and payment_method and dish: + system_action = 'bye' + self.state['terminated'] = True + # potwierdz i zakoncz, podsumuj zamowienie + else: + system_action = 'canthelp.missing_slot_value' + elif self.state['user_action'][-1] == 'restart': + system_action = 'welcomemsg' + # zachowaj sie jak na poczatku rozmowy else: system_action = 'inform' # poinformuj o wybranych slotach z "request_state" @@ -206,6 +221,11 @@ if __name__ == "__main__": response = model("uniwersytetu poznanskiego 4 61-614 poznan") assert response == "inform" + # jezeli sprobuje dokonac zamowienia bez podania potrzebnych informacji prosimy o nie + #response = model("Dobrze, nie mogę się już doczekać.") + response = model("Super, to zatem wszystko!") + assert response == "canthelp.missing_slot_value" + # jezeli wybierze rodzaj platnosci to zapisz wybor i poinformuj o nim # response = model("karta") # response = model("Poproszę blikiem z góry") @@ -222,4 +242,26 @@ if __name__ == "__main__": response = model("Dobrze, nie mogę się już doczekać.") assert response == "bye" - print() + print("----Konwersacja z restartem-------") + + model = Model() + response = model("Siema, w czym możesz mi pomóc?") + assert response == "welcomemsg" + response = model("Interesują mnie dania kuchni włoskiej oraz meksykanskiej.") + assert response == "offer" + response = model("Chciałbym zjesc tatara") + assert response == "inform" + response = model("uniwersytetu poznanskiego 4 61-614 poznan") + assert response == "inform" + response = model("od nowa") + assert response == "welcomemsg" + response = model("Interesują mnie dania kuchni włoskiej oraz meksykanskiej.") + assert response == "offer" + response = model("Chciałbym zjesc tatara") + assert response == "inform" + response = model("uniwersytetu poznanskiego 4 61-614 poznan") + assert response == "inform" + response = model("Zapłacę kartą przy odbiorze") + assert response == "inform" + response = model("Dobrze, nie mogę się już doczekać.") + assert response == "bye" \ No newline at end of file