WaterfallDialog class
폭포를 기반으로 하는 사용자 지정 대화 상자를 만들 수 있습니다.
- Extends
생성자
| Waterfall |
새 폭포 대화 상자를 만듭니다. |
메서드
| add |
라이브러리 내의 각 대화 상자에 대해 한 번 호출하여 해당 |
| begin<T>(Session, T) | 새 대화 세션이 시작될 때 호출됩니다. |
| begin |
트리거될 때마다 다른 대화 상자를 시작할 대화 상자에 작업을 바인딩합니다. 새 대화 상자가 스택에 푸시되므로 현재 작업이 자동으로 종료되지 않습니다. 새 대화 상자가 끝나면 현재 작업이 계속됩니다. 기본 제공 프롬프트가 발생하면 사용자에게 자동으로 다시 메시지를 표시하지만 기본 제공 프롬프트를 호출할 때 promptAfterAction 플래그를 설정하여 해당 동작을 사용하지 않도록 설정할 수 있습니다. |
| cancel |
트리거될 때마다 대화 상자를 취소하는 작업을 대화 상자에 바인딩합니다. 취소되면 취소되었음을 나타내는 다시 코드로 대화 상자 부모가 다시. |
| clone(Action |
기존 ActionSet의 복제본을 반환합니다. |
| create |
폭포를 구동할 수 있는 함수를 만듭니다. 함수가 호출될 때마다 폭포의 다음 단계를 호출하여 폭포를 앞으로 구동합니다. 이 함수는 |
| custom |
트리거될 때 전달된 onSelectAction 처리기를 호출하는 대화 상자에 사용자 지정 작업을 바인딩합니다. |
| dialog |
루트 대화 상자가 다른 대화에 의해 중단될 때 호출됩니다. 이렇게 하면 중단되는 대화 상자가 스택에서 제거되기 전에 사용자 지정 논리를 실행할 수 있습니다. 대화 상자 자체는 대화 스택을 지우고 새 대화 상자를 시작하는 역할을 합니다. |
| dialog |
자식 대화 상자가 종료되고 현재 대화 상자가 다시 시작됩니다. |
| end |
트리거될 때 사용자와의 대화를 종료하는 작업을 바인딩합니다. |
| find |
Library.findRoutes()에서 호출되는 스택의 각 대화 상자를 호출하여 사용자 발화에 의해 대화 동작이 트리거되는지 여부를 확인합니다. |
| on |
폭포의 모든 단계 전에 호출될 처리기를 등록합니다.
|
| recognize(IRecognize |
사용자 발화를 구문 분석하고 0.0에서 1.0까지의 점수를 할당하여 대화 상자가 사용자 발화를 이해했는지를 나타냅니다. 이 메서드는 항상 스택의 활성 대화 상자에 대해 호출됩니다. 점수가 1.0이면 완벽한 일치를 나타내고 추가 인식을 종료합니다. 점수가 1.0보다 작으면 스택의 모든 대화 상자에는 recognizeAction() 메서드가 호출되어 사용자 발언과 더 잘 일치하는 대화 상자에 바인딩된 명명된 작업이 있는지 확인합니다. 봇 수준에서 등록된 전역 작업도 평가됩니다. 대화 상자에 점수가 더 높은 경우 바인딩된 동작이 있으면 recognize() 호출에서 반환된 결과 개체를 사용하여 replyReceived() 메서드에 대화 상자가 호출됩니다. 이렇게 하면 대화 상자에서 인식 단계 중에 수집된 추가 데이터를 replyReceived() 메서드로 전달하여 처리할 수 있습니다. 점수가 더 높은 작업이 있는 경우 대화 상자는 replyReceived() 메서드 대신 동작이 호출됩니다. 대화 상자는 스택에 유지되며 작업이 새 대화 상자를 호출하는 경우 언제든지 다시 시작될 수 있으므로 대화 상자에서 dialogResumed()대한 예기치 않은 호출을 준비해야 합니다. |
| reload |
트리거될 때마다 대화 상자가 다시 로드되도록 하는 작업을 대화 상자에 바인딩합니다. 이는 "다시 시작"과 같은 사용자 발언을 처리하는 논리를 구현하는 데 유용합니다. |
| reply |
사용자로부터 받은 메시지를 처리합니다. 대화 시스템에서 호출됩니다. |
| select |
발화에 대한 신뢰도 점수가 가장 높은 경로를 선택합니다. |
| trigger |
트리거될 때마다 활성 대화 상자로 만드는 작업을 대화 상자에 바인딩합니다. 기본 동작은 스택을 지우고 스택의 루트에서 대화 상자를 시작하여 기존 대화 상자를 상호 결합하는 것입니다. 중단되는 대화 상자는 중단된 처리기의 사용자 지정 트리거 작업 옵션에 추가하여 이 중단을 가로챌 수 있습니다. 또한 트리거 작업 옵션에 사용자 지정 onSelectAction 처리기를 제공하여 트리거된 대화가 시작되는 방식을 사용자 지정할 수 있습니다. |
생성자 세부 정보
WaterfallDialog(IDialogWaterfallStep | IDialogWaterfallStep[])
새 폭포 대화 상자를 만듭니다.
new WaterfallDialog(steps: IDialogWaterfallStep | IDialogWaterfallStep[])
매개 변수
- steps
순서대로 호출해야 하는 함수의 시퀀스입니다.
메서드 세부 정보
addDialogTrigger(ActionSet, string)
라이브러리 내의 각 대화 상자에 대해 한 번 호출하여 해당 triggerAction() 라이브러리 전역 작업 집합에 추가할 수 있는 기회를 제공합니다. 이러한 트리거는 트리거 조건이 충족되면 대화 상자를 시작하는 beginDialogAction() 매핑됩니다.
function addDialogTrigger(actions: ActionSet, dialogId: string)
매개 변수
- actions
- ActionSet
라이브러리 전역 작업 집합입니다.
- dialogId
-
string
트리거할 대화 상자의 정규화된 ID입니다.
begin<T>(Session, T)
새 대화 세션이 시작될 때 호출됩니다.
function begin<T>(session: Session, args?: T)
매개 변수
- session
- Session
현재 대화의 세션 개체입니다.
- args
-
T
(선택 사항) 부모가 대화 상자에 전달한 인수입니다.
beginDialogAction(string, string, IBeginDialogActionOptions)
트리거될 때마다 다른 대화 상자를 시작할 대화 상자에 작업을 바인딩합니다. 새 대화 상자가 스택에 푸시되므로 현재 작업이 자동으로 종료되지 않습니다. 새 대화 상자가 끝나면 현재 작업이 계속됩니다. 기본 제공 프롬프트가 발생하면 사용자에게 자동으로 다시 메시지를 표시하지만 기본 제공 프롬프트를 호출할 때 promptAfterAction 플래그를 설정하여 해당 동작을 사용하지 않도록 설정할 수 있습니다.
function beginDialogAction(name: string, id: string, options?: IBeginDialogActionOptions)
매개 변수
- name
-
string
작업을 할당할 고유 이름입니다.
- id
-
string
시작할 대화 상자의 ID입니다.
- options
- IBeginDialogActionOptions
(선택 사항) 작업을 구성하는 데 사용되는 옵션입니다. 일치 지정된 경우 작업은 사용자가 작업을 트리거하는 단어 또는 구를 말하도록 수신 대기합니다. 그렇지 않으면 작업을 트리거하기 위해 CardAction.dialogAction() 사용하여 단추에 작업을 바인딩해야 합니다. dialogArgs 사용하여 시작 중인 대화 상자에 추가 매개 변수를 전달할 수도 있습니다.
반환
cancelAction(string, TextOrMessageType, ICancelActionOptions)
트리거될 때마다 대화 상자를 취소하는 작업을 대화 상자에 바인딩합니다. 취소되면 취소되었음을 나타내는 다시 코드로 대화 상자 부모가 다시.
function cancelAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)
매개 변수
- name
-
string
작업을 할당할 고유 이름입니다.
(선택 사항) 대화 상자를 취소하기 전에 사용자를 보내는 메시지입니다.
- options
- ICancelActionOptions
(선택 사항) 작업을 구성하는 데 사용되는 옵션입니다. 일치 지정된 경우 작업은 사용자가 작업을 트리거하는 단어 또는 구를 말하도록 수신 대기합니다. 그렇지 않으면 작업을 트리거하기 위해 CardAction.dialogAction() 사용하여 단추에 작업을 바인딩해야 합니다.
반환
clone(ActionSet)
기존 ActionSet의 복제본을 반환합니다.
function clone(copyTo?: ActionSet)
매개 변수
- copyTo
- ActionSet
(선택 사항) 현재 개체를 복사할 인스턴스입니다. 누락된 경우 새 인스턴스가 만들어집니다.
반환
createHandler(IDialogWaterfallStep[])
폭포를 구동할 수 있는 함수를 만듭니다. 함수가 호출될 때마다 폭포의 다음 단계를 호출하여 폭포를 앞으로 구동합니다. 이 함수는 session.dialogData 사용하여 폭포 현재 단계를 저장합니다.
폭포를 앞으로 구동하려면 처리기에 전달된 args 매개 변수에 args.resumed = builder.ResumeReason.completed있어야 합니다. 폭포의 끝에 도달하면 전달된 인수를 반환하는 session.endDialogWithResult(args) 자동으로 호출됩니다.
args 매개 변수에 resumed 필드가 없으면 폭포는 단순히 첫 번째 단계를 호출하는 것으로 시작합니다.
static function createHandler(steps: IDialogWaterfallStep[])
매개 변수
- steps
실행할 폭포 단계입니다.
반환
(session: Session, args?: any) => void
customAction(IDialogActionOptions)
트리거될 때 전달된 onSelectAction 처리기를 호출하는 대화 상자에 사용자 지정 작업을 바인딩합니다.
function customAction(options: IDialogActionOptions)
매개 변수
- options
- IDialogActionOptions
작업을 구성하는 데 사용되는 옵션입니다. 일치하는 지정된 경우 작업은 사용자가 작업을 트리거하는 단어 또는 구를 말하는 것을 수신 대기합니다. onFindAction사용하여 사용자 지정 일치 논리를 제공할 수 있습니다.
반환
dialogInterrupted(Session, string, any)
루트 대화 상자가 다른 대화에 의해 중단될 때 호출됩니다. 이렇게 하면 중단되는 대화 상자가 스택에서 제거되기 전에 사용자 지정 논리를 실행할 수 있습니다. 대화 상자 자체는 대화 스택을 지우고 새 대화 상자를 시작하는 역할을 합니다.
function dialogInterrupted(session: Session, dialogId: string, dialogArgs: any)
매개 변수
- session
- Session
현재 대화의 세션 개체입니다.
- dialogId
-
string
시작해야 하는 대화 상자의 ID입니다.
- dialogArgs
-
any
새 대화 상자에 전달되어야 하는 인수입니다.
dialogResumed<T>(Session, IDialogResult<T>)
자식 대화 상자가 종료되고 현재 대화 상자가 다시 시작됩니다.
function dialogResumed<T>(session: Session, result: IDialogResult<T>)
매개 변수
- session
- Session
현재 대화의 세션 개체입니다.
- result
자식 대화 상자에서 반환된 결과입니다.
endConversationAction(string, TextOrMessageType, ICancelActionOptions)
트리거될 때 사용자와의 대화를 종료하는 작업을 바인딩합니다.
function endConversationAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)
매개 변수
- name
-
string
작업을 할당할 고유 이름입니다.
(선택 사항) 대화를 종료하기 전에 사용자를 보내는 메시지입니다.
- options
- ICancelActionOptions
(선택 사항) 작업을 구성하는 데 사용되는 옵션입니다. 일치 지정된 경우 작업은 사용자가 작업을 트리거하는 단어 또는 구를 말하도록 수신 대기합니다. 그렇지 않으면 작업을 트리거하기 위해 CardAction.dialogAction() 사용하여 단추에 작업을 바인딩해야 합니다.
반환
findActionRoutes(IRecognizeDialogContext, (err: Error, results: IRouteResult[]) => void)
Library.findRoutes()에서 호출되는 스택의 각 대화 상자를 호출하여 사용자 발화에 의해 대화 동작이 트리거되는지 여부를 확인합니다.
function findActionRoutes(context: IRecognizeDialogContext, callback: (err: Error, results: IRouteResult[]) => void)
매개 변수
- context
- IRecognizeDialogContext
수신 메시지의 컨텍스트와 평가된 대화에 대한 dialogData.
- callback
-
(err: Error, results: IRouteResult[]) => void
상위 후보 경로를 사용하여 호출하는 함수입니다.
onBeforeStep((session: Session, step: number, args: any, next: (step: number, args: any) => void) => void)
폭포의 모든 단계 전에 호출될 처리기를 등록합니다.
next() 처리기는 체인의 다음 처리기 또는 폭포 단계 자체를 실행합니다. 이 처리기를 사용하면 개발자가 단계를 건너뛰고 다음 단계로 전달되는 인수를 처리할 수 있습니다.
여러 처리기를 등록할 수 있으며 등록되는 처리기는 체인의 다른 처리기 전에 실행됩니다.
function onBeforeStep(handler: (session: Session, step: number, args: any, next: (step: number, args: any) => void) => void)
매개 변수
- handler
-
(session: Session, step: number, args: any, next: (step: number, args: any) => void) => void
각 폭포 단계 간에 호출하는 함수입니다.
반환
recognize(IRecognizeDialogContext, (err: Error, result: IRecognizeResult) => void)
사용자 발화를 구문 분석하고 0.0에서 1.0까지의 점수를 할당하여 대화 상자가 사용자 발화를 이해했는지를 나타냅니다. 이 메서드는 항상 스택의 활성 대화 상자에 대해 호출됩니다. 점수가 1.0이면 완벽한 일치를 나타내고 추가 인식을 종료합니다. 점수가 1.0보다 작으면 스택의 모든 대화 상자에는 recognizeAction() 메서드가 호출되어 사용자 발언과 더 잘 일치하는 대화 상자에 바인딩된 명명된 작업이 있는지 확인합니다. 봇 수준에서 등록된 전역 작업도 평가됩니다. 대화 상자에 점수가 더 높은 경우 바인딩된 동작이 있으면 recognize() 호출에서 반환된 결과 개체를 사용하여 replyReceived() 메서드에 대화 상자가 호출됩니다. 이렇게 하면 대화 상자에서 인식 단계 중에 수집된 추가 데이터를 replyReceived() 메서드로 전달하여 처리할 수 있습니다.
점수가 더 높은 작업이 있는 경우 대화 상자는 replyReceived() 메서드 대신 동작이 호출됩니다. 대화 상자는 스택에 유지되며 작업이 새 대화 상자를 호출하는 경우 언제든지 다시 시작될 수 있으므로 대화 상자에서 dialogResumed()대한 예기치 않은 호출을 준비해야 합니다.
function recognize(context: IRecognizeDialogContext, callback: (err: Error, result: IRecognizeResult) => void)
매개 변수
- context
- IRecognizeDialogContext
요청의 컨텍스트입니다.
- callback
-
(err: Error, result: IRecognizeResult) => void
인식 결과를 사용하여 호출하는 함수입니다.
reloadAction(string, TextOrMessageType, IBeginDialogActionOptions)
트리거될 때마다 대화 상자가 다시 로드되도록 하는 작업을 대화 상자에 바인딩합니다. 이는 "다시 시작"과 같은 사용자 발언을 처리하는 논리를 구현하는 데 유용합니다.
function reloadAction(name: string, msg?: TextOrMessageType, options?: IBeginDialogActionOptions)
매개 변수
- name
-
string
작업을 할당할 고유 이름입니다.
(선택 사항) 대화 상자를 다시 로드하기 전에 사용자를 보내는 메시지입니다.
- options
- IBeginDialogActionOptions
(선택 사항) 작업을 구성하는 데 사용되는 옵션입니다. 일치 지정된 경우 작업은 사용자가 작업을 트리거하는 단어 또는 구를 말하도록 수신 대기합니다. 그렇지 않으면 작업을 트리거하기 위해 CardAction.dialogAction() 사용하여 단추에 작업을 바인딩해야 합니다. dialogArgs 사용하여 다시 로드할 때 대화 상자에 추가 매개 변수를 전달할 수도 있습니다.
반환
replyReceived(Session)
사용자로부터 받은 메시지를 처리합니다. 대화 시스템에서 호출됩니다.
function replyReceived(session: Session)
매개 변수
- session
- Session
현재 대화의 세션 개체입니다.
selectActionRoute(Session, IRouteResult)
발화에 대한 신뢰도 점수가 가장 높은 경로를 선택합니다.
function selectActionRoute(session: Session, route: IRouteResult)
매개 변수
- session
- Session
현재 대화의 세션 개체입니다.
- route
- IRouteResult
triggerAction(ITriggerActionOptions)
트리거될 때마다 활성 대화 상자로 만드는 작업을 대화 상자에 바인딩합니다. 기본 동작은 스택을 지우고 스택의 루트에서 대화 상자를 시작하여 기존 대화 상자를 상호 결합하는 것입니다. 중단되는 대화 상자는 중단된 처리기의 사용자 지정 트리거 작업 옵션에 추가하여 이 중단을 가로챌 수 있습니다. 또한 트리거 작업 옵션에 사용자 지정 onSelectAction 처리기를 제공하여 트리거된 대화가 시작되는 방식을 사용자 지정할 수 있습니다.
function triggerAction(options: ITriggerActionOptions)
매개 변수
- options
- ITriggerActionOptions
작업을 구성하는 데 사용되는 옵션입니다.