generating responses

This commit is contained in:
Mikołaj Mrożewski 2023-03-16 14:53:36 +01:00
parent b72ec326cb
commit 205b629b2d

33
main.py
View File

@ -1,6 +1,16 @@
import re
import random
pairs = { dictionary = {
r'.*czuję się (.*)': [ "cześć": ["Witaj. Jak mogę Ci pomóc?",
"Cześć. Co Ciebie dzisiaj sprowadza?",
"Hej, tu Eliza. O czym chcesz porozmawiać?"],
"tak": ["Dobrze, a powiedz coś więcej."],
"nie": ["Dlaczego nie?", "Co skłania Cię do tej odpowiedzi?"],
r'czuję się (.*)': [
'Dlaczego czujesz się %1?', 'Dlaczego czujesz się %1?',
'Czy to zawsze tak jest, kiedy czujesz się %1?' 'Czy to zawsze tak jest, kiedy czujesz się %1?'
'Co zazwyczaj robisz, kiedy się tak czujesz %1?' 'Co zazwyczaj robisz, kiedy się tak czujesz %1?'
@ -29,24 +39,25 @@ pairs = {
# funkcja zwracająca odpowiedź na zadane pytanie # funkcja zwracająca odpowiedź na zadane pytanie
def eliza_response(message): def elisa_response(input_text):
for key, answers in pairs.items(): for pattern, response_list in dictionary.items():
matches = re.match(key, message.lower()) matches = re.match(pattern, input_text.lower())
if matches: if matches:
chosen_answer = random.choice(answers) chosen_response = random.choice(response_list)
return chosen_answer return chosen_response.format(*matches.groups())
return "Nie rozumiem" return "Nie rozumiem."
# pętla główna programu # pętla główna programu
def main(): def main():
print('Cześć, jestem Eliza. Jak się czujesz dzisiaj?') print('Cześć, jestem Eliza. Jak się czujesz dzisiaj?')
while True: while True:
insert = input('Ty: ') insert = input('')
if insert.lower() in ['do widzenia', 'do zobaczenia', 'na razie' if insert.lower() in ['do widzenia', 'do zobaczenia', 'na razie'
'pa', 'cześć', 'żegnam', 'do usłyszenia', 'pa', 'żegnam', 'do usłyszenia',
'zakończ', 'koniec', 'elo', 'żegnaj' 'zakończ', 'koniec', 'elo', 'żegnaj'
'do usłyszenia', 'pa pa', 'do następnego razu']: 'do usłyszenia', 'pa pa', 'do następnego razu']:
print('Eliza: Do widzenia!') print('Do widzenia!')
break break
print(eliza_response(insert)) print(eliza_response(insert))