적응형 대화의 이벤트 및 트리거 - 참조 가이드Events and triggers in adaptive dialogs - reference guide

적용 대상: SDK v4APPLIES TO: SDK v4

이 항목에 대한 소개는 Composer 설명서의 트리거 개념 문서를 참조하세요.For an introduction to this topic, see the Triggers concept article in the Composer documentation.

인식기 이벤트 트리거Recognizer event triggers

이벤트 원인Event cause 트리거 이름Trigger name 기본 이벤트Base event DescriptionDescription
의도 선택Choose Intent OnChooseIntent ChooseIntent 이 트리거는 CrossTrainedRecognizerSet에 있는 여러 인식기의 의도 간에 모호성이 검색된 경우에 실행됩니다.This trigger is run when ambiguity has been detected between intents from multiple recognizers in a CrossTrainedRecognizerSet.
의도 인식됨Intent recognized OnIntent RecognizedIntent 지정된 의도가 인식되면 수행할 작업입니다.Actions to perform when specified intent is recognized.
QnAMatch 의도QnAMatch intent OnQnAMatch RecognizedIntent 이 트리거는 QnAMakerRecognizer에서 QnAMatch 의도를 반환한 경우에 실행됩니다.This trigger is run when the QnAMakerRecognizer has returned a QnAMatch intent. @answer 엔터티는 QnAMaker 대답을 받게 됩니다.The entity @answer will have the QnAMaker answer.
알 수 없는 의도 인식됨Unknown intent recognized OnUnknownIntent UnknownIntent 사용자 입력을 인식할 수 없거나 OnIntent 트리거 중 하나에서 일치하는 항목이 없으면 수행할 작업입니다.Actions to perform when user input is unrecognized or no match is found in any of the OnIntent triggers. 이 작업을 OnBeginDialog 대신 루트 대화의 첫 번째 트리거로 사용하여 대화가 처음 시작될 때 필요한 작업을 수행할 수 있습니다.You can also use this as your first trigger in your root dialog in place of the OnBeginDialog to preform any needed tasks when the dialog first starts.

OnIntent 트리거를 사용하면 recognizedIntent 이벤트를 처리할 수 있습니다.The OnIntent trigger lets you handle the recognizedIntent event. recognizedIntent이벤트는 인식기에서 발생합니다.The recognizedIntent event is raised by a recognizer. QnA Maker 인식기를제외하고 모든 Bot Framework SDK 기본 제공 인식기는 봇이 적절하게 응답할 수 있도록 사용자 입력을 성공적으로 식별할 때 이 이벤트를 내보낼 수 있습니다.With the exception of the QnA Maker recognizer, all of the Bot Framework SDK built-in recognizers emit this event when they successfully identify a user input so that your bot can respond appropriately.

다른 트리거에서 recognizedIntent 이벤트를 catch하여 처리하지 않은 경우 OnUnknownIntent 트리거를 사용하여 catch하고 응답합니다.Use the OnUnknownIntent trigger to catch and respond when a recognizedIntent event isn't caught and handled by any of the other triggers. 즉, 처리되지 않은 의도("none"포함)는 대화에 대해 현재 실행 중인 작업이 없는 경우에만 트리거할 수 있습니다.This means that any unhandled intent (including "none") can cause it to trigger, but only if there aren't any currently executing actions for the dialog. 트리거를 사용하여 OnUnknownIntent "none" 의도가 발생할 때 catch하고 응답합니다.Use the OnUnknownIntent trigger to catch and respond when a "none" intent occurs. 트리거를 사용하여 OnIntent "none" 의도를 처리하면 예기치 않은 결과가 발생할 수 있습니다.Using the OnIntent trigger to handle a "none" intent can produce unexpected results.

대화 이벤트 트리거Dialog event triggers

대화 트리거는 대화 상자의 수명 주기와 관련된 대화 관련 이벤트를 처리합니다.Dialog triggers handle dialog specific events that are related to the lifecycle of the dialog. Bot Framework SDK에는 현재 6개의 대화 트리거가 있으며 모두 OnDialogEvent 클래스에서 파생됩니다.There are currently 6 dialog triggers in the Bot Framework SDK and they all derive from the OnDialogEvent class.

