Watson Assistant CURL API: Как отправить последующее сообщение?

Я пробую IBM Watson Assistant. Конечная цель состоит в том, чтобы интегрировать его с моим пользовательским бэкэндом через Конечные точки cURL API Watson Assistant (потому что пока нет полного PHP SDK).

Позвольте мне рассказать, что я сделал до сих пор:

  1. Импортирован образец рабочей области из набора обучающих данных.
  2. Тогда я попробовал это, и он отлично работает.

введите описание изображения здесь

  1. Затем я попробовал то же самое с помощью API cURL, и получил ответ, подобный этому: (Формат вывода 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 вернется с сообщением:

«Поблизости есть автозаправочные станции. К какой из них вы бы хотели доехать?»

Но почему это не так. Если тогда, как мне этого добиться?

Вопрос 2)

Как я должным образом ответить назад с "Go to number 5." чтобы API понял, что я имею в виду предыдущий вызов? (ака) Как мне продолжить диалог? (Примечание: я попытался отправить обратно с предыдущими «контекстами», «сущностями», «намерениями», но это все равно как-то распознается как новое сообщение.)

Пожалуйста, поделитесь со мной примером вызова cURL для отслеживания предыдущего сообщения.


Поскольку полного PHP SDK еще нет, мне очень трудно понять только вызовы API cURL. Документация API также не объясняет эти детали. Пожалуйста помоги.

Спасибо вам всем.

0

Решение

API сообщений для Watson Assistant не имеет состояния. Все, что необходимо для обработки запроса, передается в виде параметров. Это включает в себя само сообщение, но также контекст. Контекст содержит состояние о том, где в диалоговом дереве находится диалог. Он также может содержать информацию, которая передается из WA в приложение, например, для обработки действия на стороне клиента. Или из приложения в WA, например, с записью из базы данных.

Подойдя к вашему запросу:

  • Ваш диалог, вероятно, отправляет этот ответ, когда начинается новый разговор. Я вижу, это так же, как в «Попробуйте это».
  • Вам нужно будет сначала отправить «Привет» или пустое сообщение, дождаться ответа от WA, а затем отправить свой «Мне нужен газ» вместе с данными контекста, которые вы получили от WA. Когда вы смотрите на детали, вы видите стек диалогов, счетчик поворотов и многое другое. Идентификатор беседы — это идентификатор текущего чата.
  • С учетом вышесказанного, следующий ответ WA должен быть точно таким же, как в «Попробуй», потому что ты спустился в дерево диалога.
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]