Чаттербот с обратной связью
Я новичок в ChatterBot, и я очень впечатлен его возможностями!
Но меня интересуют отзывы пользователей, если бот не сможет ответить лучшим решением.
Например: если я спрошу "Как дела?" и в его базе данных есть только ответ "У меня все хорошо", и я хочу получить ответ "У меня не очень хорошо", мне нужно будет обновить базу данных новым ответом.
В моем коде я достигаю этого, вставляя в список два предложения новостей "ans". Но, задавая новые вопросы, бот не отвечает на мои пожелания.
И примеры на GitHub " обратная связь по обучению" и " ответ по умолчанию", кажется, не очень хорошо работают (по крайней мере, на моем компьютере).
Может ли кто-нибудь помочь мне навязать ботам выбор лучшего ответа на основе моих отзывов? Я хотел бы использовать обратную связь для непосредственного обновления файла базы данных (db.sqlite3), удалив старый оператор базы данных, для этого при новом опросе бот ответит мне новой записью. Я не знаю, как удалить заявление базы данных.
Во многих попытках ответ не изменился, хотя список обновлялся...
Заранее спасибо.
PS: этот вопрос также в GitHub.
PS2: как я могу удалить ответ из базы данных? Изображение отношения "оператор-ответ"
from chatterbot.trainers import ListTrainer
from chatterbot import ChatBot
question,answer,y,n="","","",""
bot = ChatBot('Answ Bot')
ans= ['How are you?', 'I'm fine','And you?','I'm fine too, thanks']
bot.set_trainer(ListTrainer)
bot.train(ans)
while True:
question= input("User: ")
answer= bot.get_response(question)
if float(question.confidence) > 0.5:
print('Answ Bot: ', answer)
print('Answ Bot: was my response good? [y/n]')
r1=input()
if r1=='y':
print('Answ Bot: thank you for feedback')
else:
print('Answ Bot: may you teach me a better answer?')
r2=ans.index(answer)
ans2=ans.copy()
del ans2[r2]
answer2 = input("User: ")
ans2.insert(r2,answer2)
bot.train(ans2)
print(ans2)
else:
print('I don't know the answer.')