이는 처리기의 작업이 완료된 후에도 자식의 작업이 계속 실행되는 일반적인 중단 이벤트 처리기와는 비슷합니다.These aren't like normal interruption event handlers where the child's actions will continue running after the handler's actions complete. 아래의 모든 이벤트에 대해 봇은 새 작업 집합을 실행하고 해당 작업이 완료되면 턴을 종료합니다.For all of the events below, the bot will run a new set of actions and will end the turn once those actions have finished.

트리거 이름Trigger name 기본 이벤트Base event DescriptionDescription
OnBeginDialog BeginDialog 이 대화가 시작되면 수행할 작업입니다.Actions to perform when this dialog begins. 자식 대화에만 사용하고 루트 대화에서 사용하지 않으려면 루트 대화에서 OnUnknownIntent를 사용하여 대화 초기화 활동을 수행합니다.For use with child dialogs only, not to be used in your root dialog, In root dialogs, use OnUnknownIntent to perform dialog initialization activities.
OnCancelDialog CancelDialog 이 이벤트를 사용하면 CancelAllDialogs 작업을 실행하는 자식 대화로 인해 현재 대화가 취소되지 않도록 방지할 수 있습니다.This event allows you to prevent the current dialog from being cancelled due to a child dialog executing a CancelAllDialogs action.
OnEndOfActions EndOfActions 모든 작업 및 모호성 이벤트가 처리되면 이 이벤트가 발생합니다.This event occurs once all actions and ambiguity events have been processed.
OnError Error 대화 이벤트가 발생할 때 수행할 Error 동작입니다.Actions to perform when an Error dialog event occurs. 이 이벤트는 이 트리거를 포함하는 적응형 대화 상자가 종료되지 않도록 하는 경우와 비슷합니다. OnCancelDialog 이 경우 자식 대화 상자의 오류로 인해 종료되지 않습니다.This event is similar to OnCancelDialog in that you are preventing the adaptive dialog that contains this trigger from ending, in this case due to an error in a child dialog.
OnRepromptDialog RepromptDialog RepromptDialog 이벤트가 발생하면 수행할 작업입니다.Actions to perform when RepromptDialog event occurs.
OnDialog DialogEvents.VersionChanged

활동 이벤트 트리거Activity event triggers

활동 트리거를 사용하면 새 사용자가 조인하고 봇에서 새 대화를 시작할 때처럼 클라이언트에서 들어오는 모든 활동에 작업을 연결할 수 있습니다.Activity triggers let you associate actions to any incoming activity from the client such as when a new user joins and the bot begins a new conversation. 활동에 대한 추가 정보는 Bot Framework 활동 스키마에서 확인할 수 있습니다.Additional information on activities can be found in Bot Framework Activity schema.

모든 활동 이벤트는 ActivityReceived를 기본 이벤트로 포함하며 activity type 에서 추가로 구체화됩니다.All activity events have a base event of ActivityReceived and are further refined by their activity type. 모든 활동 트리거가 파생되는 기본 클래스는 OnActivity입니다.The Base class that all activity triggers derive from is OnActivity.

이벤트 원인Event cause ActivityTypeActivityType 트리거 이름Trigger name DescriptionDescription
GreetingGreeting ConversationUpdate OnConversationUpdateActivity 봇 또는 사용자가 대화에 참여하거나 대화를 나선 경우 활동을 수신할 때 수행할 conversationUpdate 작업입니다.Actions to perform on receipt of a conversationUpdate activity, when the bot or a user joins or leaves a conversation.
대화 종료됨Conversation ended EndOfConversation OnEndOfConversationActivity 활동을 수신할 때 수행할 endOfConversation 작업입니다.Actions to perform on receipt of an endOfConversation activity.
이벤트가 수신됨Event received Event OnEventActivity 활동을 수신할 때 수행할 event 작업입니다.Actions to perform on receipt of an event activity.
인간에게 인계Handover to human Handoff OnHandoffActivity 활동을 수신할 때 수행할 handOff 작업입니다.Actions to perform on receipt of a handOff activity.
대화 호출됨Conversation invoked Invoke OnInvokeActivity 활동을 수신할 때 수행할 invoke 작업입니다.Actions to perform on receipt of an invoke activity.
사용자 입력 중User is typing Typing OnTypingActivity 활동을 수신 하는 경우 수행할 동작 typing 입니다.Actions to perform on receipt of a typing activity.

