Тут меня осенило: у нас есть приложение для выездных услуг, которое я могу превратить в нечто потрясающее.

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

Бьюсь об заклад, вы думаете, что это фигурально, но я серьезно. Моя искра сидела очень близко. Я работаю с Кристианой - или, как я теперь ее называю, Спарки - в той же компании. Так что, когда я наткнулся на ее пост об интеграции с Alexa, это был действительно тревожный звонок!

Здесь есть эхо?

С тех пор, как я купил свой собственный Amazon Echo и установил его в своей гостиной, я думал об интеграции голоса с Alexa. Когда я прочитал первое руководство Кристианы о том, как настроить навык Alexa, я знал, что у меня есть все необходимое для создания собственного проекта. В частности, потому что в нем упоминается установка конечной точки REST, что чрезвычайно просто с нашим инструментом разработки.

Самым сложным было решить, что на самом деле с этим делать. Я придумывал некоторые идеи, и хотя некоторые были просто более интересными, чем другие, всем им не хватало реальной цели, понимаете? Это были просто пустые технические демонстрации или демонстрации интеграции. Ни один из них не был действительно полезным в чьей-либо повседневной жизни.

Вот почему, друзья мои, их называют доказательством концептуальных приложений. Это крутые технические демонстрации, но не более того.

Для этого есть приложение Field Services

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

Это совершенно особый случай использования. Большинство техников проводят день в поле за рулем. Разве не было бы замечательно, если бы у них был спутник, который просматривал их заказы по команде, чтобы получить дополнительную информацию, пока они ехали к дому клиента?

Итак, все было решено. Теперь все, что мне нужно было сделать, это посмотреть, смогу ли я следовать инструкциям Кристианы и запустить эту штуку.

Пора испытать старые добрые навыки разработчиков

Первый шаг: создайте навык Amazon. Маленький шаг для разработчика. Так родился мой навык полевой службы. Ответ Алексы может вызвать простая фраза: «Алекса, спроси полевые услуги…»

Очень просто. Но по какой-то причине что-то подсказало мне подумать над этим. Иногда мы склонны спешить с решением, вместо того, чтобы тратить время на полное понимание поставленной задачи. Техническая интеграция возможна и довольно проста - я не пойду туда, так как Кристиана опубликует статью об этом очень скоро - но какие вопросы на самом деле будут иметь смысл для приложения для полевых услуг?

Итак, если вы сидите за рулем, готовясь к следующему заданию в дороге, на какие вопросы вы, скорее всего, захотите получить ответы? Вот как я придумал 4 запроса, сопоставленных с соответствующим намерением:

  1. Сколько у меня заказов? (CountOrdersIntent)
  2. Каковы сведения о моем заказе? (NextOrderIntent)
  3. Есть ли в заказе дополнительные примечания? (OrderNotesIntent)
  4. Доволен ли покупатель? (RatingIntent)

Итак, все, что мне нужно было сделать, это определить высказывания - то, что вы на самом деле говорите (произносите), что Alexa распознает.

Я старался излагать свои высказывания как можно проще с первой попытки. Я знал, что со временем они должны стать более сложными, потому что на естественном языке есть много способов просить об одном и том же. Но об этом позже. А пока мы будем придерживаться простоты.

После этой быстрой настройки мне пришлось создать конечную точку, которая будет получать сообщения от Alexa на основе четырех вопросов. Реализовать логику было несложно, так как у меня уже было работающее приложение для полевых услуг. Не хватало только способа получить намерение и атрибуты сообщения от Alexa, запросить базу данных и создать соответствующий ответ.

В визуальной среде IDE инструмента разработки, который я использую, который разработан моей компанией - OutSystems - есть вкладка, которая показывает логику, которую вы пытаетесь реализовать. Последовательность действий выглядит примерно так:

С этой логикой, запущенной и запущенной - и с помощью Amazon Developer Console - тестирование стало проще простого.

В консоли разработчика Amazon есть отличная функция, которая позволяет имитировать ваш запрос и отображать сообщение, полученное с вашей конечной точки. Таким образом, я смог ускорить разработку и тестирование, потому что очень легко понять, что происходит под капотом.

Следующий!

Вы помните то чувство, которое у вас было в детстве, когда вы строили что-то из блоков, а затем, сразу после завершения, вы думали: «Ну, это круто и все такое, но вы знаете, что было бы действительно, действительно круто?»

Именно это и случилось со мной. Я был взволнован, но все еще не полностью удовлетворен тем, что я создал для приложения полевых услуг. Я хотел пойти немного дальше. Я хотел спросить Алексу о «следующем заказе» и получить ее ответ в контексте. И это слово является ключевым.

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

Таким образом, всякий раз, когда Алекса получает запрос на обработку детали заказа, ее ответ будет иметь порядковый номер, соответствующий этой детали заказа. Имея эту информацию, вы также знаете порядковый номер следующего заказа.

Таким образом, если вы запрашиваете «Следующий заказ», а ответом на ваш последний заказ является заказ №1, вы получите подробную информацию о следующем заказе в строке: номер индекса 2.

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

Идите вперед и внедряйте инновации

Они говорят, что есть два пути к инновациям: первый - через подрыв; другой - сбор и объединение существующих инструментов и навыков для создания чего-то совершенно нового.

Я считаю, что у вас уже есть необходимые инструменты и навыки, так чего же вы ждете? Стройте что-нибудь новое! Между тем, Алекса и я будем играть в приложение полевых услуг.

Бруно Мартиньо | Мобильный и Front-End эксперт в OutSystems