По моему мнению, вы должны соответствующим образом обучить своего бота. Я имею в виду начать с ответа, а затем добавить последующий разговор к данным обучения.
Например, данные обучения должны быть примерно такими:
data = [
"Tony", #I started with an answer
"that's a good name",
"thank you",
"you are welcome"]
Тогда начните свой разговор со статического утверждения, как
print ("chatBot: hai, как тебя зовут?")
Я добавил пример кода ниже.
data = [
"Tony",
"that's a good name",
"thank you",
"you are welcome"]
bot.train(data)
print("chatbot: what is your name?")
message = input("you: ")
while True:
if message.strip() != 'Bye'.lower():
reply = bot.get_response(message)
print('ChatBot:',reply)
if message.strip() == 'Bye'.lower():
print('ChatBot: Bye')
break
message = input("you: ")
Из документов :
Для процесса обучения вам нужно будет передать список утверждений, где порядок каждого утверждения основан на его размещении в данном разговоре.
Например, если бы вы запускали бота из следующих обучающих звонков, то получившийся болтун ответил бы на оба утверждения «Привет!» И «Привет!», Сказав «Привет».
from chatterbot.trainers import ListTrainer
chatterbot = ChatBot("Training Example")
chatterbot.set_trainer(ListTrainer)
chatterbot.train([
"Hi there!",
"Hello",
])
chatterbot.train([
"Greetings!",
"Hello",
])
Это означает, что порядок вопросов и ответов имеет значение.
Когда вы тренируете два предложения, бот принимает в качестве первого из них вопрос, а второй ответ.