2017-04-04 4 views
1

현재 NodeJS 용 Microsoft Botframework에서 채팅 봇으로 첫 발을 내딛고 있습니다.BotFramework : LUIS 인 텐트와 일반 인 텐트를 결합 할 수 있습니까?

내가 지금까지 본 것 '정상'의도와 LUIS.ai 의도

는이 두 가지를 결합 할 수 있습니까?

나는 LUIS 의도가 아니고 입력 내용이 무엇이든 관계없이 항상 LUIS 의도의 결과를 반환하는 .onDefault intent를 가졌습니다.

누군가가 나에게 간단한 예를 들어 주거나 ​​하나를 가르쳐 주시겠습니까?

미리 감사드립니다.

+0

[this] (https://github.com/Microsoft/BotBuilder-Samples/tree/master/Node/intelligence-LUIS)를 직접 보았습니까 –

+0

문서와 다르지 않습니다. 입력이 LUIS 의도로 ​​곧바로 들어가는 이유도 설명하지 않습니다. 내 코드가 문서와 다른 것은 아닙니다. – Kyriediculous

+0

봇 프레임 워크의 개념은 당신 (봇 디자이너)이 자연 언어 입력의 복잡성을 다룰 필요없이 봇을 만들 수있게하는 것입니다. 같은 이유로, 텍스트 입력을받지는 않지만 대신 Luis가 식별 한 후에 텍스트 입력의 의도를 수신합니다. –

답변

1

LUIS 의도와 일반적인 의도를 결합 할 수 있습니다. 이를 위해 IntentRecognizers 두 가지를 사용합니다. LuisRecognizerRegExpRecognizer. 이제

let pizzaRecognizer = new builder.LuisRecognizer('YOUR-LUIS-MODEL'); 
let mathRecognizer = new builder.RegExpRecognizer('MathHelp', /(^mathhelp$|^\/mathhelp$)/i); 

의 우리 IntentDialog을 만들고 IntentDialog 사용하는 그래서 우리의 '인식기'속성의 options ...

리스트로 우리 pizzaRecognizer 및 mathRecognizer을 결합하여
let intents = new builder.IntentDialog({ recognizers: [mathRecognizer, pizzaRecognizer], recognizeOrder: 'series' }) 

, 우리가 통과 할 수있는이 목록을 구성 할 수 두 인식기. 마지막으로 우리가하려고하는 속성은 'recognizerOrder'입니다. 기본값은 'parallel'입니다. 값을 'series'로 변경하면 IntentDialog가 먼저 RegExpRecognizer 'mathRecognizer'를 트리거합니다. 점수가 1 인 일치 항목이 있으면 LuisRecognizer가 사용되지 않으므로 낭비되는 LUIS 끝점 조회가 저장되지 않습니다.

RegExpRecognizers를 사용하여 채팅 봇의 응답 속도를 높이고 chatbot의 LUIS 호출 양을 줄이려면 해당 인식자를 먼저 인식 자 목록에 전달해야합니다. 그런 다음 recognizerOrder'series'으로 설정해야합니다. 시리즈 주문을 설정하지 않으면 채팅 봇에서 LUIS 호출을 계속 수행합니다. 또한 다른 인식기가 사용되는 것을 막기 위해 일치 된 의도의 점수가 1.0이어야합니다. 완벽한 일치를 장려하려면 RegExp 한정 기호 ^$을 사용하여 일치시킬 패턴의 명확한 시작점과 끝점을 정의해야합니다. 예를 들어 mathRecognizer을 참조하십시오.

정확도가 가장 중요한 경우 'recognizerOrder'의 값을 변경하면 안됩니다. 그러면 모든 인식기가 한 번에 사용됩니다.

나는 당신이 검토 할 수있는 예제 인 here을 만들었습니다. 나는 Luis 모델을 LuisModel.json으로 명명했다.

+0

인식기를 배열에 추가하는 것만으로 간단합니까? 감사합니다. 이 일은 나를 끌 것입니다. 많은 사랑 – Kyriediculous