메시지 이벤트 트리거Message event triggers

메시지 이벤트 트리거를 사용하면 메시지가 업데이트되거나(MessageUpdate) 삭제되는(MessageDeletion) 경우 또는 누군가가 메시지에 반응하는(MessageReaction) 경우와 같은 메시지 이벤트에 반응할 수 있습니다(예: 일반적인 메시지 반응 중 일부에는 Like(좋아요), Heart(애정), Laugh(웃음), Surprised(놀람), Sad(슬픔) 및 Angry(화남) 반응이 포함됨).Message event triggers allow you to react to any message event such as when a message is updated (MessageUpdate) or deleted (MessageDeletion) or when someone reacts (MessageReaction) to a message (for example, some of the common message reactions include a Like, Heart, Laugh, Surprised, Sad and Angry reactions).

메시지 이벤트는 활동 이벤트의 한 유형이므로 모든 메시지 이벤트는 ActivityReceived를 기본 이벤트로 포함하며 activity type 에서 추가로 구체화됩니다.Message events are a type of activity event and, as such, all message events have a base event of ActivityReceived and are further refined by activity type. 모든 메시지 트리거가 파생되는 기본 클래스는 OnActivity입니다.The Base class that all message triggers derive from is OnActivity.

이벤트 원인Event cause ActivityTypeActivityType 트리거 이름Trigger name DescriptionDescription
수신된 메시지Message received Message OnMessageActivity MessageReceived 형식의 활동을 받으면 수행할 작업입니다.Actions to perform on receipt of an activity with type MessageReceived.
메시지 삭제됨Message deleted MessageDeletion OnMessageDeleteActivity MessageDelete 형식의 활동을 받으면 수행할 작업입니다.Actions to perform on receipt of an activity with type MessageDelete.
메시지 반응Message reaction MessageReaction OnMessageReactionActivity MessageReaction 형식의 활동을 받으면 수행할 작업입니다.Actions to perform on receipt of an activity with type MessageReaction.
메시지 업데이트됨Message updated MessageUpdate OnMessageUpdateActivity MessageUpdate 형식의 활동을 받으면 수행할 작업입니다.Actions to perform on receipt of an activity with type MessageUpdate.

사용자 지정 이벤트 트리거Custom event trigger

EmitEvent 작업을 트리거에 추가하여 사용자 고유의 이벤트를 내보낸 다음, 사용자 지정 이벤트 트리거를 정의하여 봇의 대화에 있는 트리거의 해당 사용자 지정 이벤트를 처리할 수 있습니다.You can emit your own events by adding the EmitEvent action to any trigger, then you can handle that custom event in any trigger in any dialog in your bot by defining a custom event trigger. 사용자 지정 이벤트 트리거는 Event 속성을 EmitEvent의 EventName 속성과 동일한 값으로 설정하면 실제로 사용자 지정 트리거가 되는 OnDialogEvent 트리거입니다.A custom event trigger is the OnDialogEvent trigger that in effect becomes a custom trigger when you set the Event property to the same value as the EmitEvent's EventName property.

EmitEvent의 BubbleEvent 속성을 true로 설정하여 봇의 다른 대화에서 사용자 지정 이벤트를 처리하도록 허용할 수 있습니다.You can allow other dialogs in your bot to handle your custom event by setting the EmitEvent's BubbleEvent property to true.

이벤트 원인Event cause 트리거 이름Trigger name 기본 클래스Base class DescriptionDescription
사용자 지정 이벤트Custom event OnDialogEvent OnCondition 사용자 지정 이벤트가 검색되면 수행할 작업입니다.Actions to perform when a custom event is detected. 사용자 지정 이벤트 내보내기 작업을 사용 하 여 사용자 지정 이벤트를 발생 시킵니다.Use Emit a custom event action to raise a custom event.