Подключаете веб-сервис, который может задавать вопросы и получать ответы?

Можно ли каким-то образом вызвать веб-службу, которая может задать вопросы и получить ответ?

Разрешите пояснить: дома у меня есть медиацентр с несколькими фильмами. Конечно, его содержимое со временем меняется: файлы добавляются, удаляются, переименовываются и так далее.

Теперь я хотел бы сказать, например, «Окей, Google, играй в Wizard of oz», а затем на моем телевизоре должен играть Wizard of oz.

Поскольку я знаю, как разрабатывать вещи в .NET, веб-сервис, работающий дома, уже существует и работает нормально, запускаются фильмы. И я думаю, благодаря API.ai я смогу подключить его через функцию веб-перехватчика к Google Home.

Но что, если результатов несколько, и я хочу спросить, какой результат следует выбрать? Например:

  1. Пользователь говорит: "Играй в Звездные войны"
  2. Google Home вызывает мою веб-службу, которая проверяет мой диск и обнаруживает, что есть несколько фильмов по «Звездным войнам».
  3. Теперь пользователя нужно спросить: «Есть несколько результатов. Какой из них вы хотели бы увидеть? Звездные войны: Новая надежда, Звездные войны: Империя наносит ответный удар, ...»
  4. Теперь пользователь отвечает: «Звездные войны: новая надежда».
  5. Google Home снова вызывает веб-службу с этой информацией и после успеха отвечает: «Хорошо, играем в« Звездные войны: новая надежда »».

Я не понял, как это сделать с API.ai. Насколько я понимаю, API.ai вызывает веб-службу с некоторыми параметрами (JSON), отправляет текст ответа, полученный от веб-службы, обратно в Google Home, а затем просто завершает работу.

Или я что-то упустил? Вы, ребята, знаете, как я могу реализовать этот сценарий?

Или мы можем как-то разработать наши частные службы, подобные перечисленным в приложении Google Home (Akinator, Dominos, CNBC, ...), или это возможно только в качестве партнера? Было бы неплохо.

Заранее спасибо!


person Pandora    schedule 28.12.2016    source источник
comment
У вас есть шаблон того, как выглядит код .NET Webhook? в частности, я хочу знать, как анализировать входящий запрос и как формировать исходящий ответ.   -  person Ambrose Leung    schedule 24.11.2017


Ответы (2)


Насколько я понимаю, API.ai вызывает веб-службу с некоторыми параметрами (JSON), отправляет текст ответа, полученный от веб-службы, обратно в Google Home, а затем просто завершает работу.

Бот по-прежнему контролирует, если вы не отправите из своего веб-сервиса:

data: {
  google: {
   expect_user_response: false,
 }
}

или установите этот флажок в API.AI на панели намерений

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

Если вы используете ActionsSDKAssistant, убедитесь, что вы используете правильный метод. Спросите или скажите

https://developers.google.com/actions/reference/ActionsSdkAssistant#ask https://developers.google.com/actions/reference/ActionsSdkAssistant#tell

person SysCoder    schedule 29.12.2016
comment
это была подсказка, которую я искал! спасибо, нигде не нашел ту информацию :-) - person Pandora; 30.12.2016

Вам необходимо изучить API, формат запроса / ответа api.ai webhook и реализовать его. Ознакомьтесь с этим руководством. Тогда, конечно, вам придется проделать дыру в вашем брандмауэре, чтобы иметь возможность принимать звонки от Google или использовать ngrok или BST-прокси.

person Bela Vizy    schedule 29.12.2016
comment
спасибо - я думаю, это не очень помогает :) как сказано, я знаю, как ответить. но я не понял, как что-то спросить у веб-службы, получить ответ и снова ответить из веб-службы. Я знаю про переадресацию портов, уже работает. - person Pandora; 29.12.2016
comment
Ой, извините, что неправильно вас понял. SysCoder прав. Собственно это то, что я имел в виду, изучая API. Вы либо используете Node SDK, либо просто создаете ответ JSON самостоятельно. - person Bela Vizy; 30.12.2016