Списки фраз, предоставляемые внутренним пользователем для Botframework - PullRequest
0 голосов
/ 21 мая 2018

У меня есть бэкэнд-сервис, где пользователи могут создавать и называть номера и устройства.Я хотел бы интегрироваться с Cortana и позволить пользователям взаимодействовать со своими устройствами с помощью Cortana.Я создал бота, который размещен на моем бэкэнде, и добавил Cortana в качестве канала.Я также интегрировал бота с моим сервером OAuth 2, чтобы я знал, какой пользователь взаимодействует с ним.Я обучил свою модель LUIS фразам «включить свет в ванной», «выключить все огни» и т. Д.

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

Что приводит меня к моему вопросу: можно ли изменить список фразна пользователя?Или настроить URL-адрес, с которого можно получить самый последний список фраз перед обработкой запроса LUIS?По сути, все, что мне нужно, - это не получать запрос на включение света в «гостиной», в то время как в системе нет настроенной пользователем гостиной, и вместо этого это должна быть «столовая» (это простой пример).в реальном мире это было бы более сложно).

Я знаю, что есть LUIS REST API, который можно использовать для динамического изменения конфигурации, но: 1) он не для каждого пользователя 2) онтребует пересоздания и повторной публикации модели LUIS

Я считаю, что навыки Connected Home решают эту проблему каким-то образом, обнаруживая все устройства, подключенные к услуге, но я не нашел никаких API-интерфейсов, которые мог бы использовать для решения этой проблемы.в моем мастерстве.

Редактировать: Я ищу такую ​​функциональность: Cortana Connected Home После привязки учетной записи Hue Cortana знает, какие устройства есть у пользователя, и в этот момент распознавание голоса можетбудьте умны и попытайтесь сопоставить произнесенные слова с реальным именем устройства.

1 Ответ

0 голосов
/ 22 мая 2018

Во-первых, функция списка фраз может помочь LUIS распознавать намерения и сущности, что повлияет на все приложение LUIS.Насколько я знаю, в LUIS не существует концепции списка фраз для каждого пользователя.

Во-вторых, приложение LUIS поддерживает 5000 элементов в списке фраз , если количество имен комнат системы (или устройств) вашего приложения не превышает ограничение, вы можете добавить имя всех комнат всписок фраз (и добавьте имя всех устройств в другой список фраз).

Кроме того, вы также можете попробовать этот подход: когда пользователи могут создавать и называть номера и устройства, вы можете сопоставить информацию о пользователе с комнатами и устройствами ихранить информацию карты во внешнем хранилище, таком как база данных и т. д. И если вы передаете запрос в LUIS , LUIS поможет определить намерение и объект (или список объектов или пустой объект), если естьв списке сущностей нет ни одной сущности, вы можете запросить записи названия комнат из этого внешнего хранилища и предложить пользователю выбрать комнату.

Фрагмент кода:

//query records of rooms’ name from that external store 
//then prompt user for select a room

PromptDialog.Choice(
    context: context,
    resume: ChoiceReceivedAsync,
    options: options,
    prompt: "Hi. Please Select the Room :",
    retry: "Please try again.",
    promptStyle: PromptStyle.Auto
    );

Результат теста:

enter image description here

...