覆盖ChatterBot中的预定义答案

时间:2017-08-20 12:27:11

标签: python chatbot chatterbot

我想为使用ChatterBot库编写的聊天机器人的特定问题指定我自己的答案。这是我的代码

from chatterbot import ChatBot

# Create a new chat bot named Charlie
chatbot = ChatBot(
    'Charlie',
    trainer='chatterbot.trainers.ListTrainer'
)

chatbot.train([
    "who are you?",
    "I'm a friendly chat bot"
])

# Get a response to the input text 'who are you?'
response = chatbot.get_response('who are you?')

print(response)

运行这段代码后的输出是

谁?谁只是一个遵循

功能的形式

而不是

我是一个友好的聊天机器人

所以看起来对库中嵌入的这个问题有一个预先指定的答案。如何配置仅使用我的答案的机器人?

2 个答案:

答案 0 :(得分:1)

@DavidBankom机器人只会训练您的数据。代码段也从source code中说明了相同的内容。

# Use specified trainer or fall back to the default
trainer = kwargs.get('trainer', 'chatterbot.trainers.Trainer')
TrainerClass = utils.import_module(trainer)
self.trainer = TrainerClass(self.storage, **kwargs)
self.training_data = kwargs.get('training_data')

我认为您在环境中pertained database exists会看到您的行为。

你能否尝试删除你的sqlite数据库文件,我认为在你的情况下它可以db.sqlite

default_uri = "sqlite:///db.sqlite3"

如果您需要帮助,请告诉我。

答案 1 :(得分:1)

您可以使用特定响应适配器。下面是示例代码。您可以在以下链接中找到更多信息:http://chatterbot.rtfd.org

{             'import_path':'chatterbot.logic.SpecificResponseAdapter',             'input_text':'帮帮我!',             'output_text':'好的,这是链接:{{3}}'         }