Conv restart act + verify required slots filled before conv end #1
@ -117,7 +117,12 @@ class DST(dst.DST):
|
|||||||
|
|
||||||
elif act == 'request':
|
elif act == 'request':
|
||||||
pass
|
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
|
return self.state
|
||||||
|
|
||||||
|
|
||||||
@ -145,10 +150,20 @@ class DP():
|
|||||||
# zaoferuj cale menu
|
# zaoferuj cale menu
|
||||||
|
|
||||||
elif self.state['user_action'][-1] == 'ack':
|
elif self.state['user_action'][-1] == 'ack':
|
||||||
|
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'
|
system_action = 'bye'
|
||||||
self.state['terminated'] = True
|
self.state['terminated'] = True
|
||||||
# potwierdz i zakoncz, podsumuj zamowienie
|
# 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:
|
else:
|
||||||
system_action = 'inform'
|
system_action = 'inform'
|
||||||
# poinformuj o wybranych slotach z "request_state"
|
# poinformuj o wybranych slotach z "request_state"
|
||||||
@ -206,6 +221,11 @@ if __name__ == "__main__":
|
|||||||
response = model("uniwersytetu poznanskiego 4 61-614 poznan")
|
response = model("uniwersytetu poznanskiego 4 61-614 poznan")
|
||||||
assert response == "inform"
|
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
|
# jezeli wybierze rodzaj platnosci to zapisz wybor i poinformuj o nim
|
||||||
# response = model("karta")
|
# response = model("karta")
|
||||||
# response = model("Poproszę blikiem z góry")
|
# response = model("Poproszę blikiem z góry")
|
||||||
@ -222,4 +242,26 @@ if __name__ == "__main__":
|
|||||||
response = model("Dobrze, nie mogę się już doczekać.")
|
response = model("Dobrze, nie mogę się już doczekać.")
|
||||||
assert response == "bye"
|
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"
|
Loading…
Reference in New Issue
Block a user