Как заставить Watson Conversation Api вызывать URL-адрес веб-приложения, когда пользователь вводит ввод?

У меня есть приложение spring mvc, и я хотел бы, чтобы мой пользователь вызывал бота, и бот на основе пользовательского ввода должен получить доступ к URL-адресу и на основе ответа предоставить ответ. Как я могу добиться этого в Java?


person briantaurostack7    schedule 26.10.2016    source источник


Ответы (2)


Прямого способа сделать это нет. Однако Watson Conversation предоставляет механизм для обработки таких запросов. Вам нужно будет сообщить вызывающему Java-приложению, что необходимо вызвать URL-адрес.

Это делается с помощью двух функций: Context.request skip_user_input.

request — это специальная переменная контекста, которая имеет аргументы, имя и результат. Он используется, чтобы сообщить вызывающему приложению, что оно должно выполнить какое-либо действие на основе этой переменной.

Параметр skip_user_input является необязательным. Во многих случаях вы можете захотеть выполнить некоторую бизнес-логику в своем приложении, а затем предоставить ее результаты через result. Если для параметра skip_user_input задано значение true, программа Watson Conversation не будет ждать ввода от пользователя. Таким образом, ваше условие на следующем узле должно основываться на содержимом внутри result.

{
  "output": {},
  "context": {
    "request": {
      "args": {
        "url_to_invoke": "your_url"
      },
      "name": "Call_A_URL",
      "result": "context.response"
    },
    "skip_user_input": true
  }
}
person Dudi    schedule 27.10.2016
comment
Чтобы выполнить вышеперечисленное, вам нужно будет нажать Watson Response -> Advanced. - person Dudi; 27.10.2016
comment
Как вызвать Watson Conversation с помощью телефонного звонка - person briantaurostack7; 29.10.2016
comment
@briantaurostack7, не могли бы вы уточнить? вы можете использовать Watson STT и TTS вместе с Watson Conversation. Я предлагаю вам открыть другой вопрос для этого. - person Dudi; 29.10.2016
comment
@Dudi должно ли мое приложение искать skip_user_input в контексте и решить немедленно вызвать службу разговоров? Или служба разговоров сама переходит к следующему узлу, и в этом случае я не понимаю, как выполняется запрос... - person mpjjonker; 13.12.2016
comment
Ваше приложение должно обработать запрос, обычно оно обновляет некоторую контекстную переменную. разговор автоматически пропустит ввод при следующем вызове API. Как он видит skip_user в вызове API - person Dudi; 13.12.2016
comment
Привет, друзья. У меня похожая проблема: попытка поместить один html-ввод (введите адрес электронной почты) в диалоговое окно разговора. Диалог Watson не записывает введенное значение в переменную контекста. Должен ли я использовать этот тип контекстного запроса, чтобы получить напечатанное электронное письмо? Наблюдения: я также разместил кнопку отправки под полем ввода. - person Alexandre Marini; 20.02.2017
comment
Здравствуйте, может ли кто-нибудь предложить пример для того же? - person kallada; 10.10.2017
comment
@Dudi, пожалуйста, предложите пример для того же? - person kallada; 10.10.2017

Эта функция теперь доступна с помощью облачных функций IBM. ссылка содержит подробную информацию о реализации.

person csharpnewbie    schedule 05.07.2018