чаттерботу требуется время, чтобы ответить - PullRequest
2 голосов
/ 27 мая 2020

У меня есть фрагмент кода, который я взял из примера. На repl.it все было нормально, как ответ через несколько секунд. Но через некоторое время он начал возвращать ответ примерно через 1-3 минуты, даже больше или никогда.
Это начало происходить внезапно при перезапуске запуска. Я пробовал сбросить базу данных. Это не помогло. Потом попробовал сделать новый ответ. Это тоже не помогло

Вот мой код:

from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer
import logging


'''
This is an example showing how to train a chat bot using the
ChatterBot Corpus of conversation dialog.
'''

# Enable info level logging
logging.basicConfig(level=logging.INFO)

chatbot = ChatBot('Example Bot')

# Start by training our bot with the ChatterBot corpus data
chatbot.set_trainer(ChatterBotCorpusTrainer)

chatbot.train(
    'chatterbot.corpus.english'
)
while True:
    inp = input("=> ")
    print(chatbot.get_response(inp))

Он начинает работать нормально, но застревает на:

/opt/virtualenvs/python3/lib/python3.8/site-packages/chatterbot/storage/jsonfile.py:24: UnsuitableForProductionWarning:The JsonFileStorageAdapter is not recommended for production environments.
warnings.warn(
=> Hello
INFO:chatterbot.adapters:Recieved input statement: Hello
INFO:chatterbot.adapters:"Hello" is a known statement

Вот ссылка на repl: https://repl.it/@blackskull12 / chatterbottest # main.py


Если я заменю:

chatbot.set_trainer(ChatterBotCorpusTrainer)

chatbot.train(
    'chatterbot.corpus.english'
)

на:

trainer = ChatterBotCorpusTrainer(chatbot)

trainer.train(
    'chatterbot.corpus.english'
)

Это изменение отлично работает на моем p c. Но выдает ошибку при ответе. ChatBot has no atribute 'find'

Понятия не имею, что дальше. Может ли кто-нибудь помочь мне вернуть немного жизни моему боту?

1 Ответ

0 голосов
/ 27 мая 2020

TDRL; Я не уверен, почему он там «застревает», но если он отлично работает на вашем P C, то проблема, скорее всего, в том, что версия chatterbox на Repl.it является старая версия (хотя ответ может не работать из-за проблем с разрешениями или проверок / ограничений производительности).

Ошибка «найти»

Как видно из следующего трекера проблем на github :

Атрибут find был недавно удален в версии 1.0 .0a1, но я не уверен, почему вы получили это сообщение от версии 0.8.7.

Вы можете либо перейти на предыдущую версию на вашем P C (чтобы соответствовать версия в repl.it) 1 :

pip3 install chatterbot==0.8.6

или переустановите chatterbox и обновите его до версии 1.0.0a1 для работы с методом chatbot.set_trainer(ChatterBotCorpusTrainer)). На вашем P C это будет:

sudo pip3 uninstall chatterbot
sudo pip3 install chatterbot --no-cache-dir

Для Repl.it :2 у них есть GUI менеджер пакетов, вы можете используйте для установки пакета в соответствии с их документами:

Нажмите на символ «Пакет»:

picture of adding package_box on left top

Поиск для и нажмите на пакет, затем на знак плюса, чтобы добавить его

Then click on the plus sign

Что должно отобразить его как установка версии 1.1 ....

Shows dependency installing

Чтобы проверить, какую версию вы используете на своем домашнем рабочем столе, используйте следующее (независимо от вашего псевдонима Python):

python3 -m chatterbot --version

1: Я не рекомендую это, поскольку он работает на вашем P C, поэтому обновление кажется более вероятным решением.

2: Я не рекомендую использовать Repl.it для этого, так как небольшой ответ требует много времени - потребовалось много времени, чтобы установить 9 зависимостей в моей системе и repl.it имеет несколько ограничений ЦП как один ожидал бы. У меня также есть платная учетная запись, что дает мне разные разрешения. Если это не сработает, обратитесь в их службу поддержки.

...