From d47fd92d3be5b3df0ea1352a48a3f4e2cd90c7c3 Mon Sep 17 00:00:00 2001 From: Adrian Klessa <50918271+AdrianKlessa@users.noreply.github.com> Date: Sun, 26 May 2024 21:23:41 +0200 Subject: [PATCH] Verify all required slots are filled before ending conv --- dialog_model.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/dialog_model.py b/dialog_model.py index 0d5b6f1..94a8623 100644 --- a/dialog_model.py +++ b/dialog_model.py @@ -150,10 +150,17 @@ 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 @@ -214,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") @@ -230,7 +242,7 @@ if __name__ == "__main__": response = model("Dobrze, nie mogę się już doczekać.") assert response == "bye" - print("----Testowanie restartu-------") + print("----Konwersacja z restartem-------") model = Model() response = model("Siema, w czym możesz mi pomóc?")