2016-11-19 1 views
2

LUIS 모델과 대화하는 봇을 만들려고합니다. 봇에는 35 개의 시나리오가 있으며 각각은 LUIS 인 텐트에 해당합니다. 현재 LUIS는 최대 20 개의 인 텐트를 지원합니다. 내 코드에서 어떻게 스케일 할 수 있습니까? 특정 하위 모델을 호출하는 상위 모델과 함께 LUIS 모델 계층 구조를 갖는 것이 더 나은지 궁금합니다. 아니면 내 데이터베이스에 키워드 목록을 유지하고 그것에 기반한 특정 모델을 호출해야합니까? 두 가지 방법의 장단점을 평가하는 데 도움이 필요합니다. 감사!LUIS가 의도 수를 20 개로 제한합니다.

+1

의도 제한이 최근에 80에서 500으로 상향 조정되었습니다. https://docs.microsoft.com/en-in/azure/cognitive-services/luis/luis-boundaries에서 확인하십시오. –

답변

2

BestMatchDialog (적어도 15 개)를 사용할 수있는 것처럼 많은 시나리오를 대체하는 것이 좋습니다.

당신은 여전히 ​​루트 대화 상자로 LuisDialog를 사용합니다. 다음은 예입니다 : 당신의 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); 
    } 
} 

는이 방법

[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); 
    } 

Ankitbko's MeBot repo에서 차용 된 코드를 호출 할 수 있습니다.

+1

고마워요! 또한 다음 LUIS 릴리스에서 의도의 수가 완화되는 것처럼 보입니다. – happydevdays

+0

@happydevdays 그럴 가치는 있지만 가격은주의해야합니다. P – jcmontx

+0

이제 최대 40 개의 의도가 있습니다. – JPThorne