Отправить параметры в Cortana Skill - PullRequest
0 голосов
/ 04 октября 2018

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

Получить профиль пользователя и контекстную информацию

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

Буду признателен за вашу помощь, спасибо!

1 Ответ

0 голосов
/ 04 октября 2018

Не забывайте, что Кортана является диалоговой (RESTful, и по большей части без сохранения состояния).Спросите себя, какая конфигурация является частью диалога, а не частью сервиса.Если есть конфигурация, отправленная пользователем, то имеет смысл сохранить ее в сеансе, используя один из трех описанных контекстов: пользовательские данные, данные разговора или данные личного разговора.Это все основа работы: управление данными состояния .

Есть несколько способов определить, настроен ли Cortana или нет.Если вы не сохранили свойства в userData, предположите, что вы не настроены, и измените ваш диалог.Если вы хотите проверить во время вызова, вы всегда можете сделать что-то вроде этого if( session.message.entities[0].name === 'Microsoft.Launch' ) { ... }

В одном из моих умений я просто делаю это ... if(! session.userData.bookName ) { session.beginDialog('openBook'); return; }, где openBook устанавливаетname.

Если это связано со службой, вы можете переместить свою конфигурацию туда, где вам удобно.Для сохранения его в хранилище Azure может потребоваться перезапуск службы для использования изменений (если вы не проводите непрерывный опрос). И наоборот, вы можете поместить данные конфигурации в свойства системы (переменные среды), либо в web.config, либо в контейнер.Например,

  <configuration>
      <appSettings>
        <!-- update these with your BotId, Microsoft App Id and your Microsoft App Password-->
        <add key="BotId" value="YourBotId" />
        <add key="MicrosoftAppId" value="" />
        <add key="MicrosoftAppPassword" value="" /> ...

Можно настроить IIS для отслеживания изменений в файле конфигурации для автоматического перезапуска.

Надеюсь, это поможет.

...