我想通过使用 node.js 的 APP 访问保存在 watson 对话 JSON 中的上下文变量。
我尝试将整个对话日志保存到cloudant并从那里获取。
有没有更简单的方法来访问上下文变量?我正在考虑向服务器发送一个 http 请求以获取正确的变量(我不知道要访问哪些变量)。
我想通过使用 node.js 的 APP 访问保存在 watson 对话 JSON 中的上下文变量。
我尝试将整个对话日志保存到cloudant并从那里获取。
有没有更简单的方法来访问上下文变量?我正在考虑向服务器发送一个 http 请求以获取正确的变量(我不知道要访问哪些变量)。
从对话服务获得的响应是 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”条目。这是我添加到服务上下文的自定义值。您可以根据需要格式化此响应并在您的应用程序中使用它。
根据您的需要,您可以在浏览器会话中存储上下文。这就是对话简单应用程序所做的事情。https://github.com/watson-developer-cloud/conversation-simple 在这种情况下,JSON 上下文对象被传递给浏览器,并在后续请求中再次传递回来. 另一种方法是将此信息存储在自定义存储中,例如 Cloudant