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 后端集成=]

让我说说我到目前为止做了什么:

  1. 从训练数据集中导入了示例工作区。
  2. 然后我试了一下,效果很好。

  1. 然后我通过 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" 中的完全相同,因为您已进入对话树。