SystemyDialogowe/chatbot.ipynb

5.4 KiB

from DST import Dst
from AJN import *
from NLG import nlg



if __name__ == "__main__":
    
    dst = Dst()
    next_question = dst.get_next_question()
    print('Jeśli chcesz zresetować rozmowę wpisz \"reset\"')
    
    while (next_question):
        
        
        text = input('>>>')
        
        
        frame = ajn(text)
        
        dst.reset_if_needed(text)
        
        
        
        dst.save_answer(frame['slots'])
        
        next_question = dst.get_next_question()
        print(next_question)
        print(dst.checklist)
        print(frame['slots'])
        print(frame['act'])
        nlg(next_question,frame,text)
        
        if text == "exit" or frame['act'] == "bye":
        
            break;

        
        

Jeśli chcesz zresetować rozmowę wpisz "reset"
>>> chce 2 bilety na batmana na jutro
godzina
{'ilosc': '2', 'tytul': 'Batmana', 'dzien': 'jutro', 'godzina': None, 'miejsce': None, 'numer': None}
[('ilosc', '2'), ('tytul', 'Batmana'), ('dzien', 'jutro'), ('godzina', None)]
book
Na którą godzinę ma być dokonana rezerwacja?
>>> na 17
godzina
{'ilosc': '2', 'tytul': 'Batmana', 'dzien': '17', 'godzina': None, 'miejsce': None, 'numer': None}
[('dzien', '17')]
dni
Na którą godzinę ma być dokonana rezerwacja?
>>> na godzine 17
miejsce
{'ilosc': '2', 'tytul': 'Batmana', 'dzien': '17', 'godzina': '17', 'miejsce': None, 'numer': None}
[('godzina', '17')]
godziny
Czy miejsca mają być z przodu, z tyłu czy na środku?
>>> na środku
numer
{'ilosc': '2', 'tytul': 'Batmana', 'dzien': '17', 'godzina': '17', 'miejsce': 'srodku', 'numer': None}
[('miejsce', 'srodku')]
miejsca
Na jaki numer telefonu ma zostać dokonana rezerwacja?
>>> 1
numer
{'ilosc': '2', 'tytul': 'Batmana', 'dzien': '17', 'godzina': '17', 'miejsce': 'srodku', 'numer': None}
[('numer', '1')]
numer
Proszę podać poprawny numer telefonu.
Na jaki numer telefonu ma zostać dokonana rezerwacja?
>>> 1212
numer
{'ilosc': '2', 'tytul': 'Batmana', 'dzien': '17', 'godzina': '17', 'miejsce': 'srodku', 'numer': None}
[('numer', '1 2 1 2')]
numer
Proszę podać poprawny numer telefonu.
Na jaki numer telefonu ma zostać dokonana rezerwacja?
>>> 123123123
None
{'ilosc': '2', 'tytul': 'Batmana', 'dzien': '17', 'godzina': '17', 'miejsce': 'srodku', 'numer': '123123123'}
[('numer', '1 2 3 1 2 3 1 2 3')]
numer
Rezerwacja została dokonana. Potwierdzenie rezerwacji zostanie niebawem przesłane wiadomością SMS. Proszę o przybycie 15 minut przed rozpoczęciem seansu w celu zakupu biletu, w innym przypadku rezerwacja przepada.
chce 2 bilety na batmana na jutro na 17 15