적응형 대화의 이벤트 및 트리거

적용 대상: SDK v4

이 항목에 대한 소개는 작성기 설명서의 트리거 개념 문서를 참조하세요.

Recognizer 이벤트 트리거

참고 항목

Azure AI QnA Maker는 2025년 3월 31일에 사용 중지됩니다. 2022년 10월 1일부터 새로운 QnA Maker 리소스 또는 참조 자료를 만들 수 없습니다. 이제 최신 버전의 질문 및 답변 기능이 Azure AI 언어의 일부로 사용할 수 있습니다.

Azure AI Language의 기능인 사용자 지정 질문 답변은 QnA Maker 서비스의 업데이트된 버전입니다. Bot Framework SDK의 질문 및 답변 지원에 대한 자세한 내용은 자연어 이해를 참조하세요.

이벤트 원인 트리거 이름 기본 이벤트 설명
의도 선택 OnChooseIntent ChooseIntent 이 트리거는 CrossTrainedRecognizerSet의 여러 인식기에서 의도 간에 모호성이 검색된 경우 실행됩니다.
의도 인식 OnIntent RecognizedIntent 지정한 의도를 인식할 수 있는 경우에 수행할 작업입니다.
QnAMatch 의도 OnQnAMatch RecognizedIntent 이 트리거는 QnAMakerRecognizer에서 QnAMatch 의도를 반환한 경우에 실행됩니다. 엔터티 @answer 에 답변이 있습니다 QnAMaker .
알 수 없는 의도가 인식됨 OnUnknownIntent UnknownIntent 사용자 입력이 인식되지 않거나 트리거에서 OnIntent 일치하는 항목을 찾을 수 없는 경우 수행할 작업입니다. 또한 이 트리거를 루트 대화 상자의 OnBeginDialog 첫 번째 트리거로 사용하여 대화가 처음 시작될 때 필요한 작업을 수행할 수도 있습니다.

트리거를 OnIntent 사용하면 이벤트를 처리할 recognizedIntent 수 있습니다. 이 recognizedIntent 이벤트는 인식기에서 발생합니다. QnA Maker 인식기를 제외한 모든 Bot Framework SDK 기본 제공 인식기는 봇이 적절하게 응답할 수 있도록 사용자 입력을 성공적으로 식별할 때 이 이벤트를 내보낸다.

다른 트리거에서 OnUnknownIntent 이벤트를 catch하고 처리하지 않을 때 recognizedIntent 트리거를 사용하여 catch하고 응답합니다. 즉, 처리되지 않은 의도("없음"포함)가 트리거될 수 있지만 대화 상자에 대해 현재 실행 중인 작업이 없는 경우에만 트리거됩니다. 트리거를 OnUnknownIntent 사용하여 "none" 의도가 발생할 때 catch하고 응답합니다. 트리거를 OnIntent 사용하여 "없음" 의도를 처리하면 예기치 않은 결과가 발생할 수 있습니다.

대화 상자 이벤트 트리거

대화 트리거는 대화 상자의 수명 주기관련된 대화 상자 관련 이벤트를 처리합니다. 현재 Bot Framework SDK에는 6개의 대화 트리거가 있으며 모두 클래스에서 OnDialogEvent 파생됩니다.

이는 처리기의 작업이 완료된 후에도 자식의 작업이 계속 실행되는 일반적인 중단 이벤트 처리기와는 비슷합니다. 아래의 모든 이벤트에 대해 봇은 새 작업 집합을 실행하고 해당 작업이 완료되면 턴을 종료합니다.

트리거 이름 기본 이벤트 설명
OnBeginDialog BeginDialog 이 대화 상자가 시작될 때 수행할 작업입니다. 루트 대화 상자에서 사용할 수 없는 자식 대화에만 사용하려면 루트 대화 상자에서 대화 초기화 작업을 수행하는 데 사용합니다 OnUnknownIntent .
OnCancelDialog CancelDialog 이 이벤트를 사용하면 작업을 실행하는 자식 대화 상자로 인해 현재 대화 상자가 취소되지 않도록 할 수 있습니다 CancelAllDialogs .
OnEndOfActions EndOfActions 이 이벤트는 모든 작업 및 모호성 이벤트가 처리되면 발생합니다.
OnError Error 대화 이벤트가 발생할 때 Error 수행할 작업입니다. 이 이벤트는 자식 대화 상자의 오류로 인해 이 트리거가 포함된 적응형 대화 상자가 종료되지 않도록 하는 것과 유사 OnCancelDialog 합니다.
OnRepromptDialog RepromptDialog 이벤트가 발생할 때 RepromptDialog 수행할 작업입니다.
OnDialog DialogEvents.VersionChanged

