diff --git a/main.py b/main.py index 75487a7..36b5b6d 100644 --- a/main.py +++ b/main.py @@ -77,6 +77,71 @@ def act_ack() -> str: return random.choice(["W czymś jeszcze mogę pomóc?", "Co mogę jeszcze zrobić"]) +def act_inform(sentence: str) -> str: + if is_in_sentence(sentence, "dostępna"): + return random.choice( + [ + "Wskazana przez Ciebie pozycja niestety nie jest dostępna", + "Ksiązką, o którą pytasz jest aktualnie dostępna", + ] + ) + elif is_in_sentence(sentence, "wydawcy", "wydawca", "wydawnictwo", "wydawnictwa"): + return random.choice( + [ + "Książka tego wydawcy jest dostępna", + "Książka tego wydawcy nie jest dostępna", + "Nie znaleziono wydawcy o tej nazwie", + ] + ) + elif is_in_sentence(sentence, "autor", "autora", "autorstwa"): + return random.choice( + [ + "Książka tego autora nie jest dostępna", + "Książki tego autora są dostępne w bibliotece", + "Nie znaleziono autora o tym imieniu i nazwisku" + ] + ) + elif is_in_sentence(sentence, "godziny", "otwarta", "czynna", "otwarcie"): + return "Biblioteka jest otwarta w dni robocze w godzinach 8-16" + elif is_in_sentence(sentence, "lokalizacja", "lokalicazji", "adres", "ulica", "placówka"): + return "Biblioteka znajduje się na ul. Targowej 10 w Poznaniu" + elif is_in_sentence( + sentence, + "dni", "dzień", + "niedziela", "niedziele", "niedzielę", + "święta", "święto" + ): + return "Biblioteka otwarta jest jedynie w dni robocze. Godziny otwarcia: 8-16" + elif is_in_sentence(sentence, "numer telefonu", "kontakt", "numer kontaltowy", "telefon"): + return "Numer kontaktowy: 123 456 789" + elif is_in_sentence( + sentence, + "wydarzenie", "wydarzenia", + "atrakcja", "atrakcje", + "spotkanie", "spotkania" + ): + return random.choice( + [ + "W najbliższy poniedziałek odbędzie się Dzień młodego czytelnika", + "Dzień fantastyki trwać będzie przez cały najbliższy weekend", + "Dzień promowania czytelnictwa to najbliższe wydarzenie (najbliższa sobota)", + "Obecnie nie ma żadnych zaplanowanych wydarzeń", + ] + ) + return "Niestety nie zrozumiałem? Jakich informacji szukasz?" + + +def act_affirm() -> str: + return random.choice( + [ + "Zgadza się", + "Tak", + "Tak zgadza się", + ] + ) + + + def answer(sentence: str) -> str: nlu_match = nlu.match(sentence) act, slots = nlu_match["act"], nlu_match["slots"] @@ -94,9 +159,13 @@ def answer(sentence: str) -> str: return act_confirm(sentence, slots) elif act == "ack": return act_ack() + elif act == "inform": + return act_inform(sentence) + elif act == "affirm": + return act_affirm(sentence, slots) return "Nie rozumiem pytania lub nie posiadamy takiej książki" while True: - sentence = input("Wiadomość użytkowniak: ") + sentence = input("Wiadomość użytkownika: ") print(answer(sentence))