Получение TypeError: должно быть str, а не list, при попытке общаться с чат-ботом вы можете найти код ниже - PullRequest
0 голосов
/ 11 июля 2020

Создал этот простой чат-бот, но сразу же, когда я начал разговаривать, он выдает ошибку, может кто-нибудь объяснить, почему я получаю ошибку?

from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer

chatbot = ChatBot(['hi! there!',
                  'hi!',
                  'how do you do?',
                  'i\'m cool',
                  'fine, you?',
                  'always cool',
                  'i\m ok',
                  'glad to hear that',
                  'i feel awesome',
                  'excellent, glad to hear that',
                  'not so good',
                  'what\'s your name?'])

list_trainer = ListTrainer(chatbot)
'''
while True:
   request = input('You: ')
   response = chatbot.get_response(request)
   print('Bot: ',response)
'''

Это сообщение об ошибке:

You: how are you?

---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
         <ipython-input-30-31083fafbef3> in <module>()
         1 while True:
         2   request = input('You: ')
   ----> 3   response = chatbot.get_response(request)
         4   print('Bot: ',response)


    TypeError: must be str, not list
''''''''''''''''

Как решить эту проблему?

1 Ответ

0 голосов
/ 11 июля 2020

Из документации Chatterbot quickstart похоже, что ChatBot ожидает имя бота (строку), а не список. Вы можете предоставить список разговоров позже на этапе поезда.

from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer

chatbot = ChatBot('Bot Name Here')

list_trainer = ListTrainer(chatbot)

list_trainer.train([
    'hi! there!',
    'hi!',
    'how do you do?',
    'i\'m cool',
    'fine, you?',
    'always cool',
    'i\m ok',
    'glad to hear that',
    'i feel awesome',
    'excellent, glad to hear that',
    'not so good',
    'what\'s your name?'])

# Check that the bot name has been set correctly
print('bot name:', chatbot.name)
assert isinstance(chatbot.name, str), "Chatbot name needs to be a string!"

response = chatbot.get_response("how do you do?")
print(response)
...