【发布时间】:2018-05-02 12:40:37
【问题描述】:
我想记录来自 Rasa 机器人的对话(尤其是意图)。当 Rasa NLU 作为 http 服务器运行时,有一个完美的功能,但是在命令行模式下运行时我似乎找不到任何类似的东西。有没有办法做到这一点 ?如果没有,会有办法实现吗?
【问题讨论】:
标签: logging rasa-nlu rasa-core
我想记录来自 Rasa 机器人的对话(尤其是意图)。当 Rasa NLU 作为 http 服务器运行时,有一个完美的功能,但是在命令行模式下运行时我似乎找不到任何类似的东西。有没有办法做到这一点 ?如果没有,会有办法实现吗?
【问题讨论】:
标签: logging rasa-nlu rasa-core
在 Rasa Core architecture 中,一个名为 Tracker 的类包含当前对话的历史记录。
我想你可以通过调用它的as_dialoguemethod来实现你的日志。
看docs,这个序列化的输出似乎和服务器产生的日志中的项目一模一样:
{
"py/object":"rasa_core.conversation.Dialogue",
"events":[
{
"py/object": "rasa_core.events.UserUttered",
"entities": [],
"intent": {
"name": "greet",
"confidence": 1.0
},
"text": "/greet"
},
{
"py/object": "rasa_core.events.ActionExecuted",
"action_name": "utter_greet",
"unpredictable": false
}
],
"name":"hello_world"
}
【讨论】:
命令行模式到底是什么意思?如果你启动服务器:
python -m rasa_nlu.server --path projects --response_log logs
应该启用日志记录。这假定版本为 0.12.3
【讨论】:
def run(serve_forever=True): interpreter = RasaNLUInterpreter("models/nlu/default/current") agent = Agent.load("models/dialogue", interpreter=interpreter) if serve_forever: agent.handle_channel(ConsoleInputChannel()) return agent