На
import json
import os
import logging
from argparse import ArgumentParser
class AIChatBot:
def __init__(self, data_path='mozgovnet.json'):
self.data_path = data_path
self.data = self.load_data()
def load_data(self):
if not os.path.exists(self.data_path):
return {}
try:
with open(self.data_path, 'r', encoding='utf-8') as file:
return json.load(file)
except (IOError, json.JSONDecodeError) as e:
logging.error(f"Ошибка при загрузке данных: {e}")
return {}
def save_data(self):
try:
with open(self.data_path, 'w', encoding='utf-8') as file:
json.dump(self.data, file, ensure_ascii=False, indent=4)
except IOError as e:
logging.error(f"Ошибка при записи в файл: {e}")
def run(self):
name = input('AI приветствует вас, как вас зовут? ').strip()
while True:
try:
command = input('Что вы хотите? ').lower().strip()
if command in ('exit', 'выход'):
print('Прощай, я отключаюсь.')
break
if response := self.data.get(command):
print(response.replace("name", name))
else:
explanation = input('Не понимаю, объясните подробнее: ').strip()
if explanation:
self.data[command] = explanation
self.save_data()
print(f'Спасибо, теперь я знаю: "{command}" это "{explanation}".')
except Exception as e:
logging.error(f"Произошла ошибка: {e}")
print("Произошла ошибка. Пожалуйста, попробуйте снова.")
def main():
logging.basicConfig(level=logging.INFO)
parser = ArgumentParser(description='AI ChatBot')
parser.add_argument('--data-path', default='mozgovnet.json', help='Путь к файлу данных')
bot = AIChatBot(data_path=parser.parse_args().data_path)
bot.run()
if __name__ == "__main__":
main()
path='mozgovnet.txt'
name=input('AI Hitler приветствует вас, как тебя зовут пупсик?')
raz=';'
d={}
f=open(path,'r')
for line in f:
(key,val)=line.split(raz)
d[key]=val
f.close()
for i in d:
print(d[i])
AI=True
while AI==True:
s=input('chto vi hotite')
if s in d.keys():
text=d[s].replace("name",name)
text=d[s].replace("[i]",name)
print(d[s])
elif s=='exit' or s=='выход':
AI=False
print ('прощай пупсик ,я офаюсь')
else:
o=input('ты додик? обьясни по человечески ,а точно ')
d[s]=o
f=open(path,'a')
f.write('\n 's+';'+o)
f.close()
print ('спасибо полуфабрикат кожанный ,я теперь более умный'+s+'')