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

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

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

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

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

  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": ""
  }
}

А теперь позвольте мне понять 2 вещи.

Вопрос 1)

На этом этапе я ожидал, что API вернется с сообщением:

"There are gas stations nearby. Which one would you like to drive to?"

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

Вопрос 2)

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

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


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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
548
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

По вашему запросу:

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

Конечно. Спасибо.

夏期劇場 22.06.2018 11:20

Другие вопросы по теме