Compare commits
41 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
6f828ae7b9 | ||
|
089bdbf538 | ||
500da9c328 | |||
9acd22ad47 | |||
6f85c18b3a | |||
4971cad14b | |||
d4ec71ded2 | |||
94009ca585 | |||
1ebeeada8c | |||
97e6648649 | |||
79cb013d4d | |||
0a9e2e5e1b | |||
fe7547e9c5 | |||
6d6fb0220a | |||
1d80a72e2c | |||
560eefbdbf | |||
f6b5f29d86 | |||
598a08a915 | |||
65738525ae | |||
dc3034b7a8 | |||
906a322921 | |||
5ab4ae755a | |||
53d7b2d6f5 | |||
bb7584042a | |||
6ab5587c39 | |||
0e62239196 | |||
681f202f58 | |||
807a5b288e | |||
ea1af2f6b7 | |||
8c8dc2bf2d | |||
1c4d6393b8 | |||
95148d9765 | |||
9cf07d4b3a | |||
cbac403eb0 | |||
33e37f275d | |||
bd88d53dc8 | |||
d60d15a56d | |||
c9c6866aea | |||
3f5a825fae | |||
|
2fe5e7a799 | ||
|
9699a10614 |
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +0,0 @@
|
||||
.idea/
|
||||
__pycache__/
|
@ -1,18 +0,0 @@
|
||||
SystemActType = dict(
|
||||
affirm='affirm',
|
||||
bye='bye',
|
||||
canthear='canthear',
|
||||
confirm_domain='confirm-domain',
|
||||
negate='negate',
|
||||
repeat='repeat',
|
||||
reqmore='reqmore',
|
||||
welcomemsg='welcomemsg',
|
||||
canthelp='canthelp',
|
||||
canthelp_missing_slot_value='canthelp.missing_slot_value',
|
||||
expl_conf='expl-conf',
|
||||
impl_conf='inform-conf',
|
||||
inform='infomr',
|
||||
offer='offer',
|
||||
request='request',
|
||||
select='select'
|
||||
)
|
@ -1,23 +0,0 @@
|
||||
UserActType = dict(
|
||||
ack='ack',
|
||||
affirm='affirm',
|
||||
bye='bye',
|
||||
hello='hello',
|
||||
help='help',
|
||||
negate='negate',
|
||||
null='null',
|
||||
repeat='repeat',
|
||||
requalts='requalts',
|
||||
reqmore='reqmore',
|
||||
restart='restart',
|
||||
silence='silence',
|
||||
thankyou='thankyou',
|
||||
confirm='confirm',
|
||||
deny='deny',
|
||||
inform='inform',
|
||||
request='request',
|
||||
order='order',
|
||||
delivery='delivery',
|
||||
payment='payment',
|
||||
price='price'
|
||||
)
|
36
dialog-01-02-01.tsv
Normal file
36
dialog-01-02-01.tsv
Normal file
@ -0,0 +1,36 @@
|
||||
user dzien dobry chcialem zlozyc zamowienie hello()
|
||||
system witamy, czy ma pan juz cos upatrzonego? welcomemsg()
|
||||
user wlasnie nie, co moze pani mi polecic request(recommendation)
|
||||
system posiadamy szeroką bazę pizz i burgerów inform(recommendation=['pizza', 'burgers'])
|
||||
user ten burger brzmi dobrze, jakie tam macie? request(info='burger')
|
||||
system wolowe, wieprzowe, kurczak inform(burgers_meat=['wołowe', 'wieprzowe', 'kurczak'])
|
||||
user ok a jakie dodatki do tego? czy jest tylko jeden rodzaj request(burgers_addons)
|
||||
system dodatki mozliwe: pomidor, cebula, salata, maslo orzechowe, krazki cebulowe, sos szpinakowy, sos czonskowy, sos bbq, oliwki, ser plesniowy, camembert inform(burgers_addons=['pomidor', 'cebula', 'salata', 'maslo orzechowe', 'krazki cebulowe', 'sos szpinakowy', 'sos czonskowy', 'sos bbq', 'oliwki', 'ser plesniowy', 'camembert'])
|
||||
user ok to taki zestaw z maslem orzechowym co jeszcze w sobie ma request(burgers_addons='masło orzechowe')
|
||||
user no halo pani kelner restart()
|
||||
user dobra to chce takiego ze wszystkimi dodatkami inform(burgers_addons='all')
|
||||
system dobrze, jakei mieso? request(burgers_meat)
|
||||
user wolowe inform(burgers_meat='wołowe')
|
||||
system 60 złotych, czas oczekiwania 40 minut inform(order_price='60zł', coocking_time='40 min')
|
||||
system cos jeszcze? request(anything_else)
|
||||
user k***a ile??? deny(order)
|
||||
user za tyle to ja nie chce deny(order)
|
||||
system z kurczakiem wyjdzie 50 inform(burgers_meat='kurczak', price='50')
|
||||
system zł inform(price_unit='zł')
|
||||
user nie chce z kurczakiem deny(burgers_meat='kurczak')
|
||||
user nie macie jakichs burgerow w normalnej cenie? request(burger='in avarage price')
|
||||
system build your own burger, prosze ograniczyc dodatki, to cena się zmiejszy, najdrozsze 3 : ser plesniowy, camembert, sos szpinakowy inform(burger_type='build your own type', price_of_addons(3)=['ser pleśniowy', 'camembert', 'sos szpinakowy'])
|
||||
user jezu no dobra confirm(order=['build your own burger'])
|
||||
user pomidor cebula salata maslo orzechowe i jakis sos ile to bedzie kosztowac inform(burgers_addons=['pomidor', 'cebula', 'sałata', 'masło orzechowe', 'random_sauce'])
|
||||
system 30 złotych inform(order_price='30 zł')
|
||||
user niech będzie confirm(order)
|
||||
system coś jeszcze? np picie request(anything_else)
|
||||
user nie dziękuję deny(anything_else)
|
||||
system na miejscu, na wynos, odbiór? select(delivery=['na miejscu', 'na wynos', 'odbiór'])
|
||||
user na dowóz nie ma? request(delivery='na dowóz')
|
||||
system przepraszam, jest opcaja na dowoz confirm(delivery='na dowóz')
|
||||
user ok to na dowóz confirm(delivery='na dowóz')
|
||||
user adres xxxxxxxxxxxxxxxxxxxxxx inform(delivery_adress='xxxxxxxxxxxxxxxxxxxxxx')
|
||||
system czas oczekiwania 1h 30 minut inform(delivery_time='1h 30 min')
|
||||
user ok confirm(delivery_time)
|
||||
system Dziekuję i polecamy sie na przyszlosc bye()
|
Can't render this file because it has a wrong number of fields in line 18.
|
12
dialog-01-04-01.tsv
Normal file
12
dialog-01-04-01.tsv
Normal file
@ -0,0 +1,12 @@
|
||||
user Witaj hello()
|
||||
system witaj w restauracji pizza, czy chciałbyś cos zamówic? welcomemsg()
|
||||
user Chciałbym zamówić pizzę z 4 serami inform(order=['pizzę z 4 serami'])
|
||||
system 35 złtych inform(price='35zł')
|
||||
system na wynos, na miejscu, odbiór? request(delivery)
|
||||
user Na miejscu inform(delivery='na miejscu')
|
||||
system Jaki adres? request(adres)
|
||||
user Na miejscu inform(delivery='na miejscu')
|
||||
system pizza bedzie gotowa za 45 minut inform('45 minut')
|
||||
system coś jeszcze? request(anything_else)
|
||||
user To wszystko deny(anything_else)
|
||||
system Dziekujęmy. polecamy sie na przyszłość bye()
|
|
20
dialog-01-06-01.tsv
Normal file
20
dialog-01-06-01.tsv
Normal file
@ -0,0 +1,20 @@
|
||||
user witam hello()
|
||||
system witam w restauracji pi-zza, Czy chciałbym pan u nas coś zamówić? request(order)
|
||||
user Dzień dobry. Jestem na redukcji, liczba kalorii które mogę jeszcze dzisiaj spożyć to okolice 600 kcal. Co może mi pan zaproponowac? hello()&request(max_kcal='600')
|
||||
system pizza fit 24cm ser rukola pomidory feta offer(pizza)
|
||||
system 499 kcal inform(kcal)
|
||||
user poproszę. Czy aby dobić kalorie znajdzie się jeszcze jakiś deser? confirm(pizza)&request(deser, kcal)
|
||||
system tak deser fit 100 kcal 25g białka, waniliowy offer(deser)
|
||||
user świetnie, proszę dodaj go do zamówienia confirm(deser)
|
||||
system łacznie 32 złote infrom(price)
|
||||
system pasuje to panu? request(confirm)
|
||||
user czy panstwa restauracja oferuje jakies znizki? request(discounts)
|
||||
system studencka 10% infrom(discounts='students')
|
||||
user poproszę confirm(discounts='students')
|
||||
system cena promocyjna 28.8 zł, cena regularna: 32zł. przy odbiorze, proszę pokazać aktywna legitymacje, inaczej naliczona zostanie cena regularna inform(price, price_discount, discount_conditions)
|
||||
system na wynos, odbior dostawa? request(delivery)
|
||||
user poproszę odbior osobisty inform(delivery)
|
||||
system potwierdzam zamowienie. danie gotowe bedzie za 35 minut. czy moge jakos jeszcze pomoc? confirm(order)&inform(coocking_time)&request(anything_else)
|
||||
user nie, to wszystko dziękuję deny(anything_else)
|
||||
system do widzenia bye()
|
||||
user nara bye()
|
Can't render this file because it has a wrong number of fields in line 12.
|
10
dialog-01-08-01.tsv
Normal file
10
dialog-01-08-01.tsv
Normal file
@ -0,0 +1,10 @@
|
||||
user Dzień dobry hello()
|
||||
system dzien dobry, witam w restauracji pi-zza, czy chciałby pan u nas cos zamowic? welcomemsg()
|
||||
user Dzień dobry, jaka jest najpopularniejsza pizza w waszej restauracji? hello()&request(most_popular_pizza)
|
||||
system Vercilana gromanesco - orzechy wloskie, ocet balsamiczny, rukola, camembert infrom(most_popular_pizza)
|
||||
user Poproszę 2 takie pizze. I do tego wodę niegazowaną. inform(order=['Vercilana gromanesco', 'Vercilana gromanesco', 'still water'])
|
||||
system 95 złotych inform(order_price)
|
||||
system na miejscu, na wynos, odbiór? request(delivery)
|
||||
user Z odbiorem osobistym inform(delivery='odbiór')
|
||||
system Da będzie gotowe w ciągu 45 minut. Dziękujemy za zaufanie do naszej restauracji. inform(cooking_time)&bye()
|
||||
user Dobrze, dziękuję bye()
|
|
14
dialog-01-09-01.tsv
Normal file
14
dialog-01-09-01.tsv
Normal file
@ -0,0 +1,14 @@
|
||||
user Dzień dobry hello()
|
||||
system dzien dobry, witamy w piz-zerii. W czym mozemy służyć? welcomemsg()
|
||||
user Chciałabym zamówić pizzę, Margharitę inform(order=['margharita'])
|
||||
system duza, srednia, mała? select(size_of_pizza=['mała', 'średnia', 'duża'])
|
||||
user duża inform(size_of_pizza='duża')
|
||||
user na miejscu inform(delivery='na miejscu')
|
||||
system dobrze, cos do picia? request(something_to_drink)
|
||||
user czy jest dostępna lemoniada? reqest(drink='lemioniada')
|
||||
system tak, z miętą confirm(drink='lemoniada')
|
||||
user to poproszę confirm(something_to_drink='lemoniada')
|
||||
system dobrze, 50 złotych, czas oczekiwania 40 minut confirm(order)&inform(order_price='50zł, cooking_time='40 minut')
|
||||
user dobrze, dziękuję bardzo confirm(order)
|
||||
system do widzenia bye()
|
||||
user Do widzenia bye()
|
|
0
dialog-01-10-01.tsv
Normal file
0
dialog-01-10-01.tsv
Normal file
|
0
dialog-01-12-01.tsv
Normal file
0
dialog-01-12-01.tsv
Normal file
|
21
dialog-01-14-01.tsv
Normal file
21
dialog-01-14-01.tsv
Normal file
@ -0,0 +1,21 @@
|
||||
user Dzień dobry hello()
|
||||
system Witamy w restauracji pi-zza! czy Chiałbym pan cos u nas zamówic? welcomemsg()
|
||||
user Czy oferujecie coś poza pizzą? request(menu-pizza)
|
||||
system mamy bogaty asortyment przystawek oraz burgerów infrom(menu=['przystawki', 'burgery'])
|
||||
user A jakie napoje macie do wyboru? request(drinks)
|
||||
system cola, woda, pepsi, fanta select(drinks=['cola', 'woda', 'pepsi', 'fanta'])
|
||||
user a czy sprzedają państwo piwo? request(drinks='beer')
|
||||
system niestety, nie sprzedajemy alkoholi deny(drinks='beer')
|
||||
user Tragedia! 8 butelek coli oraz małe frytki request(drinks='cola', quantity='8')
|
||||
user Poproszę confirm(drinks)
|
||||
system zrozumialem, cos jeszcze do tego? inform(anything_else)
|
||||
user Czy ketchup do frytek jest darmowy? request(ketchup_price)
|
||||
system tak, sól też inform(ketchup_price, salt_price)
|
||||
user w takim razie myślę że to wszystko affirm()
|
||||
system na miejscu, odbiór czy dowoz select(delivery=['na miejscu', 'odbiór', 'dowóz'])
|
||||
user dowóz na Morasko na wydział matematyki i informatyki poprosze, sala d1 inform(delivery='dowóz', adres='Morasko na wydział matematyki i informatyki poprosze, sala d1')
|
||||
system płatnosc online czy przy odbiorze? select(payment_method=['online', 'przy odbiorze'])
|
||||
user Przy odbiorze inform(payment_method='przy odbiorze')
|
||||
system dla potwierdzenia, 8 coli 0,5 litra, 1 małe frytki, ketchup i sol, 72 złote confirm(order=['8 cocla 0,5l', '1 małe frytki', 'ketchup', 'sól'])&inform(order_price='70 zł')
|
||||
user Dobrze, dziękuję bardzo confirm(order)&bye
|
||||
system potwierdzam zamowienie, polecamy sie an przyszłość bye()
|
Can't render this file because it has a wrong number of fields in line 16.
|
0
dialog-01-16-01.tsv
Normal file
0
dialog-01-16-01.tsv
Normal file
|
18
dialog-01-18-01.tsv
Normal file
18
dialog-01-18-01.tsv
Normal file
@ -0,0 +1,18 @@
|
||||
user Dzień dobry, chciałbym złożyć zamówienie hello()
|
||||
system dzien dobry! czy ma pan juz wybrane danie, lub polecic coś panu? welcomemsg()
|
||||
user Czy posiadają Państwo zupę dnia? request(soup_of_the_day)
|
||||
system tak, rybna z owocami morza inform(soup_of_the_day)
|
||||
user Jakie owoce morza wchodzą w skład? request(ingridients=soup_of_the_day)
|
||||
system małże oraz homary inform(ingridients=soup_of_the_day)
|
||||
user Jezus, to ile kosztuje ta zupa? request(price)
|
||||
system 50 złotych porcja inform(price)
|
||||
user Zdecydowanie za drogo... chciałbym dobrze zjeść, ale tanio infrom(too_expensive)&request(cheap_meal)
|
||||
system najtansza pozycja u nas to frytki belgisjkie 14,99zł inform(cheap_meal)
|
||||
user Ale czy tym się najem? request(cheap_meal_filling)
|
||||
system to zalezy od pana inform(cheap_meal_filling)
|
||||
user Dobrze, w takim razie poproszę frytki belgijskie z sosem 1000 wysp inform(order=['frytki belgijskie', 'sos 1000 wysp'])
|
||||
user I małą colę inform(order=['frytki belgijskie', 'sos 1000 wysp', ])
|
||||
system 27,99 zł inform(order_price)
|
||||
user super confirm(order)
|
||||
user to wszystko z mojej strony. Czekam na zamówienie. infrom(thats_all)
|
||||
system Dziekujemy, polceamy sie na przyszłosc bye()
|
Can't render this file because it has a wrong number of fields in line 4.
|
33
dialog-02-01-01.tsv
Normal file
33
dialog-02-01-01.tsv
Normal file
@ -0,0 +1,33 @@
|
||||
system Dzień dobry, witamy w restauracji pi-zza w czym mogę pomóc welcomemsg()
|
||||
user dzien dobry, chciałbym dowiedziec sie, jakie dania są w waszym menu request(menu)
|
||||
system W menu posiadamy pozycje pizz w wielu smakach i rozmiarach inform(menu)
|
||||
system Czy ma Pan na coś dzisiaj szczególną ochotę? request(predispositions)
|
||||
user tak confirm(predispositions)
|
||||
system a na co request(predispositions)
|
||||
user hmmm..... małże inform(predispositions=['małże'])
|
||||
system obawiam się, że w ofercie nie posiadamy takiego produktu deny(predispositions=['małże'])
|
||||
user a homara? inform(predispositions=['homer'])
|
||||
system obawiam się że również nie deny(predispositions=['homer'])
|
||||
user dobrze. w takim razie czy posiadaja panstwo certyfikat avpn request(certificate=avpn)
|
||||
system obawiam się że nie posiadamy takiego certyfikatu deny(certificate=avpn)
|
||||
user rozumie, w takim razie chcaiłbym pizze z krązkami cebulowymi inform(predispositions=['pizza z krążkami cebulowymi'])
|
||||
user sa takie w ofercie? request(predispositions)
|
||||
system nie mamy natomiast możemy taką przygotować dla Pana confirm(predispositions)
|
||||
system czy mają się na niej znaleźć jakieś dodatkowe składniki? request(additional_ingredients)
|
||||
user dobrze, mozarella salami i kukurydza confrim(additional_ingredients)&inform(additional_ingredients=['mozarella', 'salami', 'kukurydza'])
|
||||
system oczywiście, pizza mała czy duża? confirm(additional_ingredients)&select(size_of_pizza=['mała', 'duża'])
|
||||
user duza inform(size_of_pizza='duża')
|
||||
system dobrze czy coś oprócz tego? request(anything_else)
|
||||
user cole inform(order=['custom_pizza', 'cola'])
|
||||
system oczywiście, zatem pizza z dodatkowym salami i kukurydzą oraz cola, czy to wszystko? affirm(order=['custom_pizza', 'cola'])
|
||||
user tak confirm(order)
|
||||
system czy zamowienie na miejscu na dowoz czy na wynos select(delivery=['na miejscu', 'na dowóz', 'na wynos'])
|
||||
user dowoz inform(delivery='na dowóz')
|
||||
user ulica xgh 24 inform(adres='ulica xgh 24')
|
||||
system oczywiscie, platnosc online czy przy odbiorze select(payment=['online', 'przy odbiorze'])
|
||||
user przy odbiorze, akceptujecie kamienie szlachetne? inform(payment='przy odbiorze')&request(payment_method='kamienie szlachetne')
|
||||
system obawiam się że nie, płatność akceptujemy jedynie w polskich złotych deny(ppayment_method='kamienie szlachetne')
|
||||
user w takim razie przy odbiorze karta inform(payment_method='karta płatnicza')
|
||||
system oczywiście, czas oczekiwania wynosi do godziny inform(cooking_time='1h')
|
||||
user to czekam, do widzenia ack(cooking_time='1h')&bye()
|
||||
system do widzenia bye()
|
Can't render this file because it has a wrong number of fields in line 6.
|
13
dialog-02-03-01.tsv
Normal file
13
dialog-02-03-01.tsv
Normal file
@ -0,0 +1,13 @@
|
||||
user dzień dobry hello()
|
||||
system Dzień dobry, w czym mogę pomóc? welcomemsg()
|
||||
user chciałbym zamówić pizzę pepperoni, sos czosnkowy i wodę niegazowaną inform(order=['pizza_pepperoni','garlic_sauce','water'])
|
||||
system oczywiście, czy będzie to na miejscu, na dowóz czy na wynos? affirm()&select(receive=['for_here','to_go','delivery'])
|
||||
user na wynos inform(receive='to_go')
|
||||
system dobrze, zamówienie będzie gotowe do odbioru za 50 minut affirm()&inform(wait_time='50 minutes')
|
||||
system płatność internetowo czy na miejscu? select(payment=['online','on_receipt'])
|
||||
user online inform(payment='online')
|
||||
system przesyłam odnosnik do platności online request
|
||||
user czekam już 20 minut inform(wait_time='too_long')
|
||||
user anuluję zamówienie inform(order='cancel')
|
||||
user to skandal null()
|
||||
system dobrze, przepraszamy za niedostateczna jakosc obslugi affirm()&sorry()
|
Can't render this file because it has a wrong number of fields in line 3.
|
19
dialog-02-11-01.tsv
Normal file
19
dialog-02-11-01.tsv
Normal file
@ -0,0 +1,19 @@
|
||||
user chciałbym zamówić coś do picia inform(order='drink')
|
||||
system oczywiście, polecamy lemoniadę affirm()&offer('lemonade')
|
||||
user w jakiej cenie?? request(price)
|
||||
system szklanka za 6 zł dzbanek za 16 zł inform(price=['lemonade_glass','lemonade_jug'])
|
||||
user a jakie sa dania główne? request()
|
||||
system oferujemy pizze oraz inne dania kuchni włoskiej inform(menu=['pizza','italian_cuisine'])
|
||||
user w jakiej cenie pizza? request(price='pizza')
|
||||
system zależy od zamówienia lecz jest to w przedziale 20-35zł inform(price='pizza')
|
||||
user która kosztuje najmniej? request(product='pizza', price='cheapest')
|
||||
system najmniej kosztuje pizza margherita, w jej skład wchodzi ciasto ser i sos pomidorowy inform(product='pizza_margherita')
|
||||
user w takim razie jedna margherita plus szklanka lemoniady request(order=['pizza_margherita','lemonade'])
|
||||
system dobrze, czy zamowienie na miejscu na dowoz czy na wynos affirm()&select(receive=['for_here','to_go','delivery'])
|
||||
user na dowoz głogowska 8080/100. ile musze czekać? inform(receive='delivery', address='głogowska 8080/100')&request(wait_time)
|
||||
system czas oczekiwania wynosi do godziny, płatność online czy przy odbiorze inform(wait_time='1 hour')&select(payment=['online','on receipt'])
|
||||
user płatność online inform(payment='online')
|
||||
system dobrze, przesyłam odnośnik do płatności online, koszt zamowienia wynosi 26 zł affirm()&inform(price='26 zł')
|
||||
user płacę null()
|
||||
system dziękuję, płatność zarejestrowano affirm()&inform(payment='successful')
|
||||
system dziękuję za zamówienie w naszej restauracji, do widzenia i życzę smacznego bye()
|
Can't render this file because it has a wrong number of fields in line 4.
|
20
dialog-02-13-01.tsv
Normal file
20
dialog-02-13-01.tsv
Normal file
@ -0,0 +1,20 @@
|
||||
user cześć hello()
|
||||
system Dzień dobry, witamy w restauracji PI-zza, w czym mogę pomóc? welcomemsg()
|
||||
user chcialabym zamowic pizze inform(order='pizza')
|
||||
system dobrze, czy będzie to na miejscu, na dowóz czy na wynos? affirm()&select(receive=['for_here','to_go','delivery'])
|
||||
user na miejscu inform(receive='for_here')
|
||||
system na ile osób zarezerwować stolik? request(number_of_people)
|
||||
user dla 2 inform(number_of_people=2)
|
||||
system oczywiście, na jakie nazwisko i godzinę zapisać rezerwację? affirm()&request(name, hour)
|
||||
user nazwisko XXXX i na godzine GG:MM inform(name='XXXX',hour='XX:XX')
|
||||
system zarejestrowano rezerwację. Jakie jest zatem Pani zamówienie? affirm()&request(order)
|
||||
user pizza inform(order='pizza')
|
||||
system czy ma może Pani jakieś dodatkowe preferencje? Jeśli nie możemy polecić pizzę vesuvio reqmore()&offer(order='pizza_vesuvio')
|
||||
user z szynka i kukurydza inform(extra_ingredients=['ham','corn'])
|
||||
system czy ma być mała czy duża? select(size=['small','large'])
|
||||
user duza inform(size='large')
|
||||
system dobrze, czy może chcą Państwo coś do picia? Polecamy lemoniadę offer(order='lemonade')
|
||||
user poprosze 2 inform(order='lemonade'*2)
|
||||
system 2 lemoniady? oczywiście. zatem duża pizza z dodatkową szynka i kukurydza oraz dwie lemoniady, czy to wszystko? affirm&inform(order)
|
||||
user tak ack()
|
||||
system dobrze, zamówienie będzie zatem przygotowane na godzinę podaną w rezerwacji, dziękuję i do zobaczenia. bye()
|
|
18
dialog-02-15-01.tsv
Normal file
18
dialog-02-15-01.tsv
Normal file
@ -0,0 +1,18 @@
|
||||
user Dzień dobry hello()
|
||||
system Dzień dobry, w czym mogę pomóc? welcomemsg()
|
||||
user Chciałbym zamówić danie z kuchni tajskiej, czy oferują państwo ten rodzaj kuchni w swoim menu? request(menu='thai_cuisine')
|
||||
system obawiam się że oferujemy jedynie pizze i inne dania kuchni włoskiej negate(menu='thai_cuisine')&inform(menu=['pizza','italian_cuisine'])
|
||||
user Dobrze w takim razie chciałbym zamówić spaghetti inform(order='spaghetti')
|
||||
system oczywiście, małe czy duże affirm()&select(size=['small','big'])
|
||||
user Poproszę duże inform(size='big')
|
||||
system dobrze, czy będzie to na miejscu, na dowóz czy na wynos? affirm()&select(receive=['for_here','to_go','delivery'])
|
||||
user Poproszę o zamówienie na wynos, adres Gwarna 5 Poznań. inform([receive='to_go',address='Gwarna 5 Poznań'])
|
||||
system dobrze, płatność online czy przy odbiorze? affirm()&select(payment=['online','on_receipt'])
|
||||
user Przy odbiorze inform(payment='on_receipt')
|
||||
system dobrze zatem duże spaghetti na dowóz z płatnościa, przy odbiorze, czy to już wszystko? affirm&reqmore()
|
||||
user Tak dziękuję. affirm()&thankyou()
|
||||
system Dobrze, dziękuję. Czas oczekiwania na zamówienie wynosi do godziny affirm()&inform(wait_time='1 hour')
|
||||
user Jaki jest całkowity koszt zamówienia? request(price)
|
||||
system koszt zamówienia wynosi xx złotych inform(price)
|
||||
user Okej dziękuję to wszystko. thankyou()&bye()
|
||||
system Dziękuję i do widzenia bye()
|
|
23
dialog-02-17-01.tsv
Normal file
23
dialog-02-17-01.tsv
Normal file
@ -0,0 +1,23 @@
|
||||
user Dzień dobry hello()
|
||||
system Dzień dobry, w czym mogę pomóc? welcomemsg()
|
||||
user Chciałbym zapytać o danie dnia, jakie jest dzisiaj? request()
|
||||
system Pizza Vesuvio mała i zupa pomidorowa offer(product=['pizza_vesuvio','tomato_soup'])
|
||||
user A z jakich składników składa się pizza??? request(ingredients='pizza_vesuvio')
|
||||
system pizza oprócz składników podstawowych jakimi jest ciasto, ser i sos pomidorowy zawiera także szynkę i pieczarki inform(ingredients='pizza_vesuvio')
|
||||
user O to super null()
|
||||
user proszę w taki razie o 2 pizze vesuvio inform(order=['pizza vesuvio','pizza vesuvio'])
|
||||
user czy jest możliwość dodatkowych składnikow? request(extra_ingredients)
|
||||
system jak najbardziej affirm()
|
||||
user poproszę w takim razie z podwójną ilością pieczarek oraz do picia lemoniadę inform(extra_ingredients='mushrooms')&inform(order='lemonade')
|
||||
system oczywiście, czy będzie to na miejscu, na dowóz czy na wynos? affirm()&select(receive=['for_here','to_go','delivery'])
|
||||
user Z odbiorem osobistym inform(receive='to_go')
|
||||
user na nazwisko Kowalski inform(name='Kowalski')
|
||||
system dobrze, zamówienie będzie gotowe do odbioru za 50 minut, płatność internetowo czy na miejscu? affirm()&inform(time='50 minutes')&select(payment=['online','on receipt'])
|
||||
user Czy jest możliwość za pomocą apple pay? request(payment='apple pay')
|
||||
system jak najbardziej, przesyłam link affirm()
|
||||
user Bardzo dziękuję thankyou()
|
||||
user Opłacono confirm(payment)
|
||||
system Dobrze, zatem 2 pizze vesuvio z dodatkowymi pieczarkami i lemoniada na godzinę xx:xx, czy to wszystko? inform(order),reqmore()
|
||||
user Tak to wszystko confirm()
|
||||
user płatność gotówką z odbiorem osobistym inform(payment='on receipt', receive='to_go')
|
||||
system zamówienie zostało już opłacone inform(payment='confirmed')
|
|
18
dialog-02-19-01.tsv
Normal file
18
dialog-02-19-01.tsv
Normal file
@ -0,0 +1,18 @@
|
||||
user Dzień dobry hello()
|
||||
system Dzień dobry, w czym mogę pomóc? welcomemsg()
|
||||
user Czy mógłbym u pana złożyć zamówienie? request(order='possible')
|
||||
system jak najbardziej affirm()
|
||||
user Swietnie, czy macie dzisiaj coś godne polecenia? Zupa lub danie dnia? request(offer)
|
||||
system w polecanych mamy pizzę vesuvio oraz zupę krem z pomidorów offer(order=['pizza_vesuvio','tomato_soup'])
|
||||
user Poproszę pizze Vesuvio oraz Cole inform(order=['pizza_vesuvio','cola'])
|
||||
system oczywiście, czy będzie to na miejscu, na dowóz czy na wynos? affirm()&select(receive=['for_here','to_go','delivery'])
|
||||
user na wynos podjadę za około 30 min? Zdążycie? inform(receive='to_go')&request(time='30 minutes')
|
||||
system obawiam się że nie, zamówienie może być gotowe najprędzej za 50 minut z uwagi dużego obłożenia negate()&inform(time='50 minutes')
|
||||
user w porządku 50 min jest okej confirm()
|
||||
system dobrze. na jakie nazwisko zamówienie? request(name)
|
||||
user Nazwisko Kowalski inform(name='Kowalski')
|
||||
system dobrze zatem pizza vesuvio oraz cola na godzine xx:xx inform(order)
|
||||
system zamowienie wynosi xx złotych, platnosc online czy na miejscu? inform(price='xx zł')&select(payment=['online','on_receipt'])
|
||||
user Na miejscu inform(payment='on_receipt')
|
||||
system dobrze, to zatem wszystko, dziekujemy za zamowienie w naszej restauracji i do zobaczenia affirm()&bye()
|
||||
user Dziekuje bardzo thankyou()
|
|
13
dialog-03-02-01.tsv
Normal file
13
dialog-03-02-01.tsv
Normal file
@ -0,0 +1,13 @@
|
||||
user dzień dobry hello()
|
||||
system Dzień dobry, w czym mogę pomóc? welcomemsg()
|
||||
user chciałbym zamówić pizzę pepperoni, sos czosnkowy i wodę niegazowaną inform(order=['pizza_pepperoni','garlic_sauce','water'])
|
||||
system oczywiście, czy będzie to na miejscu, na dowóz czy na wynos? affirm()&select(receive=['for_here','to_go','delivery'])
|
||||
user na wynos inform(receive='to_go')
|
||||
system dobrze, zamówienie będzie gotowe do odbioru za 50 minut affirm()&inform(wait_time='50 minutes')
|
||||
system płatność internetowo czy na miejscu? select(payment=['online','on_receipt'])
|
||||
user online inform(payment='online')
|
||||
system przesyłam odnosnik do platności online request
|
||||
user czekam już 20 minut inform(wait_time='too_long')
|
||||
user anuluję zamówienie inform(order='cancel')
|
||||
user to skandal null()
|
||||
system dobrze, przepraszamy za niedostateczna jakosc obslugi affirm()&sorry()
|
|
41
dialog-03-04-01.tsv
Normal file
41
dialog-03-04-01.tsv
Normal file
@ -0,0 +1,41 @@
|
||||
user Dzień dobry.
|
||||
system Dzień dobry, jak masz na imię?
|
||||
user Piotr
|
||||
system Piotrze, witaj w restauracji PIzza. W czym mogę Ci pomóc?
|
||||
user Chciałbym zamówić pizzę
|
||||
system Czy znasz nasze menu i jesteś zdecydowany na konkretne danie?
|
||||
user nie znam, co mi jesteś w stanie zaproponować?
|
||||
system Wybierasz wariant z mięsem czy wegetariański?
|
||||
user z mięsem
|
||||
system Polecam pizzę nr 3 z szynką i pieczarkami.
|
||||
user prosiłbym o inną propozycję, bo nie lubię pieczarek
|
||||
system Rozumiem, polecam zatem pizzę z szynką i kukurydzą. Czy ten wariant Ci odpowiada?
|
||||
user tak!
|
||||
system Świetnie. Zamawiasz na miejscu czy na wynos?
|
||||
user na miejscu
|
||||
system Czy siedzisz już przy stoliku?
|
||||
user tak, stolik nr 12
|
||||
system Pizza z szynką i kukurydzą. Na miejscu - stolik nr 12. Cena 29,99 PLN. Korzystasz dziś z naszej specjalnej promocji. Oczekiwany czas realizacji zamówienia to 28'. Czy akceptujesz?
|
||||
user nie
|
||||
user poproszę jeszcze o sos czosnkowy
|
||||
system Sos czosnkowy w cenie 2.99 PLN za 100ml, czy akceptujesz?
|
||||
user tak
|
||||
system Świetnie, pozwól, że podeślę podsumowanie zamówienia: Pizza z szynką i kukurydzą - cena 29,99 PLN, Sos czosnkowy - cena 2.99 PLN. Łącznie: 32,98 PLN czy akceptujesz?
|
||||
user tak
|
||||
system Jaką metodę płatności wybierasz?
|
||||
user gotówka
|
||||
system Masz odliczoną kwotę czy powinniśmy przygotować się na wydanie od większego nominału?
|
||||
user mam 100 zł w jednym banknocie
|
||||
system Damy radę.
|
||||
system Przyjąłem zamówienie. Za kilka chwil nasz pracownik zgłosi się do Ciebie, aby rozliczyć transakcję.
|
||||
system Przybliżony czas realizacji to 15'. Możemy zaczynać?
|
||||
user tak
|
||||
system Super, przyjąłem zamówienie. Nasza kuchnia już się nim zajmuje.
|
||||
system Za chwilę zgłosi się do Ciebie pracownik, aby rozliczyć płatność.
|
||||
user super, dziekuje
|
||||
system To ja dziękuję, czy mogę jeszcze cos dla Ciebie zrobić?
|
||||
user nie, dziekuję
|
||||
system Dziękuję za odwiedziny. Od teraz obsługę przejmie nasz pracownik.
|
||||
system Jak oceniasz naszą komunikację dzisiaj?
|
||||
user 11/10
|
||||
system Bardzo dziękuję. Zawsze pracujemy na 110%.
|
|
24
dialog-03-06-01.tsv
Normal file
24
dialog-03-06-01.tsv
Normal file
@ -0,0 +1,24 @@
|
||||
user dzień dobry
|
||||
system Dzień dobry, jestem automatycznym systemem do zamawiania potraw w restauracji. W czym mogę pomóc?
|
||||
user chciałbym zamówić pizzę pepperoni
|
||||
system Moja restauracja nie słynie z kuchni tradycyjnych, takich jak polska, włoska czy chińska. Reprezentuję firmę McZiomals, która oferuje głównie dania typu fast-food. W ofercie firmy znajdują się dodatkowo napoje oraz desery.
|
||||
user dobrze, to poproszę burgera
|
||||
system Nie jestem pewny jaką kanapkę typu burger masz na myśli. Oto dostępne burgery w naszej restauracji: Hamburger Cheeseburger Big Mac® McRoyal® WieśMac® McChicken® Jalapeño Burger Chikker® Red Chikker McDouble® Podwójny McRoyal® Podwójny WieśMac® McWrap® Klasyczny Chrupiący Kurczak 1McWrap® Bekon DeLuxe Chrupiący Kurczak
|
||||
user poproszę McChickena
|
||||
system Dopisano pozycję McChicken do Twojej listy. Czy chciałabyś dodać coś jeszcze?
|
||||
user frytki
|
||||
system Rozumiem, że chciałbyś dodać do swojej listy frytki. Oto co mogę ci zaproponować: Frytki małe, Frytki średnie, Frytki duże
|
||||
user poproszę duże frytki
|
||||
system Dopisano pozycję duże frytki do Twojej listy. Czy chciałabyś dodać coś jeszcze?
|
||||
user dużą fante
|
||||
system Dopisano pozycję duża Fanta do Twojej listy. Czy chciałabyś dodać coś jeszcze?
|
||||
user nie, dziękuję
|
||||
user to wszystko
|
||||
system Rozumiem, że Twoje zamówienie jest zakończone. Oto możliwe sposoby odbioru jedzenia: odbiór osobisty, dostawa
|
||||
system Sumarycznie Twoje zamówienie na ten moment wynosi 13,69zł.
|
||||
user dostawa
|
||||
system Wybrałeś dostawę do domu. Proszę o podanie adresu, na który nasza restauracja powinna dostarczyć zamówienie.
|
||||
user Ulica Towarowa 22/61 Poznań
|
||||
system Rozumiem, że ulica na którą mamy dostarczyć zamówienie to ulica Towarowa 22/61. Dostawą Twojego zamówienia zajmie się nasz doręczyciel Ahmed. Jedzenie powinno być w Twoich rękach za 30 minut.
|
||||
system Dziękujemy za korzystanie z naszych usług.
|
||||
user dziękuję!
|
|
11
dialog-03-08-01.tsv
Normal file
11
dialog-03-08-01.tsv
Normal file
@ -0,0 +1,11 @@
|
||||
user dzień dobry
|
||||
system Witam w systemie do składania zamówień w McDonalds. W czym mogę pomóc?
|
||||
user chciałbym zamówić 9 nuggetsów, frytki i fante
|
||||
user i sos BBQ
|
||||
system Dodałem Sos BBQ oraz Kurczak McNuggets® (9 szt.) z frytkami i fantą w zestawie do zamówienia. Czy coś na deser?
|
||||
user nie dziekuje
|
||||
system Czy podać coś jeszcze?
|
||||
user nie dziękuję
|
||||
system Za Sos BBQ oraz Kurczak McNuggets® (9 szt.) z frytkami i fantą w zestawie w zestawie będzie razem 21,40 zł. Czas oczekiwania na dostawę wynosi około 40 min. Czy potwierdzić zamówienie?
|
||||
user tak
|
||||
system Zamówienie potwierdzone. Płatność za zamówienie u dostawcy. Czy mogę pomóc w czymś jeszcze?
|
|
12
dialog-03-10-01.tsv
Normal file
12
dialog-03-10-01.tsv
Normal file
@ -0,0 +1,12 @@
|
||||
user dzień dobry
|
||||
system Witam w restauracji XYZ, w czym mogę pomóc?
|
||||
user chciałbym zamówić pizzę
|
||||
system Jasne pizze które dziś serwujemy to: 4 sery, Caprichioza, Rzeźnicka, Marinara
|
||||
user poproszę pizzę 4 sery
|
||||
system Pizza 4 sery - 35 zł
|
||||
system Czy chcesz zamówić coś jeszcze?
|
||||
user nie, to wszystko
|
||||
system Ok wolisz odebrać zamówienie czy skorzystać z dowozu?
|
||||
user chcę odebrać zamówienie
|
||||
system Ok w takim razie proszę o podanie godziny odbioru i życzymy smacznego!
|
||||
user 20:30
|
|
10
dialog-03-12-01.tsv
Normal file
10
dialog-03-12-01.tsv
Normal file
@ -0,0 +1,10 @@
|
||||
user dzień dobry
|
||||
system Witam w restauracji XYZ, czym mogę służyć?
|
||||
user chciałbym zamówić carbonare
|
||||
system Oczywiście, natomiast chciałbym polecić również danie dnia - krem z pomidorów.
|
||||
user nie dziękuję
|
||||
system Czy coś do picia do tego?
|
||||
user co mają państwo do zaoferowania?
|
||||
system woda, lemoniada, herbata zimowa, piwo bezalkoholowe, cola zero, sprite zero
|
||||
user poproszę lemoniade
|
||||
system Już przynoszę
|
|
13
dialog-03-14-01.tsv
Normal file
13
dialog-03-14-01.tsv
Normal file
@ -0,0 +1,13 @@
|
||||
user dzień dobry
|
||||
system Witamy w systemie rezerwacji pokoi hotelowych.
|
||||
user chciałbym zarezerwować pokój dwuosobowy na dni 25-28 marca 2023
|
||||
system Dobrze, w jakiej miejscowości chciałby Pan zarezerwować pokój?
|
||||
user w Poznaniu
|
||||
system Dobrze czy ma Pan jeszcze dodatkowe wymagan... autorstwa Maciej Tyczyński
|
||||
user balkon w pokoju, bar w hotelu
|
||||
system Dobrze, czy zainteresuje Pana 4 gwiazdkowy hotel xyz znajdujący się 2 km od rynku, który posiada balkon, bar oraz wliczone śniadanie w cenę?
|
||||
user zależy ile kosztuje
|
||||
system Hotel xyz kosztuje 220 zł za dobę.
|
||||
user brzmi dobrze
|
||||
system Dobrze, rezerwacja w hotelu xyz na termin 25.03.23 - 28.03.23 została zrobiona. Numer rezerwacji 987654321
|
||||
user dziękuję
|
|
11
dialog-03-18-01.tsv
Normal file
11
dialog-03-18-01.tsv
Normal file
@ -0,0 +1,11 @@
|
||||
user dzień dobry
|
||||
system Dzień dobry, co by Pan sobie życzył zamówić?
|
||||
user chciałbym zamówić pizzę hawajską
|
||||
system Dobrze, życzy Pan sobie jakieś sosy?
|
||||
user tak, 2 sosy czosnkowe
|
||||
system Jasne, coś do picia?
|
||||
user fante
|
||||
system Dobrze, to wszystko ?
|
||||
user tak
|
||||
system Dobrze, w takim razie dziękuję za złożenie zamówienia. W razie wątpliwości, lub pytań proszę pisać.
|
||||
user dziękuję
|
|
20
dialog-04-01-01.tsv
Normal file
20
dialog-04-01-01.tsv
Normal file
@ -0,0 +1,20 @@
|
||||
user witaj hello()
|
||||
system Witaj, co Cię do nas sprowadza? welcomemsg()
|
||||
user Chciałbym zamówić pizze inform(order='pizza')
|
||||
user czy posiada pan certyfikat avpn request(certificate='avpn')
|
||||
user ? null()
|
||||
system Mamy pyszne pizze w ofercie. Czy znasz nasze menu czy coś zaproponować? request(menu_is_known)
|
||||
user nie znam inform(menu_is_known=false)
|
||||
system Niestety nie wiem co to certyfikat avpn deny(certificate='avpn')
|
||||
system Ale mogę zapewnić, że nasi pracownicy zrobią wszystko, żeby przygotować przepyszne danie. confirm(quality='the best')
|
||||
user rozumiem, a jaka pan poleca? confirm(quality='the best')&request(recommended_dish)
|
||||
system Wolisz z mięsem czy wege? request(recommended_dish='with meat or without')
|
||||
user miesne inform(recommended_dish='with meat')
|
||||
system Proponuję pizzę z szynką i ananasem za 39,99 PLN inform(recommended_dish='pizza hawajska')
|
||||
user potrójna szynka i bez ananasa inform(order=['pizza hawajska'], order_no_ingredients=['ananas'], order_additional_ingredients='3x szynka')
|
||||
user dodatkowo ser inform(order_additional_ingredients=['ser'])
|
||||
system Zatem zmieniam na kompozycję własną: pizza margeritta + 3x szynka i dodatkowy ser. Cena: 89,99 PLN. Czy akceptujesz? confirm(order)&inform(order_price)&request(acceptation)
|
||||
user za drogo, rezygnuje z zamówienia inform(too_expensive, drop_order)
|
||||
system Rozumiem. Czy chcesz zostawić swój e-mail, abym mógł poinformować Cię o przyszłych promocjach? confirm(drop_order)&reqest(email_permmision)
|
||||
user nie, do widzenia deny(email_permmision)&bye()
|
||||
system Do widzenia i zapraszamy ponownie! bye()
|
|
12
dialog-04-03-01.tsv
Normal file
12
dialog-04-03-01.tsv
Normal file
@ -0,0 +1,12 @@
|
||||
user Witaj
|
||||
user Kim jesteś?
|
||||
system Dzień dobry. Witam w restauracji PIzza. W czym mogę pomóc?
|
||||
user Chciałbym zamówić pizzę z mięsem
|
||||
user Co możesz polecić?
|
||||
system Dostępne pozycje w menu spełniające podane kryteria to: pepperoni, napoli, BBQ bacon
|
||||
user Napoli poproszę
|
||||
system Rozmiar średni
|
||||
user Bez sosów i bez napoju.
|
||||
user Czy oferujecie dostawę w Poznaniu?
|
||||
system Pizza Napoli średnia została dodana do zamówienia.
|
||||
system Oczywiście, dostawa w Poznaniu jest dostępna. Proszę wskazać adres dostawy.
|
|
12
dialog-06-01-01.tsv
Normal file
12
dialog-06-01-01.tsv
Normal file
@ -0,0 +1,12 @@
|
||||
user Witaj, Czy polecasz jakaś pizze dzisiaj? hello()&request(recomendation_dish='pizza')
|
||||
system Moja restauracja nie słynie z kuchni tradycyjnych, takich jak polska, włoska czy chińska. Reprezentuję firmę McZiomals, która oferuje głównie dania typu fast-food, w których niestety nie ma pizzy. deny(recomendation_dish='pizza')
|
||||
user rozumiem, jakie fast foody posiadacie? request(menu)
|
||||
system Oto oferta, którą posiadamy w naszym menu: https://cdn.mcdonalds.pl/uploads/20230308152915/349194-tabela-wo-9-03-2022-mop-1.pdf?openOutsideMcd=true offer(menu)
|
||||
user jeden sShake o maku czekoladowym oraz McRoyal inform(order=['shake o smaku czekoladowym', 'McRoyal'])
|
||||
system Dopisano pozycję Shake o smaku czekoladowym oraz kanapka McRoyal do Twojej listy. Czy chciałabyś dodać coś jeszcze? confirm(order=['shake o smaku czekoladowym', 'McRoyal'])*request(anything_else)
|
||||
user nie deny(anything_else)
|
||||
system Rozumiem, że Twoje zamówienie jest zakończone. Oto możliwe sposoby odbioru jedzenia: obiór osobisty, dostawa confirm(order)&select(delivery=['odbiór osobisty', 'dostawa'])
|
||||
user dostawa inform(delivery='dostawa')
|
||||
system Bardzo dziękuję za złożenie zamówienia. Sumarycznie Twoje zamówienie kosztuje 13,69zł. Wybrałeś dostawę do domu. Proszę o podanie adresu, na który nasza restauracja powinna dostarczyć zamówienie. inform(order_price='13,69 zł')&confirm(order=['shake o smaku czekoladowym', 'McRoyal'], delivery='dostawa')&request(adres)
|
||||
user ulica uhn 12 inform(adres='uhn 12')
|
||||
system ozumiem, że ulica na którą mamy dostarczyć zamówienie to ulica uhn 12. Dostawą Twojego zamówienia zajmie się nasz doręczyciel Ahmed. Jedzenie powinno być w Twoich rękach za 30 minut. Dziękujemy za korzystanie z naszych usług. confirm(adres='uhn 12')&inform(delivery_driver='Ahmed', delivery_time='30 min')&bye()
|
|
11
dialog-06-03-01.tsv
Normal file
11
dialog-06-03-01.tsv
Normal file
@ -0,0 +1,11 @@
|
||||
system Witaj w restauracji PIzza. W czym mogę Ci pomóc?
|
||||
user hej, jestem na masie, chciałbym zjeść coś wysokokalorycznego z możliwie największą ilością białka. Co możesz mi zaproponować?
|
||||
system Proponuję pizzę mięsną. Jest to najbardziej kaloryczna pizza z naszego menu. Czy akceptujesz?
|
||||
user jakie mięso mam do wyboru?
|
||||
system Głównym składnikiem pizzy mięsnej jest kurczak. Istnieje możliwość zamiany tego składnika na szynke pepperoni lub wołowinę.
|
||||
user Poproszę pizzę z kurczakiem.
|
||||
system Pizza mięsna została dodana do listy. Czy chciałbyś dodać coś jeszcze?
|
||||
user To wszystko.
|
||||
system Świetnie. Zamawiasz na miejscu czy na wynos?
|
||||
user Poproszę na miejscu.
|
||||
system Wyśmienicie! Twoje danie zaraz zostanie przygotowane. Przybliżony czas oczekiwania to 20 minut.
|
|
19
dialog-08-01-01.tsv
Normal file
19
dialog-08-01-01.tsv
Normal file
@ -0,0 +1,19 @@
|
||||
user dzien dobry, jakie jest wasze menu? hello()
|
||||
system Witam w systemie do składania zamówień w McDonalds. Oto nasze menu: https://mcdonalds.pl/nasze-menu/. welcomemsg()
|
||||
user a jest mozłiwość potrójnego macwieśniaka? request(dish='potrójny macwieśniak')
|
||||
system Niestety nie. W naszej ofercie mamy tylko zwykłego WieśMaca oraz Podwójnego WieśMaca. deny(dish='potrójny macwieśniak')&offer(dish=['zwykły WieśMac', 'Podwójny WieśMac'])
|
||||
user no to podwójnego wiesmaka inform(dish='podwójny WieśMac')
|
||||
system Dodano Podwójnego WieśMaca do zamówienia. Czy zrobić z tego zestaw za 5,90 zł? confirm(dish='podwójny WieśMac')&offer(zestaw_price='5,90 zł')
|
||||
user tak confirm(zestaw_price)
|
||||
system Do zestawu dodać frytki czy sałatkę? select(zestaw=['frytki', 'sałatka'])
|
||||
user frytki inform(zestaw='frytki')
|
||||
system Dobrze, jaki napój podać w zestawie? request(zestaw=['drink'])
|
||||
user hmm nie deny(zestaw=['drink'])
|
||||
user to wszystko inform(over)
|
||||
system Niestety muszę wiedzieć jaki napój podać w zestawie, który zamówiono. Dostępne opcje to: Cola, Cola Zero, Fanta, Sprite, Woda i Lipton IceTea. deny(over)&select(drink=['cola', 'cola zero', 'fanta', 'sprite', 'water', 'lipton icetea'])
|
||||
user Lipton inform(drink='')
|
||||
system Za Podwójnego WieśMaca z frytkami i Lipton IceTea w zestawie będzie razem 21,40 zł. Czas oczekiwania na dostawę wynosi około 40 min. Czy potwierdzić zamówienie? confirt(order=['podwójny Wieśmak', 'frytki', 'liptom tea'])&inform(order_price='21,40 zł', delivery_time='40 min')
|
||||
user tak confirm(order, order_price, delivery_time)
|
||||
system Zamówienie potwierdzone. Płatność za zamówienie u dostawcy kartą lub gotówką. Czy mogę pomóc w czymś jeszcze? inform(pyment_method)&request(anything_else)
|
||||
user to wszystko, do widzenia deny(anything_else)&bye()
|
||||
system Do widzenia bye()
|
|
5
dialog-08-03-01.tsv
Normal file
5
dialog-08-03-01.tsv
Normal file
@ -0,0 +1,5 @@
|
||||
user Dzień dobry
|
||||
system Dzień dobry. Witam w restauracji PIzza. W czym mogę pomóc?
|
||||
user Czy jakąś macie pizzę z grillowanymi warzywami?
|
||||
system Niestety nie ma w naszym menu pizzy z grillowanymi warzywami. Czy ma Pan ochotę na inną pizzę?
|
||||
user W takim razie dziękuję
|
|
17
dialog-09-01-01.tsv
Normal file
17
dialog-09-01-01.tsv
Normal file
@ -0,0 +1,17 @@
|
||||
user Dzień dobry, jakie danie pani poleca? hello()&request(recomendation_dish)
|
||||
system Dzień dobry, dzisiaj polecam pizzę oraz krem pomidorowy. welcomemsg()&inform(recomendation_dish)
|
||||
user myśle, ze pizza to jest to. Czy maja panstwo pizze z serem pleśniowym? confirm(pizza)&request(pizza_additional_ingredients='ser pleśniowy')
|
||||
system Tak, mamy confirm(pizza_additional_ingredients='ser pleśniowy')
|
||||
user oo, z jakimi skladnikami? request(pizza_ingredients)
|
||||
system sos pomidorowy, ser mozarella, gruszka karmelizowana, ser pleśniowy oraz rukola inform(pizza_ingredients=['sos pomidorowy', 'ser mozarella', 'ser pleśniowy', 'rukola'])
|
||||
user dobrze, własnie taka chciałem confirm(pizza_ingredients)
|
||||
system a jaki rozmiar pizzy, średnia czy duża? select(pizza_size=['średnia', 'duża'])
|
||||
user średnia confirm(pizza_size='średnia')
|
||||
system dobrze, coś do picia? request(anything_else)
|
||||
user nie, to wszytsko deny(anything_else)
|
||||
system dobrze, dziękuję bardzo bye()
|
||||
user poprosze na dowoz inform(delivery='dowóz')
|
||||
user ulica xrf 25 inform(adres='xrf 25')
|
||||
system dobrze, czas oczekiwania około godziny confirm(delivery)&inform(delivery_time='1h')
|
||||
user dziekuje, do widzenia thanks()&bye()
|
||||
system Dziękujemy bardzo! bye()
|
|
1
dialog-10-01-01.tsv
Normal file
1
dialog-10-01-01.tsv
Normal file
@ -0,0 +1 @@
|
||||
user dzien dobry, co poleci pan z menu? offer(menu)
|
|
10
dialog-10-03-01.tsv
Normal file
10
dialog-10-03-01.tsv
Normal file
@ -0,0 +1,10 @@
|
||||
system Witaj w restauracji PIzza. W czym mogę Ci pomóc?
|
||||
user Możesz mi podać menu pizzy?
|
||||
system margharita - 20zł, pepperoni - 23zł, hawajska - 23zł, funghi - 24zł
|
||||
user poproszę funghi
|
||||
user czy mogę domówić napój alkocholowy do tego?
|
||||
system Oczywiście. Co Pan sobie życzy?
|
||||
user Piwo Harnaś 2l poproszę do tego
|
||||
system Niestety nie ma pozycji "Piwo Harnaś 2l" w naszym menu. Mogę zaproponować 4x "Piwo Harnaś 0.5L".
|
||||
user Ok to poproszę 4x piwo Harnaś 0.5l
|
||||
system 4 x "Piwo Harnaś 0.5L" zostało dodane do zamówienia. Czy coś jeszcze dodać do zamówienia?
|
Can't render this file because it contains an unexpected character in line 8 and column 32.
|
23
dialog-12-01-01.tsv
Normal file
23
dialog-12-01-01.tsv
Normal file
@ -0,0 +1,23 @@
|
||||
user dzien dobry, co poleci pan z menu? hello()
|
||||
system Dzień dobry, dzisiejszym daniem dnia jest krem z pomidorów welcomemsg()
|
||||
user a dania z innych kategorii niz zupy? request(menu-soups)
|
||||
system Serwujemy dania z kuchni polskiej i włoskiej: pizza, spaghetti, krem pomidorowy, kurczak, lemoniada, herbatka zimowa inform(coutry_cuisine=['polska', 'włoska'], meals=['pizza', 'spaghetti', 'krem pomidorowy', 'kurczak', 'lemoniada', 'herbata zimowa'])
|
||||
user jakiego kurczaka macie? request(meal='kurczk')
|
||||
system Grillowany lub panierowany inform(kurczak=['grilowany', 'panierowany'])
|
||||
user jaka panierka? request(kurczak='coating')
|
||||
system Co masz na myśli mówiąc panierka? request(kurczak='coating')
|
||||
user grilowany lub panierowany, panierowany w czym inform(kurczak='coating')
|
||||
system W mące, jajku i bułce tartej infrom(coating=['mąka', 'jajka', 'bułka tarta'])
|
||||
user jakies przyprawy? request(coating='seasoning')
|
||||
system Pójdę dopytać, proszę o chwilę cierpliwości wait()
|
||||
system Kurczak jest przyprawiany przyprawą do kurczaka inform(seasoning='do kurczaka')
|
||||
user to spaghetti inform(order=['spaghetti'])
|
||||
system Carbonara, bolognese, arabiata? select(spaghetti_kind=['carbonara', 'bolognese', 'arabiata'])
|
||||
user carbonara inform(spaghetti_kind='carbonara')
|
||||
system Dobrze, już zapisuję confirm(spaghetti_kind='carbonara')
|
||||
system Coś do picia do tego? request(anything_else)
|
||||
user nie, to wszystko deny(anything_else)
|
||||
system Oczywiście, zamówienie zostanie podane za około 15 minut inform(cooking_time='15 min')
|
||||
user ale ja chciałbym dowóz... inform(delivery='dowóz')
|
||||
system Czas oczekiwania na dostawę do około 40 minut confirm(delivery='dowóz')&infrom(delivery_time='40 min')
|
||||
user dobrze. ulica xyr 24 confirm(delivery_time)&inform(adres='ulica xyr 24')&bye()
|
Can't render this file because it has a wrong number of fields in line 5.
|
12
dialog-14-01-01.tsv
Normal file
12
dialog-14-01-01.tsv
Normal file
@ -0,0 +1,12 @@
|
||||
user dzien dobry, czy poleci pan cos z menu? hello()&requset(recomendation_dish)
|
||||
system Witamy w systemie rezerwacji pokoi hotelowych. Czy jest pan zainteresowany w konkretnym menu z restauracji z jednym z hoteli? welcomemsg()
|
||||
user tak, czy sa wolne pokoje z ładnym widokiem dla 2 osob w przyszły weekend? request(conditions=['2 osobowy', 'ładny widok '], date='przyszły weekend')
|
||||
system W jakiej miejscowości chciałby dokonać Pan rezerwacji? request(city)
|
||||
user Warszawa inform(city='Warszawa')
|
||||
system Dobrze, czy zainteresuje Pana 5 gwiazdowy hotel xyz w centrum Warszawy z widokiem na rynek, wliczonym śniadaniem oraz spa? offer(hotel='xyz')
|
||||
user a mozna troche dalej, na rynku straszne halasy sa inform(conditions=['dalej', 'mniejsze hałasy'])
|
||||
system Dobrze, może zainteresuje Pana hotel zzz 7 km od centrum z widokiem na jezioro? offer(hotel='zzz')
|
||||
user tak, to jest to confirm(hotel='zzz')
|
||||
system Dobrze, rezerwacja na termin 01.04.2023 - 02.04.2023 w hotelu zzz została zrobiona. Numer rezerwacji: 111333555 confirm(date='01.04.2023 - 02.04.2023', hotel='zzz')&inform(reservation='111333555')
|
||||
user potwierdzam confirm(reservation='111333555')
|
||||
system Dziękuję, do zobaczenia! thanks()&bye()
|
|
17
dialog-14-03-01.tsv
Normal file
17
dialog-14-03-01.tsv
Normal file
@ -0,0 +1,17 @@
|
||||
system Witaj w restauracji PIzza. W czym mogę Ci pomóc?
|
||||
user Dzień dobry chciałbym zamówić hawajską pizzę tylko że zamiast sosu pomidorowego poprosiłbym majonez
|
||||
system Niestety taka modyfikacja nie jest możliwa. Czy dodać do zamówienia pizzę hawajską bez wskazanej modyfikacji?
|
||||
user Dobrze, poproszę. Ale w takim razie bym poprosił dodatkowy sos czosnkowy.
|
||||
system Oczywiście. Pizza hawajska i sos czosnkowy zostały dodane do zamówienia. Czy coś jeszcze dodać?
|
||||
user Nie to wszystko
|
||||
system Świetnie. Zamawiasz na miejscu czy na wynos?
|
||||
user poproszę na wynos
|
||||
system Proszę podać adres dostawy.
|
||||
user Poznań, uniwerystet Adama Mickiewicza, Morasko na wydział matematyki i informatyki, sala d1
|
||||
system Płatność kartą czy gotówką?
|
||||
user gotówką przy odbiorze
|
||||
system Podsumowanie zamówienia: pizza hawajska - 25.99, sos czosnkowy - 1.99. W sumie 27.98 zł. Adres dostawy: Poznań, uniwerystet Adama Mickiewicza, Morasko na wydział matematyki i informatyki, sala d1. Płatność: gotówka
|
||||
system Czy akceptujesz?
|
||||
user Akceptuję
|
||||
system Świetnie! Zamówienie zostało przyjęte do realizacji. Przybliżony czas oczekiwania to 30 minut.
|
||||
user Dziękuję
|
|
7
dialog-16-01-01.tsv
Normal file
7
dialog-16-01-01.tsv
Normal file
@ -0,0 +1,7 @@
|
||||
user dzien dobry, w czytm specjalizuje sie restauracja? hello()&request(restaurant_speciality)
|
||||
system Dzień dobry, specialuzjemy się w kuchni meksykańskiej, cyz mogę przyjąć zamówienie? inform(restaurant_speciality='kuchnia meksykańska')&request(order)
|
||||
user Czy mogłby pan cos polecic? request(dish_recommendation)
|
||||
system Polecam chilli concarne, nasi goście je bardzo polecają inform(dish_recommendation='chili concarne')
|
||||
user to chciałbym je spróbować confirm(order=['chili concarne'])
|
||||
system Czy coś do Picia chce Pan do picia? request(anything_to_drink)
|
||||
user whyski inform(anything_to_drink='whyski')
|
|
10
dialog-18-01-01.tsv
Normal file
10
dialog-18-01-01.tsv
Normal file
@ -0,0 +1,10 @@
|
||||
user dzien dobry, czy poleci pan cos z menu hello()&request(dish_recomendation)
|
||||
system Dzień dobry, dzisiaj szef kuchni poleca krem z pomidorów, oraz pstrąga podawanego z warzywami i ryżem. welcomemsg()&inform(dish_recomendation=['krem z pomidorów', 'pstąg podawany z warzywami i ryżem'])
|
||||
user jaki ryż? request(dish='ryż')
|
||||
system biały, jednak możemy go zmienić np, na kaszę jeżeli Pan sobie tego życzy inform(ryż='biały')&offer(change=['ryż', 'kasza'])
|
||||
user hmmm wolalbym frytki do pstrąga infrom(ryż='kasza')
|
||||
system Dobrze, w takim razie pstrąg z frytkami. Coś jeszcze? confirm(order=['pstrąg', 'frytki'])&request(anything_else)
|
||||
user lemoniade inform(orders=['lemoniade'])
|
||||
system Jasne, to wszystko? confirn(order)&request(over)
|
||||
user tak confirm(over)
|
||||
system Dobrze, w takim razie dziękuję za złożenie zamówienia. W razie wątpliwości, lub pytań proszę pisać. bye()
|
|
14
dialog-18-03-01.tsv
Normal file
14
dialog-18-03-01.tsv
Normal file
@ -0,0 +1,14 @@
|
||||
user Dzień dobry, chciałbym złożyć zamówienie
|
||||
system Dzień dobry, co chciałby Pan zamówić?
|
||||
user A co Państwo dzisiaj mogą polecić?
|
||||
system Polecam dzisiejsze danie dnia - carbonarę.
|
||||
user Dobrze niech będzie. Do tego poproszę zupę grzybową oraz białe wino
|
||||
system Oczywiście. Carbonara, zupa grzybowa i białe wino zostały dodane do zamówienia. Czy mogę przejść do podsumowania?
|
||||
user Jasne, to wszystko jak dla mnie. Dziękuję bardzo!
|
||||
system 1x Carbonara - 39.99, 1x Zupa grzybowa - 19.99, 1x Białe wino - 27.99. W sumie 87.97 zł. Czy akceptujesz?
|
||||
user Tak jak najbardziej.
|
||||
system Świetnie! Zamawiasz na miejscu czy na wynos?
|
||||
user na miejscu
|
||||
system Czy siedzisz już przy stoliku?
|
||||
user nie, będę za jakieś 20min
|
||||
system Zamówienie zostało złożone. Numer zamówienia to 222. Proszę podać ten numer w restauracji w celu identyfikacji.
|
|
27
dp.py
27
dp.py
@ -1,27 +0,0 @@
|
||||
from SystemActType import SystemActType
|
||||
from UserActType import UserActType
|
||||
|
||||
|
||||
class DP:
|
||||
def update_system_action(self, state, last_user_act, last_system_act, slots):
|
||||
if state == UserActType['order']:
|
||||
if 'kind' not in slots[state]:
|
||||
return {'act': SystemActType['request'], 'slot': 'kind'}
|
||||
elif 'size' not in slots[state]:
|
||||
return {'act': SystemActType['request'], 'slot': 'size'}
|
||||
elif 'plates' not in slots[state]:
|
||||
return {'act': SystemActType['request'], 'slot': 'plates'}
|
||||
else:
|
||||
return {'act': SystemActType['confirm_domain']}
|
||||
|
||||
else:
|
||||
if last_user_act == UserActType['hello']:
|
||||
return {'act': SystemActType['welcomemsg']}
|
||||
elif last_user_act == UserActType['bye']:
|
||||
return {'act': SystemActType['bye']}
|
||||
else:
|
||||
return {'act': SystemActType['canthelp']}
|
||||
|
||||
|
||||
|
||||
|
51
dst.py
51
dst.py
@ -1,51 +0,0 @@
|
||||
from UserActType import UserActType
|
||||
|
||||
class DST:
|
||||
def __init__(self):
|
||||
self.state = None
|
||||
self.last_user_act = None
|
||||
self.last_system_act = None
|
||||
self.slots = self.init_slots()
|
||||
|
||||
def update(self, user_act=None):
|
||||
act = user_act['act']
|
||||
self.last_user_act = act
|
||||
if not self.state:
|
||||
if act in [UserActType['order'],
|
||||
UserActType['delivery'],
|
||||
UserActType['payment'],
|
||||
UserActType['price']]:
|
||||
self.state = act
|
||||
|
||||
for slot, value in user_act['slots']:
|
||||
slot = slot.lower()
|
||||
value = value.lower()
|
||||
|
||||
self.slots[act][slot] = value
|
||||
|
||||
return self.state
|
||||
|
||||
def get_dialogue_state_tracker_state(self):
|
||||
return self.state, self.last_user_act, self.last_system_act, self.slots
|
||||
|
||||
def get_state(self):
|
||||
return self.state
|
||||
|
||||
def get_last_user_act(self):
|
||||
return self.last_user_act
|
||||
|
||||
def get_last_system_act(self):
|
||||
return self.last_system_act
|
||||
|
||||
def get_slots(self):
|
||||
return self.slots
|
||||
|
||||
def update_last_user_act(self, new_user_act):
|
||||
self.last_user_act = new_user_act
|
||||
|
||||
def update_last_system_act(self, new_system_act):
|
||||
self.last_system_act = new_system_act
|
||||
|
||||
def init_slots(self):
|
||||
return dict(order={}, delivery={}, payment={}, price={})
|
||||
|
66
evaluate.py
66
evaluate.py
@ -1,66 +0,0 @@
|
||||
import jsgf
|
||||
from os import listdir
|
||||
from os.path import isfile, join
|
||||
|
||||
|
||||
gram_dir = './gramatyki/'
|
||||
grammar_files = [file for file in listdir(gram_dir) if isfile(join(gram_dir, file))]
|
||||
|
||||
grammars = []
|
||||
|
||||
for grammarFile in grammar_files:
|
||||
grammar = jsgf.parse_grammar_file(gram_dir + grammarFile)
|
||||
grammars.append(grammar)
|
||||
|
||||
lines = []
|
||||
|
||||
data_dir = './data/'
|
||||
data_files = [file for file in listdir(data_dir) if isfile(join(data_dir, file))]
|
||||
|
||||
detected = 0
|
||||
|
||||
for file in data_files:
|
||||
f = open(f'{data_dir}{file}', "r")
|
||||
for line in f:
|
||||
sep = line.split('\t')
|
||||
if sep[0] == 'user':
|
||||
lines.append([sep[1], sep[2]])
|
||||
|
||||
|
||||
def get_dialog_act(rule):
|
||||
slots = []
|
||||
get_slots(rule.expansion, slots)
|
||||
global detected
|
||||
detected = detected + 1
|
||||
return {'act': rule.grammar.name, 'slots': slots}
|
||||
|
||||
|
||||
def get_slots(expansion, slots):
|
||||
if expansion.tag != '':
|
||||
slots.append((expansion.tag, expansion.current_match))
|
||||
return
|
||||
|
||||
for child in expansion.children:
|
||||
get_slots(child, slots)
|
||||
|
||||
if not expansion.children and isinstance(expansion, jsgf.NamedRuleRef):
|
||||
get_slots(expansion.referenced_rule.expansion, slots)
|
||||
|
||||
|
||||
def nlu(utterance):
|
||||
matched = None
|
||||
for _grammar in grammars:
|
||||
matched = _grammar.find_matching_rules(utterance)
|
||||
if matched:
|
||||
break
|
||||
|
||||
if matched:
|
||||
return get_dialog_act(matched[0])
|
||||
else:
|
||||
return {'act': 'null', 'slots': []}
|
||||
|
||||
|
||||
for line in lines:
|
||||
nlu(line[0])
|
||||
|
||||
print(f'{round((detected/len(lines)*100),2)}%')
|
@ -1,8 +0,0 @@
|
||||
## WNIOSKI
|
||||
|
||||
- System był zrozumiały dla większości użytkowników
|
||||
- Tempo reakcji było bardziej niż zadowalające według większości badanych
|
||||
- Trzeba rozszerzyć system gramatyk, gdyż nie rozpoznaje on dostatecznie często wypowiedzi użytkowników
|
||||
- Wśród badanych panuje duża niezgoda, czy system zachowuje się tak, jak oczekiwano, warto przeredagować odpowiedzi systemu by były bardziej zrozumiałe dla użytkownika
|
||||
- Część użytkowników nie wiedziała co powiedzieć na każdym etapie dialogu, ponownie należy rozwinąć system gramatyk oraz przeredagować wypowiedzi systemu by bardziej nakierowywały użytkowników.
|
||||
- Wśród badanych zauważalny był odzew negatywny, należy wprowadzić wspomniane poprawki do systemu i ponownie przeprowadzić ewaluację by zobaczyć nowy stan odczuć użytkowników w stosunku do chęci korzystania z systemu.
|
@ -1,8 +0,0 @@
|
||||
#JSGF V1.0 UTF-8 pl;
|
||||
|
||||
grammar delivery;
|
||||
|
||||
|
||||
<deliverys> = <droga> ;
|
||||
|
||||
public <droga> = (na | <NULL>) (dowoz | miejscu | wynos);
|
@ -1,8 +0,0 @@
|
||||
#JSGF V1.0 UTF-8 pl;
|
||||
|
||||
grammar hello;
|
||||
|
||||
|
||||
<hello> = <greeting> ;
|
||||
|
||||
public <greeting> = (dzień dobry | cześć | siema | witam);
|
@ -1,13 +0,0 @@
|
||||
#JSGF V1.0 UTF-8 pl;
|
||||
|
||||
grammar order;
|
||||
|
||||
public <zamow> = chciałbym zamowic <rodzaj> <rozmiar> <liczba_osob> ;
|
||||
|
||||
<rodzaj> = (pizze | <NULL>) (vesuvio | hawajska | amerykanska | grecka) {kind};
|
||||
|
||||
<rozmiar> = (mala | srednia | duza | XXL) {size};
|
||||
|
||||
<liczba_osob> = (na | dla) <liczba> {plates} (osób | osoby);
|
||||
|
||||
<liczba> = (dwie | dwóch | trzy | trzech | cztery | czterech | pięć | pieciu);
|
@ -1,8 +0,0 @@
|
||||
#JSGF V1.0 UTF-8 pl;
|
||||
|
||||
grammar payment;
|
||||
|
||||
|
||||
<payment> = <platnosc> ;
|
||||
|
||||
public <platnosc> = (płacę | zapłacę | płatność | <NULL>) (kartą | gotówką | online | przy odbiorze);
|
@ -1,9 +0,0 @@
|
||||
#JSGF V1.0 UTF-8 pl;
|
||||
|
||||
grammar price;
|
||||
|
||||
|
||||
<price> = <cena> ;
|
||||
|
||||
public <cena> = (ile | jaki jest | jaka jest | w jakiej jest | <NULL>) (całkowity | <NULL>)
|
||||
(koszt | kosztuje | cena | cenie) (pizza | pizze | pizzy | zamówienia | <NULL>);
|
38
main.py
38
main.py
@ -1,38 +0,0 @@
|
||||
from UserActType import UserActType
|
||||
from nlu import nlu
|
||||
from dst import DST
|
||||
from dp import DP
|
||||
from nlg import NLG
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
dst = DST()
|
||||
dp = DP()
|
||||
nlg = NLG()
|
||||
|
||||
print("Witamy w restauracji πzza. W czym mogę pomóc?")
|
||||
|
||||
while True:
|
||||
user_input = input("$")
|
||||
# get user act frame from user input with Natural Language Understanding
|
||||
user_act_frame = nlu(user_input)
|
||||
# print('NLU', user_act_frame)
|
||||
# update Dialogue State Tracker with new user act frame
|
||||
dst.update(user_act_frame)
|
||||
state, last_user_act, last_system_act, slots = dst.get_dialogue_state_tracker_state()
|
||||
# print('state', state)
|
||||
# print('last_user_act', last_user_act)
|
||||
# print('last_system_act', last_system_act)
|
||||
# print('slots', slots)
|
||||
|
||||
# get system act frame which decides what's next from Dialogue Policy
|
||||
system_act_frame = dp.update_system_action(state, last_user_act, last_system_act, slots)
|
||||
dst.update_last_system_act(system_act_frame)
|
||||
# print('system_act_frame', system_act_frame)
|
||||
|
||||
# generate response based on system act frame
|
||||
system_response = nlg.generate_response(state, last_user_act, last_system_act, slots, system_act_frame)
|
||||
print('BOT:', system_response)
|
||||
|
||||
if user_act_frame['act'] == UserActType['bye']:
|
||||
break
|
51
mockup.py
51
mockup.py
@ -1,51 +0,0 @@
|
||||
acts_list = {'hello': 'welcomemsg',
|
||||
'null': 'canthear'}
|
||||
|
||||
|
||||
class Act_frame:
|
||||
text = ''
|
||||
act = []
|
||||
|
||||
|
||||
class Dialogue_state_frame:
|
||||
state_frame = []
|
||||
|
||||
|
||||
def NLU(text):
|
||||
user_frame = Act_frame()
|
||||
user_frame.text = text
|
||||
if text == 'Cześć, jak masz na imię?':
|
||||
user_frame.act = 'hello'
|
||||
print(user_frame.act)
|
||||
else:
|
||||
user_frame.act = 'null'
|
||||
print(user_frame.act)
|
||||
return user_frame
|
||||
|
||||
|
||||
def DST(user_frame):
|
||||
dialogue_frame = Dialogue_state_frame()
|
||||
dialogue_frame.state_frame.append((user_frame.text, user_frame.act))
|
||||
print(dialogue_frame.state_frame)
|
||||
return dialogue_frame
|
||||
|
||||
|
||||
def DP(dialogue_frame):
|
||||
system_frame = Act_frame()
|
||||
system_frame.act = acts_list[dialogue_frame.state_frame[-1][1]]
|
||||
print(system_frame.act)
|
||||
return system_frame
|
||||
|
||||
|
||||
def NLG(system_frame):
|
||||
answer = ''
|
||||
if system_frame.act == 'welcomemsg':
|
||||
answer = 'Witaj, nazywam się Igrek Iksiński.'
|
||||
elif system_frame.act == 'canthear':
|
||||
answer = 'Nie zrozumiałem.'
|
||||
return answer
|
||||
|
||||
|
||||
text = 'Cześć, jak masz na imię?'
|
||||
#text = 'Niezrozumiałe'
|
||||
print(NLG(DP(DST(NLU(text)))))
|
21
nlg.py
21
nlg.py
@ -1,21 +0,0 @@
|
||||
from SystemActType import SystemActType
|
||||
from UserActType import UserActType
|
||||
|
||||
|
||||
class NLG:
|
||||
def generate_response(self, state, last_user_act, last_system_act, slots, system_act):
|
||||
if state == UserActType['order']:
|
||||
if system_act['act'] == SystemActType['request']:
|
||||
if system_act['slot'] == 'kind':
|
||||
return 'Jaką pizzę chcesz zamówić?'
|
||||
elif system_act['slot'] == 'size':
|
||||
return 'Jakiego rozmiaru chcesz pizzę?'
|
||||
elif system_act['slot'] == 'plates':
|
||||
return 'Dla ilu osób ma to być?'
|
||||
elif system_act['act'] == SystemActType['confirm_domain']:
|
||||
return 'Czy mam dodać tę pizzę do zamówienia?\nPizza: {}\nRozmiar: {}\nIlość osób: {}'.\
|
||||
format(slots['order']['kind'], slots['order']['size'], slots['order']['plates'])
|
||||
elif last_user_act == UserActType['hello']:
|
||||
return 'Dzień dobry, w czym mogę pomóc?'
|
||||
else:
|
||||
return 'Przepraszam. Zdanie nie jest mi zrozumiałe. Spróbuj je sformułować w inny sposób.'
|
49
nlu.py
49
nlu.py
@ -1,49 +0,0 @@
|
||||
import jsgf
|
||||
from os import listdir
|
||||
from os.path import isfile, join
|
||||
|
||||
|
||||
gram_dir = './gramatyki/'
|
||||
grammar_files = [file for file in listdir(gram_dir) if isfile(join(gram_dir, file))]
|
||||
|
||||
grammars = []
|
||||
|
||||
for grammarFile in grammar_files:
|
||||
grammar = jsgf.parse_grammar_file(gram_dir + grammarFile)
|
||||
grammars.append(grammar)
|
||||
|
||||
|
||||
def get_dialog_act(rule):
|
||||
slots = []
|
||||
get_slots(rule.expansion, slots)
|
||||
return {'act': rule.grammar.name, 'slots': slots}
|
||||
|
||||
|
||||
def get_slots(expansion, slots):
|
||||
if expansion.tag != '':
|
||||
slots.append((expansion.tag, expansion.current_match))
|
||||
return
|
||||
|
||||
for child in expansion.children:
|
||||
get_slots(child, slots)
|
||||
|
||||
if not expansion.children and isinstance(expansion, jsgf.NamedRuleRef):
|
||||
get_slots(expansion.referenced_rule.expansion, slots)
|
||||
|
||||
|
||||
def nlu(utterance):
|
||||
matched = None
|
||||
for _grammar in grammars:
|
||||
matched = _grammar.find_matching_rules(utterance)
|
||||
if matched:
|
||||
break
|
||||
|
||||
if matched:
|
||||
return get_dialog_act(matched[0])
|
||||
else:
|
||||
return {'act': 'null', 'slots': []}
|
||||
|
||||
|
||||
# print(nlu('chciałbym zamowic pizze vesuvio XXL na dwie osoby'))
|
||||
# print(nlu('na dowoz'))
|
||||
# print(nlu('dowoz'))
|
Loading…
Reference in New Issue
Block a user