forked from s151636/Generic_DialogSystem
Added promotion prompt
This commit is contained in:
parent
145cd06a16
commit
01046d677f
24
system3.py
24
system3.py
@ -8,9 +8,23 @@ class DialogManager:
|
|||||||
self.nlu_module = nlu_module
|
self.nlu_module = nlu_module
|
||||||
self.dst_module = dst_module
|
self.dst_module = dst_module
|
||||||
|
|
||||||
|
def promotion(self):
|
||||||
|
r = random.randint(1, 4)
|
||||||
|
if r == 1:
|
||||||
|
promotion = "Mamy dzisiaj w promocji ser!"
|
||||||
|
elif r == 2:
|
||||||
|
promotion = "Aktualnie w promocji mamy jabłka!"
|
||||||
|
elif r == 2:
|
||||||
|
promotion = "Mleko w super cenie! Tylko dzisiaj!"
|
||||||
|
elif r == 2:
|
||||||
|
promotion = "Chipsy na imprezę w promocji!"
|
||||||
|
return promotion
|
||||||
|
|
||||||
def start_dialog(self):
|
def start_dialog(self):
|
||||||
self.dst_module.update_state([]) # Zerowanie stanu dialogowego
|
self.dst_module.update_state([]) # Zerowanie stanu dialogowego
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
user_input = input("Użytkownik: ")
|
user_input = input("Użytkownik: ")
|
||||||
|
|
||||||
@ -60,6 +74,9 @@ class DialogManager:
|
|||||||
response = "Nie rozumiem. Czym mogę Ci pomóc?"
|
response = "Nie rozumiem. Czym mogę Ci pomóc?"
|
||||||
|
|
||||||
print("Agent:", response)
|
print("Agent:", response)
|
||||||
|
i += 1
|
||||||
|
if i % 5 == 0:
|
||||||
|
print("Agent:", self.promotion())
|
||||||
|
|
||||||
def generate_response(self, dialog_state):
|
def generate_response(self, dialog_state):
|
||||||
# Logika generowania odpowiedzi na podstawie stanu dialogowego
|
# Logika generowania odpowiedzi na podstawie stanu dialogowego
|
||||||
@ -122,12 +139,12 @@ class DialogStateTracker:
|
|||||||
product_type_rules = {
|
product_type_rules = {
|
||||||
"pieczywo": ["chleb", "bułka", "bulka", "bułki", "bulki", "rogaliki", "rogalika", "bagietka", "bagietkę", "bagietke", "bagietki"],
|
"pieczywo": ["chleb", "bułka", "bulka", "bułki", "bulki", "rogaliki", "rogalika", "bagietka", "bagietkę", "bagietke", "bagietki"],
|
||||||
"owoce": ["jabłko", "jablko", "banana", "gruszkę", "gruszke", "pomarańczę","pomarancze"],
|
"owoce": ["jabłko", "jablko", "banana", "gruszkę", "gruszke", "pomarańczę","pomarancze"],
|
||||||
"warzywa": ["marchewkę", "marchewke", "ziemniaki", "cebulę", "cebule", "pomidory", "pomidora"],
|
"warzywa": ["marchewkę", "marchewke", "ziemniak", "cebulę", "cebule", "pomidory", "pomidora"],
|
||||||
"mięso": ["kurczaka", "wołowinę", "wolowine", "wieprzowinę", "wieprzowine", "indyka"],
|
"mięso": ["kurczaka", "wołowinę", "wolowine", "wieprzowinę", "wieprzowine", "indyka"],
|
||||||
"produkty mrożone": ["lody", "frytki", "pierogi", "nuggetsy"],
|
"produkty mrożone": ["lody", "frytki", "pierogi", "nuggetsy"],
|
||||||
"słodycze": ["czekoladę", "czekolade","czekolady", "ciastko", "lizaka", "gumę do żucia", "gume do zucia"],
|
"słodycze": ["czekoladę", "czekolade","czekolady", "ciastko", "lizaka", "gumę do żucia", "gume do zucia", "chipsy"],
|
||||||
"przyprawy": ["sól", "sol", "pieprz", "oregano", "cynamon"],
|
"przyprawy": ["sól", "sol", "pieprz", "oregano", "cynamon"],
|
||||||
"napoje": ["wodę", "wode", "sok", "herbatę", "herbate", "kawę", "kawe", "napój energetyczny", "napoj energetyczny"],
|
"napoje": ["wodę", "wode", "sok", "herbatę", "herbate", "kawę", "kawe", "energetyka"],
|
||||||
"napoje alkoholowe": ["piwo", "wino", "wódkę","wodke", "whisky"],
|
"napoje alkoholowe": ["piwo", "wino", "wódkę","wodke", "whisky"],
|
||||||
"higiena": ["pastę do zębów", "paste do zebow", "mydło", "mydlo", "szampon", "papier toaletowy"],
|
"higiena": ["pastę do zębów", "paste do zebow", "mydło", "mydlo", "szampon", "papier toaletowy"],
|
||||||
"chemia gospodarcza": ["płyn do naczyń", "plyn do naczyn", "proszek do prania", "odświeżacz powietrza", "odswiezacz powietrza"],
|
"chemia gospodarcza": ["płyn do naczyń", "plyn do naczyn", "proszek do prania", "odświeżacz powietrza", "odswiezacz powietrza"],
|
||||||
@ -166,6 +183,7 @@ class NLU:
|
|||||||
elif token.lower_ in ["nie", "nie chcę"]:
|
elif token.lower_ in ["nie", "nie chcę"]:
|
||||||
acts.append(DialogAct("deny"))
|
acts.append(DialogAct("deny"))
|
||||||
elif token.pos_ == "NOUN":
|
elif token.pos_ == "NOUN":
|
||||||
|
print(token.lemma_)
|
||||||
product_type, product = self.find_product_type(token.lemma_)
|
product_type, product = self.find_product_type(token.lemma_)
|
||||||
if product_type and product:
|
if product_type and product:
|
||||||
act = DialogAct("inform", {"product type": product_type, "product": product})
|
act = DialogAct("inform", {"product type": product_type, "product": product})
|
||||||
|
Loading…
Reference in New Issue
Block a user