test: nlg working

This commit is contained in:
filnow 2024-06-03 16:03:34 +02:00
parent 60a298fa49
commit 5922f0e074

View File

@ -12,6 +12,10 @@ from transformers import (
pipeline, pipeline,
) )
from transformers.utils import logging
logging.set_verbosity_error()
def default_state(): def default_state():
return dict( return dict(
@ -199,14 +203,11 @@ class NLG():
if slots == []: if slots == []:
return "Przepraszam nie rozumiem. Podaj więcej informacji." return "Przepraszam nie rozumiem. Podaj więcej informacji."
else: else:
text = [] text = [f"{slot[0]}[{slot[1]}]" for slot in slots if slot[1] is not None]
for i in slots:
if i[1] != None:
text.append(f"{i[0]}[{i[1]}]")
return self.nlg_pipeline(f'generate text: {", ".join(text)}')[0]['summary_text'] return self.nlg_pipeline(f'generate text: {", ".join(text)}')[0]['summary_text']
elif act == "canthelp.missing_slot_value": elif act == "canthelp.missing_slot_value":
return "Przepraszam, ale nie mogę zrealizować zamówienia. Brakuje mi niektórych informacji. Czy mogę pomóc w czymś innym?" return "Cieszę się, że mogłem pomóc. Czy mogę zrobić coś jeszcze?"
elif act == "bye": elif act == "bye":
return "Dziękujemy za zamówienie! Smacznego!" return "Dziękujemy za zamówienie! Smacznego!"
@ -222,74 +223,60 @@ if __name__ == "__main__":
# response = model("Hej, jakim botem jesteś?") # response = model("Hej, jakim botem jesteś?")
# response = model("Hej, czym się zajmujesz?") # response = model("Hej, czym się zajmujesz?")
# response = model("Hej, w czym mi możesz pomóc?") # response = model("Hej, w czym mi możesz pomóc?")
response = model("Siema, w czym możesz mi pomóc?")
assert response == "welcomemsg"
print() print()
response = model("Siema, w czym możesz mi pomóc?")
print()
# jezeli prosi o pomoc lub po prostu o menu to zaoferuj cale menu # jezeli prosi o pomoc lub po prostu o menu to zaoferuj cale menu
# response = model("Pokaz menu") # response = model("Pokaz menu")
# response = model("A co do picia proponujesz?") # response = model("A co do picia proponujesz?")
# response = model("Jakie inne desery oferujesz?") # response = model("Jakie inne desery oferujesz?")
response = model("Interesują mnie dania kuchni włoskiej oraz meksykanskiej.") response = model("Interesują mnie dania kuchni włoskiej oraz meksykanskiej.")
assert response == "offer"
print() print()
# jezeli wybierze danie to zapisz wybor i poinformuj o nim # jezeli wybierze danie to zapisz wybor i poinformuj o nim
# response = model("Wezmę rybe")
# response = model("Poproszę tatara") # response = model("Poproszę tatara")
response = model("Chciałbym zjesc tatara") response = model("Chciałbym zjesc tatara")
assert response == "inform"
print() print()
# jezeli poda adres to zapisze wybor i poinformuj o nim # jezeli poda adres to zapisze wybor i poinformuj o nim
# response = model('Poproszę na poznańską 2') # response = model('Poproszę na poznańską 2')
response = model("uniwersytetu poznanskiego 4 61-614 poznan") response = model("uniwersytetu poznanskiego 4 61-614 poznan")
assert response == "inform" print()
# jezeli sprobuje dokonac zamowienia bez podania potrzebnych informacji prosimy o nie # jezeli sprobuje dokonac zamowienia bez podania potrzebnych informacji prosimy o nie
#response = model("Dobrze, nie mogę się już doczekać.") #response = model("Dobrze, nie mogę się już doczekać.")
response = model("Super, to zatem wszystko!") response = model("Super, to zatem wszystko!")
assert response == "canthelp.missing_slot_value" print()
# 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")
response = model("Zapłacę kartą przy odbiorze") response = model("Zapłacę kartą przy odbiorze")
assert response == "inform"
print() print()
# jezeli potwiedzi zamowienie to zakoncz zamawianie sukcesem i wypisz calosc # jezeli potwiedzi zamowienie to zakoncz zamawianie sukcesem i wypisz calosc
# response = model("Potwierdzam!") # response = model("Potwierdzam!")
# response = model("Tak!") # response = model("Tak!")
# response = model("Tak to wszystko!") # response = model("Tak to wszystko!")
# response = model("Super, to zatem wszystko!") # response = model("Super, to zatem wszystko!")
response = model("Dobrze, nie mogę się już doczekać.") response = model("Dobrze, nie mogę się już doczekać.")
assert response == "bye" print()
print("----Konwersacja z restartem-------") print("----Konwersacja z restartem-------")
model = Model() model = Model()
response = model("Siema, w czym możesz mi pomóc?") response = model("Siema, w czym możesz mi pomóc?")
assert response == "welcomemsg" print()
response = model("Interesują mnie dania kuchni włoskiej oraz meksykanskiej.") response = model("Interesują mnie dania kuchni włoskiej oraz meksykanskiej.")
assert response == "offer" print()
response = model("Chciałbym zjesc tatara") response = model("Chciałbym zjesc tatara")
assert response == "inform" print()
response = model("uniwersytetu poznanskiego 4 61-614 poznan") response = model("uniwersytetu poznanskiego 4 61-614 poznan")
assert response == "inform" print()
response = model("od nowa") response = model("od nowa")
assert response == "welcomemsg" print()
response = model("Interesują mnie dania kuchni włoskiej oraz meksykanskiej.") response = model("Interesują mnie dania kuchni włoskiej oraz meksykanskiej.")
assert response == "offer" print()
response = model("Chciałbym zjesc tatara") response = model("Chciałbym zjesc tatara")
assert response == "inform" print()
response = model("uniwersytetu poznanskiego 4 61-614 poznan") response = model("uniwersytetu poznanskiego 4 61-614 poznan")
assert response == "inform" print()
response = model("Zapłacę kartą przy odbiorze") response = model("Zapłacę kartą przy odbiorze")
assert response == "inform" print()
response = model("Dobrze, nie mogę się już doczekać.") response = model("Dobrze, nie mogę się już doczekać.")
assert response == "bye" print()