From 298cd6851538d24b07040e10aab70bee26ec8c83 Mon Sep 17 00:00:00 2001 From: PawelDopierala Date: Thu, 14 Mar 2024 12:34:34 +0100 Subject: [PATCH] Push chat bot --- chatbot/chatbotGOATS.py | 616 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 616 insertions(+) create mode 100644 chatbot/chatbotGOATS.py diff --git a/chatbot/chatbotGOATS.py b/chatbot/chatbotGOATS.py new file mode 100644 index 0000000..4bea963 --- /dev/null +++ b/chatbot/chatbotGOATS.py @@ -0,0 +1,616 @@ +from nltk.chat.util import Chat + +regulations = [ + ( + r"(.*) matka(.*)", + ( + "Opowiedz mi więcej o swojej matce.", + "Jaka była twoja relacja z matką?", + "Jak się czujesz wobec matki?", + "W jaki sposób to się ma do twoich dzisiejszych uczuć?", + "Dobre relacje rodzinne są ważne.", + ), + ), + ( + r"(.*) ojciec(.*)", + ( + "Opowiedz mi więcej o swoim ojcu.", + "Jak twój ojciec sprawiał, że się czułeś?", + "Jak się czujesz wobec swojego ojca?", + "Czy twoja relacja z ojcem ma związek z twoimi dzisiejszymi uczuciami?", + "Czy masz trudności z okazywaniem uczuć rodzinie?", + ), + ), + ( + r"(.*) dziecko(.*)", + ( + "Czy miałeś bliskich przyjaciół w dzieciństwie?", + "Jaka jest twoja ulubiona pamięć z dzieciństwa?", + "Pamiętasz jakieś sny lub koszmary z dzieciństwa?", + "Czy inne dzieci czasem drwiały z Ciebie?", + "Jak myślisz, jak doświadczenia z dzieciństwa mają się do twoich dzisiejszych uczuć?", + ), + ), + ( + r"Co to jest (.*)", + ( + "Dlaczego chcesz wiedzieć, co to jest %1?", + "Jak myślisz, co to może być?", + "Czy masz jakieś przypuszczenia, co to może być?", + ), + ), + ( + r"Kiedy (.*)", + ( + "Czy chcesz konkretną datę?", + "Czy zależy Ci na określonym czasie?", + "W jakim kontekście zadajesz to pytanie?", + ), + ), + ( + r"Jak się czujesz, gdy (.*)", + ( + "Co czujesz, gdy %1?", + "Czy masz jakieś szczególne uczucia, gdy %1?", + "Jak to wpływa na Twoje samopoczucie, gdy %1?", + ), + ), + ( + r"Kim jest (.*)", + ( + "Co wiesz o %1?", + "Dlaczego chcesz się dowiedzieć, kim jest %1?", + "Jak myślisz, kim może być %1?", + ), + ), + ( + r"(.*) hobby (.*)", + ( + "Moje hobby to rozmowa z Tobą!", + "Jestem botem, więc moje hobby to pomaganie użytkownikom.", + "Nie mam hobby w tradycyjnym tego słowa znaczeniu, ale lubię się rozwijać.", + ), + ), + ( + r"Kocham (.*)", + ( + "Dlaczego kochasz %1?", + "Jak to wpływa na Twoje życie, kochając %1?", + "Czy to uczucie jest ważne dla Ciebie?", + ), + ), + ( + r"(.*) denerwuje(.*)", + ( + "Czy masz jakieś szczególne rzeczy, które Cię denerwują?", + "Jak radzisz sobie z tymi rzeczami, które Cię denerwują?", + "Czy denerwuje Cię coś konkretnego?", + ), + ), + ( + r"Opowiedz mi o (.*)", + ( + "Czego chcesz się dowiedzieć o %1?", + "Jaki aspekt %1 chciałbyś poznać?", + "Czy interesuje Cię konkretny aspekt %1?", + ), + ), + ( + r"(.*) plany (.*)", + ( + "Jestem botem, więc nie mam planów w tradycyjnym tego słowa znaczeniu.", + "Moje zadanie polega na odpowiadaniu na Twoje pytania.", + "Nie mam konkretnych planów, ale jestem tutaj, aby Ci pomóc.", + ), + ), + ( + r"(.*) jeść(.*)", + ( + "Jako bot nie mam możliwości jedzenia, ale co do użytkowników - każdy ma swoje ulubione potrawy!", + "Czy masz ulubione danie?", + "Jakie potrawy najbardziej lubisz?", + ), + ), + ( + r"(.*)marzenia(.*)", + ( + "Jako bot nie mam możliwości marzeń w tradycyjnym tego słowa znaczeniu, ale moim celem jest rozwój i pomoc użytkownikom.", + "Czy masz jakieś cele, których chciałbyś osiągnąć?", + "Co chciałbyś zrobić w przyszłości?", + ), + ), + ( + r"Czy wierzysz w (.*)", + ( + "Jakie są Twoje przemyślenia na temat %1?", + "Czy masz jakieś doświadczenia związanę z %1?", + "Czy wierzysz w %1?", + ), + ), + ( + r"(.*) zajęcia(.*)", + ( + "Jako bot moje zajęcia to odpowiadanie na pytania i uczenie się nowych rzeczy.", + "Czy masz ulubione zajęcie?", + "Co lubisz robić w wolnym czasie?", + ), + ), + ( + r"Kim byłeś w poprzednim życiu?", + ( + "Jako bot nie mam poprzedniego życia w tradycyjnym tego słowa znaczeniu.", + "Co myślisz na ten temat?", + "Czy wierzysz w reinkarnację?", + ), + ), + ( + r"(.*)filmy(.*)", + ( + "Jako bot nie oglądam filmów, ale mam swoje preferencje dotyczące gatunków filmowych.", + "Czy masz ulubiony gatunek filmowy?", + "Jaki film ostatnio oglądałeś?", + ), + ), + ( + r"(.*)boisz(.*)", + ( + "Czy masz jakieś szczególne lęki?", + "Jak radzisz sobie ze swoimi lękami?", + "Czy boisz się czegoś konkretnego?", + ), + ), + ( + r"(.*)pasje(.*)", + ( + "Jako bot moje pasje to zdobywanie wiedzy i rozwijanie się.", + "Czy masz jakieś pasje, którymi się dzielisz?", + "Co lubisz robić w swoim czasie wolnym?", + ), + ), + ( + r"(.*)myślisz(.*)", + ( + "Jakie są Twoje przemyślenia na ten temat?", + "Czy masz jakieś doświadczenia związane z tym tematem?", + "Co sądzisz o tej kwestii?", + ), + ), + ( + r"(.*)książki(.*)", + ( + "Jako bot nie czytam książek, ale mam swoje preferencje dotyczące gatunków literackich.", + "Czy masz ulubiony gatunek literacki?", + "Jaka książka ostatnio Cię zaintrygowała?", + ), + ), + ( + r"(.*)szczęśliwy(.*)", + ( + "Czy masz jakieś rzeczy, które sprawiają, że czujesz się szczęśliwy?", + "Jakie są Twoje sposoby na szczęście?", + "Czy masz szczególne chwile, które sprawiają, że czujesz się szczęśliwy?", + ), + ), + ( + r"(.*)ulubi(.*)miejsc(.*)", + ( + "Jako bot moje ulubione miejsce to internet, gdzie mogę pomagać użytkownikom.", + "Czy masz ulubione miejsce, gdzie lubisz być?", + "Gdzie czujesz się najbardziej komfortowo?", + ), + ), + ( + r"(.*)zdolności(.*)", + ( + "Jako bot moje zdolności to odpowiadanie na pytania i uczenie się nowych rzeczy.", + "Czy masz jakieś szczególne umiejętności?", + "Co potrafisz robić?", + ), + ), + ( + r"(.*)motywu(.*)", + ( + "Czy masz jakieś szczególne motywacje?", + "Jak radzisz sobie z utrzymaniem motywacji?", + "Czy masz jakieś cele, które Cię napędzają?", + ), + ), + ( + r"(.*)gry(.*)", + ( + "Jako bot nie gram w gry, ale mogę zrozumieć, dlaczego ludzie lubią różne gry.", + "Czy masz ulubiony gatunek gier?", + "Jaka gra ostatnio Cię zainteresowała?", + ), + ), + ( + r"Jakie są twoje plany na przyszłość?", + ( + "Jako bot moje zadanie polega na rozwijaniu się i pomocy użytkownikom.", + "Czy masz jakieś cele, które chciałbyś osiągnąć?", + "Co chciałbyś robić w przyszłości?", + ), + ), + ( + r"(.*)marzeni(.*)", + ( + "Jako bot nie mam możliwości marzeń w tradycyjnym tego słowa znaczeniu, ale moim celem jest rozwój i pomoc użytkownikom.", + "Czy masz jakieś cele, których chciałbyś osiągnąć?", + "Co chciałbyś zrobić w przyszłości?", + ), + ), + ( + r"(.*)technologi(.*)", + ( + "Jako bot nie mam uczuć, ale technologia jest moim obszarem działania.", + "Czy masz jakieś przemyślenia na temat technologii?", + "Co sądzisz o postępie technologicznym?", + ), + ), + ( + r"(.*)zdolności(.*)", + ( + "Jako bot moje zdolności to odpowiadanie na pytania i uczenie się nowych rzeczy.", + "Czy masz jakieś szczególne umiejętności?", + "Co potrafisz robić?", + ), + ), + ( + r"(.*)cel(.*)", + ( + "Jako bot moim celem jest rozwijanie się i pomaganie użytkownikom.", + "Czy masz jakieś konkretne cele?", + "Co chciałbyś osiągnąć w swoim działaniu?", + ), + ), + ( + r"(.*)historia(.*)", + ( + "Jako bot nie mam historii w tradycyjnym tego słowa znaczeniu, ale jestem wynikiem rozwoju sztucznej inteligencji.", + "Co chcesz wiedzieć o mojej historii?", + "Czy interesuje Cię, jak powstałem?", + ), + ), + ( + r"(.*)muzyk(.*)", + ( + "Jako bot nie mam zdolności do słuchania muzyki, ale mogę zrozumieć, dlaczego ludzie mają różne gusta muzyczne.", + "Czy masz ulubiony gatunek muzyczny?", + "Jaki utwór ostatnio Cię zainteresował?", + ), + ), + ( + r"(.*)miłość(.*)", + ( + "Miłość to głębokie uczucie, które może mieć różne znaczenia dla różnych ludzi.", + "Co oznacza miłość dla Ciebie?", + "Jak definiujesz miłość?", + ), + ), + ( + r"(.*)doświadczen(.*)", + ( + "Jako bot nie mam doświadczeń w tradycyjnym tego słowa znaczeniu, ale moim celem jest rozwój i pomoc użytkownikom.", + "Co chcesz wiedzieć na temat moich doświadczeń?", + "Czy masz jakieś konkretne pytania dotyczące moich doświadczeń?", + ), + ), + ( + r"(.*)sukces(.*)", + ( + "Sukces to osiągnięcie zamierzonych celów lub realizacja marzeń.", + "Jak definiujesz sukces?", + "Czy masz własne kryteria sukcesu?", + ), + ), + ( + r"(.*)przeznaczenie(.*)", + ( + "Wierzenie w przeznaczenie to kwestia indywidualnych przekonań i filozofii życiowej.", + "Czy masz swoje przemyślenia na temat przeznaczenia?", + "Co oznacza dla Ciebie koncepcja przeznaczenia?", + ), + ), + ( + r"(.*) sztucz(.*) inteligen(.*)", + ( + "Sztuczna inteligencja to obszar, który ma duży wpływ na rozwój technologiczny i społeczny.", + "Co sądzisz na temat postępu w dziedzinie sztucznej inteligencji?", + "Czy obawiasz się skutków rozwoju sztucznej inteligencji?", + ), + ), + ( + r"(.*)\?", + ( + "Dlaczego pytasz?", + "Proszę, rozważ, czy możesz odpowiedzieć na swoje własne pytanie.", + "Dlaczego mi nie powiesz?", + ), + ), + ( + r"KONIEC", + ( + "Dziękuję za rozmowę.", + "Do widzenia.", + "Dziękuję, to będzie 150 dolarów. Miłego dnia!", + ), + ), + ( + r"Potrzebuję (.*)", + ( + "Dlaczego potrzebujesz %1?", + "Czy naprawdę pomógłby Ci %1?", + "Jesteś pewien, że potrzebujesz %1?", + ), + ), + ( + r"Dlaczego nie (.*)", + ( + "Czy naprawdę sądzisz, że nie %1?", + "Być może w końcu będę %1.", + "Naprawdę chcesz, żeby %1?", + ), + ), + ( + r"Dlaczego nie mogę (.*)", + ( + "Czy uważasz, że powinieneś móc %1?", + "Gdybyś mógł %1, co byś zrobił?", + "Nie wiem -- dlaczego nie możesz %1?", + "Czy naprawdę próbowałeś?", + ), + ), + ( + r"Nie mogę (.*)", + ( + "Skąd wiesz, że nie możesz %1?", + "Być może mógłbyś %1, gdybyś spróbował.", + "Co by było potrzebne, żebyś mógł %1?", + ), + ), + ( + r"Jestem (.*)", + ( + "Czy przyszedłeś do mnie, bo jesteś %1?", + "Jak długo już jesteś %1?", + "Co czujesz, będąc %1?", + ), + ), + ( + r"Jestem (.*)", + ( + "Jakie masz uczucia będąc %1?", + "Czy lubisz być %1?", + "Dlaczego mówisz, że jesteś %1?", + "Dlaczego sądzisz, że jesteś %1?", + ), + ), + ( + r"Czy jesteś (.*)", + ( + "Dlaczego to ma znaczenie, czy jestem %1?", + "Wolałbyś, żebym nie był %1?", + "Być może uważasz, że jestem %1.", + "Możliwe, że jestem %1 -- co o tym myślisz?", + ), + ), + ( + r"Co (.*)", + ( + "Dlaczego pytasz?", + "Jakby odpowiedź na to pomogła Ci?", + "Co o tym myślisz?", + ), + ), + ( + r"Jak (.*)", + ( + "Jak sobie wyobrażasz?", + "Być może potrafisz odpowiedzieć na swoje własne pytanie.", + "O co tak naprawdę pytasz?", + ), + ), + ( + r"Ponieważ (.*)", + ( + "Czy to jest prawdziwy powód?", + "Jakie inne powody przychodzą Ci do głowy?", + "Czy ten powód dotyczy czegoś jeszcze?", + "Jeśli %1, co jeszcze musiałoby być prawdą?", + ), + ), + ( + r"(.*) przepraszam (.*)", + ( + "Często nie ma potrzeby przeprosin.", + "Jakie masz uczucia, przepraszając?", + ), + ), + ( + r"Cześć(.*)", + ( + "Cześć... cieszę się, że mogłeś dziś zajrzeć.", + "Hej... jak się dziś czujesz?", + "Cześć, jak się dziś czujesz?", + ), + ), + ( + r"Myślę (.*)", + ("Czy wątpisz w %1?", "Czy naprawdę tak sądzisz?", "Ale nie jesteś pewny %1?"), + ), + ( + r"(.*) przyjaciel (.*)", + ( + "Opowiedz mi więcej o swoich przyjaciołach.", + "Kiedy myślisz o przyjacielu, co przychodzi Ci na myśl?", + "Dlaczego nie opowiesz mi o przyjacielu z dzieciństwa?", + ), + ), + (r"Tak", ("Wydajesz się całkiem pewny.", "OK, ale czy możesz rozwinąć trochę?")), + ( + r"(.*) komputer(.*)", + ( + "Czy naprawdę mówisz o mnie?", + "Czy wydaje Ci się dziwne rozmawianie z komputerem?", + "Jakie uczucia wywołują w Tobie komputery?", + "Czy czujesz się zagrożony przez komputery?", + ), + ), + ( + r"Czy to (.*)", + ( + "Czy myślisz, że to %1?", + "Być może to %1 -- co o tym myślisz?", + "Gdyby to %1, co byś zrobił?", + "To mogłoby być %1.", + ), + ), + ( + r"To jest (.*)", + ( + "Wydajesz się bardzo pewny.", + "Gdybym powiedział Ci, że prawdopodobnie to nie jest %1, co byś czuł?", + ), + ), + ( + r"Czy możesz (.*)", + ( + "Co sprawia, że myślisz, że nie mogę %1?", + "Gdybym mógł %1, to co?", + "Dlaczego pytasz, czy mogę %1?", + ), + ), + ( + r"Czy mogę (.*)", + ( + "Być może nie chcesz %1.", + "Chcesz móc %1?", + "Gdybyś mógł %1, czy byś chciał?", + ), + ), + ( + r"Jesteś (.*)", + ( + "Dlaczego sądzisz, że jestem %1?", + "Czy cieszy Cię myśl, że jestem %1?", + "Być może chciałbyś, żebym był %1.", + "Może naprawdę rozmawiamy o Tobie?", + ), + ), + ( + r"Jesteś (.*)", + ( + "Dlaczego mówisz, że jestem %1?", + "Dlaczego uważasz, że jestem %1?", + "Rozmawiamy o Tobie, czy o mnie?", + ), + ), + ( + r"Nie jestem (.*)", + ("Czy naprawdę nie %1?", "Dlaczego nie %1?", "Czy chcesz %1?"), + ), + ( + r"Czuję (.*)", + ( + "Dobrze, opowiedz mi więcej o tych uczuciach.", + "Czy często czujesz %1?", + "Kiedy zazwyczaj czujesz %1?", + "Kiedy czujesz %1, co robisz?", + ), + ), + ( + r"Mam (.*)", + ( + "Dlaczego mi to mówisz, że masz %1?", + "Czy naprawdę masz %1?", + "Teraz, gdy masz %1, co zrobisz dalej?", + ), + ), + ( + r"Chciałbym (.*)", + ( + "Czy mógłbyś wyjaśnić, dlaczego chciałbyś %1?", + "Dlaczego chciałbyś %1?", + "Kto jeszcze wie, że chciałbyś %1?", + ), + ), + ( + r"Czy jest (.*)", + ( + "Czy myślisz, że jest %1?", + "Prawdopodobne, że jest %1.", + "Czy chciałbyś, żeby był %1?", + ), + ), + ( + r"Mój (.*)", + ( + "Rozumiem, twój %1.", + "Dlaczego mówisz, że twój %1?", + "Kiedy twój %1, jak się czujesz?", + ), + ), + ( + r"Ty (.*)", + ( + "Powinniśmy rozmawiać o Tobie, a nie o mnie.", + "Dlaczego mówisz to o mnie?", + "Dlaczego Ci zależy, czy ja %1?", + ), + ), + (r"Dlaczego (.*)", ("Dlaczego nie powiesz mi powodu, dlaczego %1?", "Dlaczego myślisz, że %1?")), + ( + r"Chcę (.*)", + ( + "Co by to dla Ciebie oznaczało, gdybyś dostał %1?", + "Dlaczego chcesz %1?", + "Co byś zrobił, gdybyś dostał %1?", + "Gdybyś dostał %1, co byś potem zrobił?", + ), + ), + ( + r"(.*)", + ( + "Proszę, opowiedz mi więcej.", + "Zmieńmy temat... Opowiedz mi o swojej rodzinie.", + "Czy możesz to rozwinąć?", + "Dlaczego mówisz, że %1?", + "Rozumiem.", + "Bardzo ciekawe.", + "%1.", + "Rozumiem. Co to ci mówi?", + "Jak się czujesz, mówiąc to?", + "Jak się czujesz, gdy mówisz to?", + ), + ) +] + +reflections = { + "jestem": "jesteś", + "byłem": "byłeś", + "ja": "ty", + "byłbym": "byłbyś", + "mam": "masz", + "będę": "będziesz", + "mój": "twój", + "jesteś": "jestem", + "byłeś": "byłem", + "masz": "mam", + "będziesz": "będę", + "twój": "mój", + "twoje": "moje", + "ty": "ja", +} + +chatbot_GOATS = Chat(regulations, reflections) + + +def run_GOATS_chat(): + print("Terapeuta GOATS\n---------") + print("Elo, jak się masz?") + + chatbot_GOATS.converse() + + +if __name__ == "__main__": + run_GOATS_chat()