Я пытаюсь создать бота, который разговаривает с моделью LUIS. У бота будет 35 сценариев, каждый из которых соответствует намерению LUIS. В настоящее время LUIS поддерживает максимум 20 намерений. Как я могу масштабировать это в моем коде? Мне интересно, лучше ли иметь иерархию модели LUIS, когда родительская модель обращается к конкретной дочерней модели. Или мне следует вести список ключевых слов в своей базе данных и на его основе вызывать конкретную модель. Мне нужна помощь, чтобы оценить плюсы и минусы обоих подходов. Спасибо!
LUIS ограничивает количество намерений до 20
comment
Предел для намерений недавно был увеличен с 80 до 500, проверьте это на docs.microsoft.com/en-in/azure/cognitive-services/luis/
- person Abdul Mateen Mohammed   schedule 07.03.2018
Ответы (1)
Я предлагаю вам попробовать заменить как можно больше сценариев с помощью BestMatchDialog (по крайней мере, 15).
Вы все равно будете использовать LuisDialog в качестве корневого диалога. Вот пример:
[Serializable]
public class GreetingsDialog: BestMatchDialog<bool>
{
[BestMatch(new string[] { "Hi", "Hi There", "Hello there", "Hey", "Hello",
"Hey there", "Greetings", "Good morning", "Good afternoon", "Good evening", "Good day" },
threshold: 0.5, ignoreCase: true, ignoreNonAlphaNumericCharacters: true)]
public async Task WelcomeGreeting(IDialogContext context, string messageText)
{
await context.PostAsync("Hello there. How can I help you?");
context.Done(true);
}
[BestMatch(new string[] { "bye", "bye bye", "got to go",
"see you later", "laters", "adios" })]
public async Task FarewellGreeting(IDialogContext context, string messageText)
{
await context.PostAsync("Bye. Have a good day.");
context.Done(true);
}
public override async Task NoMatchHandler(IDialogContext context, string messageText)
{
context.Done(false);
}
}
Из вашего LuisDialog вы можете назвать это так
[LuisIntent("None")]
[LuisIntent("")]
public async Task None(IDialogContext context, IAwaitable<IMessageActivity> message, LuisResult result)
{
var cts = new CancellationTokenSource();
await context.Forward(new GreetingsDialog(), GreetingDialogDone, await message, cts.Token);
}
Приведенный выше код был заимствован из репозитория MeBot от Ankitbko.
person
jcmontx
schedule
24.11.2016
Спасибо! Кроме того, похоже, что в следующем выпуске LUIS количество намерений будет уменьшено.
- person happydevdays; 29.11.2016
@happydevdays, это здорово, но будьте осторожны с ценами: P
- person jcmontx; 30.11.2016
сейчас до 40 намерений
- person JPThorne; 03.01.2017
+1 за предложение
BestMatchDialog
. Однако использование этой библиотеки сэкономит вам только одно намерение, приветствие или прощание. Вышеупомянутые 15 - высказывания.
- person GETah; 22.01.2017