sklep-internetowy-systemy-d.../chatbot/modules/strategy.py
2024-06-11 01:56:44 +02:00

24 lines
1.1 KiB
Python

from modules.nlu import UserAct, Slot
from numpy.random.mtrand import random
class DialoguePolicy:
def __init__(self, dst):
self.dialogue_state = dst.state
def next_action(self):
if not self.dialogue_state['belief_state']['order-complete']:
user_intent = self.dialogue_state['act']
if user_intent == "inform":
empty_slot = dst.find_first_empty_slot()
return UserAct(intent="request", slots=[Slot(name=empty_slot, value='')])
if user_intent == "request":
if self.dialogue_state['slot_names']:
slot = random.choice(self.state['slot_names'])
return UserAct(intent="inform", slots=[Slot(name=slot, value='')])
else:
return UserAct(intent="inform", slots=[Slot(name='unknown', value='')])
if user_intent == "bye":
return UserAct(intent="bye", slots=[Slot(name='', value='')])
else:
return UserAct(intent= "inform", slots=[Slot(name='confirmation', value='Zamówienie złożono poprawnie.')])