Watson Assistant CURL API:如何发送跟进消息?
Watson Assistant CURL API: How to send follow up message?
我正在试用 IBM Watson Assistant。最终目标是通过它的 Watson Assistant's cURL API Endpoints (因为还没有完整的 PHP SDK).[=16 将它与我的自定义 PHP 后端集成=]
让我说说我到目前为止做了什么:
- 从训练数据集中导入了示例工作区。
- 然后我试了一下,效果很好。
- 然后我通过 cURL API 尝试了完全相同的操作,我得到了这样的响应:(美化了 json 输出格式)
.
{
"intents": [
{
"intent": "locate_amenity",
"confidence": 0.999901008605957
}
],
"entities": [
{
"entity": "amenity",
"location": [
7,
10
],
"value": "gas",
"confidence": 1
}
],
"input": {
"text": "i need some gas"
},
"output": {
"text": [
"Hi. It looks like a nice drive today. What would you like me to do? "
],
"nodes_visited": [
"Start And Initialize Context"
],
"log_messages": []
},
"context": {
"conversation_id": "153c18ee-1015-4b6a-ae04-789e29bf4a05",
"system": {
"dialog_stack": [
{
"dialog_node": "root"
}
],
"dialog_turn_counter": 1,
"dialog_request_counter": 1,
"_node_output_map": {
"Start And Initialize Context": [
0,
0
]
},
"branch_exited": true,
"branch_exited_reason": "completed"
},
"AConoff": "off",
"lightonoff": "off",
"musiconoff": "off",
"appl_action": "",
"heateronoff": "off",
"volumeonoff": "off",
"wipersonoff": "off",
"default_counter": 0,
"previous_cuisine": "",
"previous_restaurant_date": "",
"previous_restaurant_time": ""
}
}
现在请让我明白两件事。
问题 (1)
此时,我期待 API 到 return 的消息:
"There are gas stations nearby. Which one would you like to drive to?"
但为什么没有。如果可以,我该如何实现?
问题(2)
如何正确地回复"Go to number 5."
,以便API明白我指的是之前的通话? (又名)如何继续对话流程? (注意:我尝试用之前的 "contexts"、"entities"、"intents" 发回,但它仍然被识别为 新消息 。)
请与我分享一个 cURL 调用示例以跟进上一条消息。
由于还没有完整的 PHP SDK,我很难仅通过 cURL API 调用来理解。 API 文档也没有详细说明。请帮忙。
谢谢大家
Watson Assistant 的消息 API 是无状态的。处理请求所需的一切都作为参数提交。这包括消息本身,也包括上下文。上下文保存对话在对话树中位置的状态。它还可以保存从 WA 传输到应用程序的信息,例如,处理客户端操作。或者从应用程序到 WA,例如,使用数据库中的记录。
满足您的要求:
- 您的对话可能会在开始新对话时发出该响应。我看到它与 "Try it out" 中的相同。
- 您需要先发送 "Hi" 或空消息,等待 WA 的回复,然后将您的 "I need gas" 连同您从 WA 收到的上下文数据一起发送。当您查看细节时,您会看到对话框堆栈、转向计数器等。对话 ID 是当前聊天的标识符。
- 根据以上内容,WA 的下一个响应应该与 "Try it out" 中的完全相同,因为您已进入对话树。
我正在试用 IBM Watson Assistant。最终目标是通过它的 Watson Assistant's cURL API Endpoints (因为还没有完整的 PHP SDK).[=16 将它与我的自定义 PHP 后端集成=]
让我说说我到目前为止做了什么:
- 从训练数据集中导入了示例工作区。
- 然后我试了一下,效果很好。
- 然后我通过 cURL API 尝试了完全相同的操作,我得到了这样的响应:(美化了 json 输出格式)
.
{
"intents": [
{
"intent": "locate_amenity",
"confidence": 0.999901008605957
}
],
"entities": [
{
"entity": "amenity",
"location": [
7,
10
],
"value": "gas",
"confidence": 1
}
],
"input": {
"text": "i need some gas"
},
"output": {
"text": [
"Hi. It looks like a nice drive today. What would you like me to do? "
],
"nodes_visited": [
"Start And Initialize Context"
],
"log_messages": []
},
"context": {
"conversation_id": "153c18ee-1015-4b6a-ae04-789e29bf4a05",
"system": {
"dialog_stack": [
{
"dialog_node": "root"
}
],
"dialog_turn_counter": 1,
"dialog_request_counter": 1,
"_node_output_map": {
"Start And Initialize Context": [
0,
0
]
},
"branch_exited": true,
"branch_exited_reason": "completed"
},
"AConoff": "off",
"lightonoff": "off",
"musiconoff": "off",
"appl_action": "",
"heateronoff": "off",
"volumeonoff": "off",
"wipersonoff": "off",
"default_counter": 0,
"previous_cuisine": "",
"previous_restaurant_date": "",
"previous_restaurant_time": ""
}
}
现在请让我明白两件事。
问题 (1)
此时,我期待 API 到 return 的消息:
"There are gas stations nearby. Which one would you like to drive to?"
但为什么没有。如果可以,我该如何实现?
问题(2)
如何正确地回复"Go to number 5."
,以便API明白我指的是之前的通话? (又名)如何继续对话流程? (注意:我尝试用之前的 "contexts"、"entities"、"intents" 发回,但它仍然被识别为 新消息 。)
请与我分享一个 cURL 调用示例以跟进上一条消息。
由于还没有完整的 PHP SDK,我很难仅通过 cURL API 调用来理解。 API 文档也没有详细说明。请帮忙。
谢谢大家
Watson Assistant 的消息 API 是无状态的。处理请求所需的一切都作为参数提交。这包括消息本身,也包括上下文。上下文保存对话在对话树中位置的状态。它还可以保存从 WA 传输到应用程序的信息,例如,处理客户端操作。或者从应用程序到 WA,例如,使用数据库中的记录。
满足您的要求:
- 您的对话可能会在开始新对话时发出该响应。我看到它与 "Try it out" 中的相同。
- 您需要先发送 "Hi" 或空消息,等待 WA 的回复,然后将您的 "I need gas" 连同您从 WA 收到的上下文数据一起发送。当您查看细节时,您会看到对话框堆栈、转向计数器等。对话 ID 是当前聊天的标识符。
- 根据以上内容,WA 的下一个响应应该与 "Try it out" 中的完全相同,因为您已进入对话树。