Как добавить несколько баз знаний к одному боту на портале Azure с помощью Node.js?

У меня есть две базы знаний, и я хочу использовать их обе для одного бота для поиска ответа. Как я могу использовать несколько баз знаний.

Пожалуйста, смотрите мой ответ ниже.

Matt Stannett 31.05.2019 22:47

Можно ли использовать две базы знаний без LUIS в одном приложении?

Kailash Kumawat 03.06.2019 11:18

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

Matt Stannett 03.06.2019 13:48
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
829
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Есть руководство и образец проекта доступно здесь.

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

Я бы порекомендовал загрузить пример приложения и пройти весь процесс, чтобы получить общее представление о том, как все сочетается друг с другом. После того как вы опубликуете свое приложение LUIS, вы сможете тестовое задание его на портале LUIS, введя примеры высказываний и проверив ответ, чтобы увидеть выбранное намерение. Документация для инструмента Dispatch — доступно здесь. Обратите внимание, что когда вы обновляете свои базы знаний (путем добавления новых записей или альтернативных формулировок) после первоначальной публикации приложения для отправки, вам потребуется обновить модель отправки для этих новых вопросов/альтернативной фразы, чтобы добавить высказывание. в LUIS для этого сопоставления с правильным намерением LUIS — в противном случае они вернут намерение Никто.

NB. вы можете обойти необходимость обновления диспетчера, обработав случай, когда вы получаете намерение «Нет» и перебираете все свои базы знаний, чтобы запросить ответ на запрос пользователя и просто вернуть ответ с более высокой оценкой ( иметь коллекцию, в которой хранятся ответы из каждой базы знаний), но я бы не рекомендовал ее, поскольку вы упускаете преимущества активного обучения для ЛУИС и QnA Maker.

В этом примере также они использовали только одну базу знаний. Тогда как используются две базы знаний?

Kailash Kumawat 06.06.2019 09:03

@KailashKumawat Я отредактировал свой ответ, указав, как этого можно достичь.

Matt Stannett 06.06.2019 12:01

Я пробовал в Node.js, как описано в документации связь. Но в файле dispatchBot.js я получаю ошибки. Вы можете помочь?

Kailash Kumawat 10.06.2019 10:49

Например, когда я добавляю — async dispatchToTopIntentAsync(context, intent, recognizerResult) { switch (intent) { case 'l_luis': await this.processHomeAutomation(context, recognizerResult.luisResult); break; case 'q_sample-qna': await this.processSampleQnA(context); break; default: this.logger.log(Отправить нераспознанное намерение: ${intent}.); await context.sendActivity(Отправить нераспознанное намерение: ${intent}.); break; } }. Запуск этого дает ошибку - SyntaxError: Неожиданный идентификатор. Можете ли вы помочь в этом.

Kailash Kumawat 10.06.2019 10:59

Можете ли вы добавить pastebin всего класса, пожалуйста, и скриншот, где ошибка.

Matt Stannett 10.06.2019 11:05
dispatchBot.js файл здесь связь и app.js файл здесь связь. Я пробовал кое-что, но не получил ответа от базы знаний ни на один вопрос.
Kailash Kumawat 10.06.2019 11:51

Проверьте этот образец. Вы замените константу qnaMaker коллекцией (массивом) объектов QnAMaker, которые содержат ваши различные базы знаний, а затем внутри processSampleQnA вы получите результат для каждого объекта qnaMaker в вашей коллекции и выберете тот, у которого наивысшая оценка.

Matt Stannett 10.06.2019 12:21

Запуск этих файлов бота выдает какую-то ошибку - TypeError: Class extends value undefined is not a constructor or null в class DispatchBot extends ActivityHandler {}.

Kailash Kumawat 10.06.2019 13:22

Другие вопросы по теме