首页 > 解决方案 > Rasa NLU 在线和训练版问题

问题描述

我读了 Sumit Raj 写的名为“使用 Python 构建聊天机器人:使用自然语言处理和机器学习”的书,并按照那里编写的代码进行操作。然后我来到了一个如何在线训练对话的示例代码,但后来我发现该代码已被弃用。这是代码:

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
import logging
from rasa_core import utils, train
from rasa_core.training import online
from rasa_core.interpreter import NaturalLanguageInterpreter
logger = logging.getLogger(__name__)
def train_agent(interpreter):
    return train.train_dialog_model(domain_file="horoscope_domain.yml",
    stories_file="data/stories.md", output_path="models/dialog", nlu_model_path=interpreter, 
    endpoints="endpoints.yml", max_history=2, kwargs={"batch_size": 50,"epochs": 200, 
    "max_training_samples": 300 })

if __name__ == '__main__': 
    utils.configure_colored_logging(loglevel="DEBUG") 
    nlu_model_path = "./models/nlu/default/horoscopebot" interpreter = 
    NaturalLanguageInterpreter.create(nlu_model_path) agent = train_agent(interpreter)
    online.serve_agent(agent)

那么结果是

ImportError:无法从“rasa_core.training”导入名称“在线”</p>

请帮我看看代码在最新版本中的样子。当我检查时,我使用的是 rasa nlu 0.15.1 版本。

非常感谢您的帮助。

标签: pythonrasa-nlurasarasa-core

解决方案


我强烈建议您使用最新版本,即 2.0 版。# 在此答案时。

从您使用的版本开始,Rasa 已经从 python 库演变为 python 应用程序,并具有强大的命令行界面。

您现在可以使用以下命令从命令行训练您的机器人:

rasa train

您可以使用以下命令测试机器人:

rasa test

然后您使用以下命令与机器人交谈:

rasa shell

如果您更喜欢将 Rasa 用作库,您可以在使用 Rasa 和 Jupyter Notebook文档中找到训练、测试和聊天的方法。


推荐阅读