forked from s151636/Generic_DialogSystem
b15957b5d1
add examples
4.4 KiB
4.4 KiB
import random
def nlg(system_act):
domain, intent, slot, value = system_act
if intent == 'Affirm':
r = random.randint(1, 3)
if r == 1:
return 'Tak'
elif r == 2:
return 'Zgadza się'
else:
return 'Potwierdzam'
if intent == 'Deny':
r = random.randint(1, 3)
if r == 1:
return 'Nie'
elif r == 2:
return 'Nie zgadza się'
else:
return 'Nie potwierdzam'
if intent == 'Canthelp':
r = random.randint(1, 3)
if r == 1:
return 'Przepraszam, ale obawiam się, że nie mogę tego zrobić'
elif r == 2:
return 'Wystąpił błąd, proszę się skontaktować z obsługą'
else:
return 'ERR://23¤Y%/'
if intent == 'Hellomsg':
r = random.randint(1, 3)
if r == 1:
return 'Witaj'
elif r == 2:
return 'Cześć'
else:
return 'Dzień dobry'
if intent == 'Bye':
r = random.randint(1, 3)
if r == 1:
return 'Do zobaczenia'
elif r == 2:
return 'Żegnaj'
else:
return 'Buk zapłać'
if domain == 'Product':
if intent == 'Inform':
if slot == 'Quantity':
if value == 0:
return f'Nie znalazłem produktów spełniających podane kryteria.'
elif value == 1:
return f'Znalazłem jeden produkt spełniającą podane kryteria.'
elif value <= 4:
return f'Znalazłem {value} produkty spełniające podane kryteria.'
elif value <= 9:
return f'Znalazłem {value} produktów spełniających podane kryteria.'
else:
return f'Znalazłem wiele produktów spełniających podane kryteria.'
elif slot == 'Quality':
return f'Znalazłem produkt(y) jakości {value}'
elif slot == 'Price_range':
return f'Znalazłem produkt(y) w przedziale cenowym {value}'
elif slot == 'Type':
return f'Znalazłem produkt(y) typu {value}'
elif slot == 'Brand':
return f'Znalazłem produkt(y) marki {value}'
elif slot == 'Price':
return f'Znalazlem produkt(y) w cenie {value}'
if intent == 'Request':
if slot == 'CreditCardNo':
return 'Podaj nuber karty płatniczej'
if slot == 'Quantity':
return 'Podaj liczbę artykułów'
#if slot == 'Quality':
# return 'Podaj jakość produktów'
if slot == 'Type':
return 'Podaj typ produktu'
if intent == 'Recommend':
if slot == "Name":
r = random.randint(1, 3)
if r == 1:
return f'Kochany użytkowniku, z całego serduszka polecam Ci {value}'
elif r == 2:
return f'Polecam {value}'
else:
return f'Mogę polecić {value}'