시스템의 기본 작업을 돕기 위해 봇 프레임 워크를 사용하고 있습니다. 이러한 작업 중 하나는 그룹 및 사용자와 같은 다양한 데이터 집합을 나열하는 것입니다.RegEx 및 인 텐트를 사용하는 triggerAction
이 다음과 같습니다 처리하는 대화 :
lib.dialog('/', function(session) {
<code>
}).triggerAction({matches: stuff});
코드 부분이 던져 목록의 모든 유형을 처리 할 수있는, 그래서 모든 다른 목록을 잡으려고 triggerAction을하고 싶습니다. 그들은 내 자신의 사용자 지정 인식기에서 인식되고 GetTopicList의 형식으로되어 있습니다. 여기서 "Topic"은 "User"또는 "Group"입니다. 따라서 의도는 "GetUserList"또는 "GetGroupList"입니다.
RegEx가 내 인식기 (/^Get.*List$/는 문제를 해결하지만 인식기는들을 수 없음)보다는 메시지를 듣기 시작할 수 있기 때문에 RegEx가 작동하지 않는 것처럼 보입니다.
일단 triggerAction에서 RegEx를 사용하면 트리거는 의도가 아닌 봇에 전송 된 메시지 수신을 시작합니다.이 동작은 내가 찾고있는 것이 아니지만 트리거는 여전히 의도를 수신합니다. 이것이 가능한가?
/**
* Supported rules for matching a users utterance.
* * _{RegExp}_ - A regular expression will be used to match the users utterance.
* * _{string}_ - A named intent returned from a recognizer will be used to match the users utterance.
* * _{(RegExp|string)[]}_ - An array of either regular expressions or named intents can be passed to match the users utterance in a number of possible ways. The rule generating the highest score (best match) will be used for scoring purposes.
*/
내 이해와 코드 테스트의 결과에 따라 그래서, 의도 만 따끔하지만 정규 표현식으로 일치 할 수있다 : botbuilder의 설명으로
나는 인식기를 사용하고 있는데 정규식이 인식기가 인식 무엇을 위해 일하고 싶어, 내 인식은 그 "목록을 작동 사용자 "는 의도"GetUserList "로 인식됩니다. triggerAction에서 RegEx를 사용하면 triggerAction의 리스너가 의도에서 메시지로 전환됩니다. 나는 그렇게하기를 원하지 않는다. – FlamingDrake
추가 테스트를 거친 후 수정되어 도움이되기를 바랍니다. –
그래, 나도 그걸 알았다. 대신 인식자를 수정하여 "목록"이라는 의도를 가지고 해결했습니다. 그래서 대화 상자에는 'List'라는 일치 항목이있을 수 있습니다. 내가 생각할 수있는 최선 이었어. 시간 내 주셔서 감사합니다 :) – FlamingDrake