0

我想通过使用 node.js 的 APP 访问保存在 watson 对话 JSON 中的上下文变量。

我尝试将整个对话日志保存到cloudant并从那里获取。

有没有更简单的方法来访问上下文变量?我正在考虑向服务器发送一个 http 请求以获取正确的变量(我不知道要访问哪些变量)。

4

2 回答 2

0

从对话服务获得的响应是​​ JSON 格式。因此,您可以取出此 JSON 响应的“上下文”参数中可用的任何上下文值。以下是来自对话服务的简单响应。

{
"intents": [],
"entities": [],
"input": {
    "text": ""
},
"output": {
    "text": ["Hello MJ! How can I help you today?"],
    "nodes_visited": ["Conversation Start"],
    "log_messages": []
},
"context": {
    "username": "MJ",
    "conversation_id": "5835fa3b-6a1c-4ec5-92f9-22844684670e",
    "system": {
        "dialog_stack": [{
            "dialog_node": "Conversation Start"
        }],
        "dialog_turn_counter": 1,
        "dialog_request_counter": 1,
        "_node_output_map": {
            "Conversation Start": [0]
        }
    }
}

}

您将在响应的上下文键中拥有所有上下文变量。如果您检查此响应的上下文参数,您将看到“用户名”:“MJ”条目。这是我添加到服务上下文的自定义值。您可以根据需要格式化此响应并在您的应用程序中使用它。

于 2017-06-29T10:31:19.470 回答
0

根据您的需要,您可以在浏览器会话中存储上下文。这就是对话简单应用程序所做的事情。https://github.com/watson-developer-cloud/conversation-simple 在这种情况下,JSON 上下文对象被传递给浏览器,并在后续请求中再次传递回来. 另一种方法是将此信息存储在自定义存储中,例如 Cloudant

于 2016-10-25T06:15:18.280 回答