활동 이벤트 트리거

활동 트리거를 사용하면 새 사용자가 조인하고 봇이 새 대화를 시작하는 경우와 같이 클라이언트에서 들어오는 작업에 작업을 연결할 수 있습니다. 활동에 대한 추가 정보는 Bot Framework 활동 스키마에서 찾을 수 있습니다.

모든 활동 이벤트에는 기본 이벤트가 ActivityReceived 있으며 해당 활동 유형에 따라 더 구체화됩니다. 모든 활동 트리거가 파생되는 기본 클래스는 .입니다 OnActivity.

이벤트 원인 ActivityType 트리거 이름 설명
인사말 ConversationUpdate OnConversationUpdateActivity 봇 또는 사용자가 대화에 참가하거나 대화를 떠날 때 작업을 수신 conversationUpdate 할 때 수행할 작업입니다.
대화 종료 EndOfConversation OnEndOfConversationActivity 활동을 수신 endOfConversation 할 때 수행할 작업입니다.
받은 이벤트 Event OnEventActivity 활동을 수신 event 할 때 수행할 작업입니다.
인간에게 인계 Handoff OnHandoffActivity 활동을 수신할 때 수행할 작업입니다 handOff .
호출된 대화 Invoke OnInvokeActivity 활동을 수신 invoke 할 때 수행할 작업입니다.
사용자 입력 중 Typing OnTypingActivity 활동을 수신할 때 수행할 작업입니다 typing .

메시지 이벤트 트리거

메시지 이벤트 트리거를 사용하면 메시지를 업데이트() 또는 삭제()하거나 누군가가 메시지에 반응(MessageUpdateMessageDeletion)할 때와 같은 메시지 이벤트에 반응MessageReaction할 수 있습니다(예: 일반적인 메시지 반응 중 일부는 Like, Heart, Laugh, Surprised, Sad 및 Angry 반응을 포함).

메시지 이벤트는 활동 이벤트의 유형이며, 따라서 모든 메시지 이벤트에는 기본 이벤트가 ActivityReceived 있으며 활동 유형에 따라 더 구체화됩니다. 모든 메시지 트리거가 파생되는 기본 클래스는 OnActivity입니다.

이벤트 원인 ActivityType 트리거 이름 설명
수신된 메시지 Message OnMessageActivity MessageReceived 형식의 활동을 받으면 수행할 작업입니다.
삭제된 메시지 MessageDeletion OnMessageDeleteActivity MessageDelete 형식의 활동을 받으면 수행할 작업입니다.
메시지 반응 MessageReaction OnMessageReactionActivity MessageReaction 형식의 활동을 받으면 수행할 작업입니다.
업데이트된 메시지 MessageUpdate OnMessageUpdateActivity MessageUpdate 형식의 활동을 받으면 수행할 작업입니다.

사용자 지정 이벤트 트리거

EmitEvent 작업을 트리거에 추가하여 사용자 고유의 이벤트를 내보낸 다음, 사용자 지정 이벤트 트리거를 정의하여 봇의 대화에 있는 트리거의 해당 사용자 지정 이벤트를 처리할 수 있습니다. 사용자 지정 이벤트 트리거는 OnDialogEvent 속성을 EmitEvent의 속성과 동일한 값으로 설정할 Event 때 실제로 사용자 지정 트리거가 되는 트리거입니다 EventName .

EmitEvent의 BubbleEvent 속성을 true로 설정하여 봇의 다른 대화에서 사용자 지정 이벤트를 처리하도록 허용할 수 있습니다.

이벤트 원인 트리거 이름 기본 클래스 설명
사용자 지정 이벤트 OnDialogEvent OnCondition 사용자 지정 이벤트가 검색될 때 수행할 작업입니다. 사용자 지정 이벤트 내보내기 작업을 사용하여 사용자 지정 이벤트를 발생합니다.