Есть ли способ преобразовать вопросы QnA в высказывания намерений LUIS

Я следовал этой документации Microsoft, чтобы создать свою реализацию бота, который использует LUIS для перенаправления вопросов пользователей в QnAMaker: https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-tutorial-dispatch?view=azure-bot-service-4.0&tabs=cs

В основном я заметил в документации V3 (https://docs.microsoft.com/en-us/azure/cognitive-services/qnamaker/tutorials/integrate-qnamaker-luis) (поскольку об этом нет упоминания в V4), он говорит:

Добавьте намерение для каждой базы знаний QnA Maker. Примеры высказываний должны соответствовать вопросам в базах знаний QnA Maker.

У меня вопрос, кроме ручного копирования всех вопросов из QnA Maker в каждое отдельное намерение (при условии, что у меня несколько КБ), есть ли более простой способ сделать это? Например, экспортировать файл из QnA Maker или чего-то подобного?


person triedgooglingit    schedule 01.07.2019    source источник
comment
Как вы отнеслись к моему ответу ниже?   -  person Matt Stannett    schedule 03.07.2019
comment
Хммм, не слишком хорошо, в основном я пытался добавить намерения для своей собственной базы знаний, но постоянно получал плохой аргумент, когда я пытался выполнить команду создания отправки. Но это сработало для образца, который они предоставили, но не для моего собственного   -  person triedgooglingit    schedule 03.07.2019
comment
Не возражаете опубликовать точное сообщение об ошибке, которое вы получаете при запуске команды dispatch create?   -  person Matt Stannett    schedule 03.07.2019
comment
ОШИБКА Произошла одна или несколько ошибок. (Удаленный сервер возвратил ошибку: (400) Неверный запрос.) URL-адрес запроса: westus.api.cognitive.microsoft.com/qnamaker/v4.0/knowledgebases/ Ответ: {error: {code: BadArgument, message: Убедитесь, что служба поиска Azure активирована, перезапустите веб-приложение и повторите попытку}}   -  person triedgooglingit    schedule 04.07.2019
comment
Но это странно, потому что примерный запрос работает нормально, но как только я добавляю свои собственные kb-id и kb-name и новое имя намерения, я получаю сообщение об ошибке   -  person triedgooglingit    schedule 04.07.2019
comment
Работает ли тестирование вашей базы знаний QnA Maker через портал QnA Maker или вы также получаете там ошибки? Я бы экспортировал ваш текущий КБ, затем создал новый, импортировал резервную копию вашего исходного, а затем попытался связать этот новый КБ через отправку. Еще одна вещь, которую вы можете попробовать проверить исходную базу знаний, - это загрузить этот образец и добавьте сведения о базе знаний QnA Maker в файл appsettings.json и посмотрите, работает ли он, если нет, то проблема заключается в поиске Azure, связанном с вашей базой знаний.   -  person Matt Stannett    schedule 04.07.2019
comment
Пытался сделать новый, как вы сказали, но безрезультатно. Не могли бы вы быстро взглянуть на это грубое изображение и посмотреть, правильно ли я создаю команду / получаю правильную информацию из правильного места ?: Imgur   -  person triedgooglingit    schedule 04.07.2019
comment
Хм .. Я не вижу ничего явно неправильного в вашей команде отправки. Как вы попробовали образец qna, который я указал в своем предыдущем комментарии?   -  person Matt Stannett    schedule 04.07.2019
comment
Да, работает нормально, когда я подключаю его к шаблону, это нормально, просто пока придется сделать это вручную   -  person triedgooglingit    schedule 05.07.2019
comment
Если вы хотите несколько автоматизировать это, вы можете использовать Загрузить базу знаний API, чтобы получить все вопросы, затем Примеры высказываний Метод API для добавления вопросов с правильным намерением (игнорируя свойство entityLabels).   -  person Matt Stannett    schedule 05.07.2019
comment
Это хорошая идея, можете реализовать ее таким образом, цените вашу помощь!   -  person triedgooglingit    schedule 05.07.2019


Ответы (1)


Это делается с помощью инструмента Dispatch. По сути, он загружает вопросы из базы знаний QnA Maker и создает новое приложение LUIS с «отправкой» в имени. Внутри этого нового приложения будет добавлено намерение для каждой базы знаний QnA Maker, имя будет q_<kb_name_here>, вопросы из соответствующей базы знаний будут добавлены к этому намерению как высказывания.

Как это сделать, описано в разделе Создайте раздел модели отправки документации, на которую вы ссылаетесь.

Вам потребуется NodeJS, который поставляется с установленным npm, чтобы выполнять следующие действия из командной строки в папке CognitiveModels (приблизительное руководство):

// install botdispatch package
npm i -g botdispatch

// initialise a dispatch file
dispatch init -n <filename-to-create> --luisAuthoringKey "<your-luis-authoring-key>" --luisAuthoringRegion <your-region>

// add references to luis and qna apps
dispatch add -t luis -i "<app-id-for-weather-app>" -n "<name-of-weather-app>" -v <app-version-number> -k "<your-luis-authoring-key>" --intentName l_Weather
dispatch add -t luis -i "<app-id-for-home-automation-app>" -n "<name-of-home-automation-app>" -v <app-version-number> -k "<your-luis-authoring-key>" --intentName l_HomeAutomation
dispatch add -t qna -i "<knowledge-base-id>" -n "<knowledge-base-name>" -k "<azure-qna-service-key1>" --intentName q_sample-qna

// generate a dispatch model
dispatch create

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

person Matt Stannett    schedule 01.07.2019