Списки фраз, предоставляемые серверной частью для каждого пользователя для Botframework

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

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

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

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

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

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


person Lukas Volf    schedule 21.05.2018    source источник


Ответы (1)


Во-первых, список фраз может помочь 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
    );

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

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

person Fei Han    schedule 22.05.2018
comment
Спасибо за предложение. Я знаю, что могу использовать подсказки, но в большинстве случаев разговор будет выглядеть так: Привет, Кортана, включи свет в столовой. К сожалению, комнаты под названием "гостиная" нет. Какую комнату вы имели в виду? Ванная, Кухня, Столовая ... Я хочу сказать, что когда я получаю текстовый ответ, я уже потерял всю голосовую информацию. По неверно интерпретированному названию комнаты я не могу догадаться, какая из настроенных комнат фонетически похожа. - person Lukas Volf; 23.05.2018