DialogContext class
현재 대화 상자의 컨텍스트는 특정 DialogSet관련됩니다.
설명
여기에는 턴 컨텍스트, 대화 집합에 대한 정보 및 대화 스택의 상태가 포함됩니다.
집합의 대화 상자 외부 코드에서 DialogSet.createContext 사용하여 대화 컨텍스트를 만듭니다. 그런 다음, 대화 컨텍스트의 메서드를 사용하여 집합에서 대화 상자의 진행을 관리합니다.
대화 상자를 구현할 때 대화 상자 컨텍스트는 재정의하거나 구현하는 다양한 메서드에서 사용할 수 있는 매개 변수입니다.
예를 들어:
const dc = await dialogs.createContext(turnContext);
const result = await dc.continueDialog();
생성자
| Dialog |
DialogContext 클래스의 새 인스턴스를 만듭니다. |
| Dialog |
DialogContext 클래스의 새 인스턴스를 만듭니다. |
속성
| active |
|
| child | |
| context | 순서에 대한 컨텍스트 개체를 가져옵니다. |
| dialog |
|
| dialogs | 이 컨텍스트에서 직접 호출할 수 있는 대화 상자를 가져옵니다. |
| parent | 이 대화 상자 컨텍스트의 부모 대화 상자 컨텍스트이거나, 이 컨텍스트에 부모가 없는 경우 |
| services | 이 대화 상자 컨텍스트에 대한 컨텍스트인 서비스 컬렉션을 가져옵니다. |
| stack | 현재 대화 상자 스택을 가져옵니다. |
| state | 모든 메모리 범위의 보기를 관리하는 DialogStateManager를 가져옵니다. |
메서드
| begin |
대화 상자 인스턴스를 시작하고 대화 상자 스택으로 푸시합니다. 대화 상자의 새 인스턴스를 만들어 스택에 푸시합니다. |
| cancel |
대화 상자 스택의 모든 대화 상자를 취소하고 스택을 지웁니다. |
| continue |
활성 대화 상자가 있는 경우 이 대화 컨텍스트를 Dialog.continueDialog 메서드에 전달하여 계속 실행합니다. |
| emit |
지정된 ID를 사용하여 대화 상자를 검색합니다. |
| end |
대화 상자를 종료하고 스택에서 팝합니다. 대화 상자의 부모에 대한 선택적 결과를 반환합니다. |
| find |
지정된 ID를 사용하여 대화 상자를 검색합니다. |
| get |
DialogContext에서 CultureInfo를 가져옵니다. |
| prompt(string, string | Partial<Activity> | Prompt |
도우미 함수는 프롬프트 대화 상자를 호출하기 위한 옵션의 서식을 간소화합니다. |
| prompt(string, string | Partial<Activity> | Prompt |
도우미 함수는 프롬프트 대화 상자를 호출하기 위한 옵션의 서식을 간소화합니다. |
| replace |
활성 대화 상자를 종료하고 해당 위치에서 새 대화 상자를 시작합니다. |
| reprompt |
사용자에게 입력하라는 메시지를 다시 표시하도록 활성 대화 상자를 요청합니다. |
생성자 세부 정보
DialogContext(DialogSet, DialogContext, DialogState)
DialogContext 클래스의 새 인스턴스를 만듭니다.
new DialogContext(dialogs: DialogSet, contextOrDC: DialogContext, state: DialogState)
매개 변수
- dialogs
- DialogSet
- contextOrDC
- DialogContext
봇의 현재 턴에 대한 TurnContext 개체입니다.
- state
- DialogState
스토리지에
설명
DialogContext 인스턴스를 전달하면 대화 컨텍스트가 복제됩니다.
DialogContext(DialogSet, TurnContext, DialogState)
DialogContext 클래스의 새 인스턴스를 만듭니다.
new DialogContext(dialogs: DialogSet, contextOrDC: TurnContext, state: DialogState)
매개 변수
- dialogs
- DialogSet
- contextOrDC
-
TurnContext
봇의 현재 턴에 대한 TurnContext 개체입니다.
- state
- DialogState
스토리지에
설명
DialogContext 인스턴스를 전달하면 대화 컨텍스트가 복제됩니다.
속성 세부 정보
activeDialog
DialogInstance | undefined activeDialog
속성 값
DialogInstance | undefined
대화 상자 스택 맨 위에 있는 대화 상자의 상태 정보이거나 스택이 비어 있으면 undefined.
child
DialogContext | undefined child
속성 값
DialogContext | undefined
현재 대화 상자가 컨테이너인 경우 자식에 대한 대화 상자 컨텍스트입니다.
context
순서에 대한 컨텍스트 개체를 가져옵니다.
context: TurnContext
속성 값
TurnContext
dialogManager
경고
이 API는 이제 사용되지 않습니다.
This property serves no function.
DialogManager dialogManager
속성 값
현재 대화 관리자 인스턴스입니다. 이 속성은 더 이상 사용되지 않습니다.
dialogs
parent
이 대화 상자 컨텍스트의 부모 대화 상자 컨텍스트이거나, 이 컨텍스트에 부모가 없는 경우 undefined.
parent: DialogContext | undefined
속성 값
DialogContext | undefined
설명
대화 상자를 시작하려고 하면 대화 컨텍스트는
services
이 대화 상자 컨텍스트에 대한 컨텍스트인 서비스 컬렉션을 가져옵니다.
services: TurnContextStateCollection
속성 값
TurnContextStateCollection
stack
state
메서드 세부 정보
beginDialog(string, object)
대화 상자 인스턴스를 시작하고 대화 상자 스택으로 푸시합니다. 대화 상자의 새 인스턴스를 만들어 스택에 푸시합니다.
function beginDialog(dialogId: string, options?: object): Promise<DialogTurnResult>
매개 변수
- dialogId
-
string
시작할 대화 상자의 ID입니다.
- options
-
object
선택적. 시작할 때 대화 상자에 전달할 인수입니다.
반환
Promise<DialogTurnResult>
대화 상자 턴 결과로 해결되는 약속입니다.
설명
스택에 활성 대화 상자가 이미 있는 경우 해당 대화 상자는 스택의 맨 위 대화 상자가 될 때까지 일시 중지됩니다.
반환된 개체의 상태 이 메서드가 완료된 후 대화 상자 스택의 상태를 설명합니다.
이 메서드는 요청된 대화 상자를 이 대화 컨텍스트 또는 상위 항목에서 찾을 수 없는 경우 예외를 throw합니다.
예를 들어:
const result = await dc.beginDialog('greeting', { name: user.name });
참조
- endDialog
- 프롬프트
- replaceDialog
- Dialog.beginDialog
cancelAllDialogs(boolean, string, any)
대화 상자 스택의 모든 대화 상자를 취소하고 스택을 지웁니다.
function cancelAllDialogs(cancelParents?: boolean, eventName?: string, eventValue?: any): Promise<DialogTurnResult>
매개 변수
- cancelParents
-
boolean
선택적.
true 경우 모든 부모 대화도 취소됩니다.
- eventName
-
string
선택적. 대화 상자가 취소될 때 발생되는 사용자 지정 이벤트의 이름입니다. 이 기본값은 cancelDialog
- eventValue
-
any
선택적. 사용자 지정 취소 이벤트와 함께 전달할 값입니다.
반환
Promise<DialogTurnResult>
대화 상자 턴 결과로 해결되는 약속입니다.
설명
스택에서 대화 상자를 제거하기 전에 각 대화 상자의 Dialog.endDialog 메서드를 호출합니다.
처음에 스택에 대화 상자가 있는 경우 반환 값의
다음은 'bookFlight' 대화 상자를 시작하기 전에 dc대화 상자 스택을 지우는 예제입니다.
await dc.cancelAllDialogs();
return await dc.beginDialog('bookFlight');
참조
continueDialog()
활성 대화 상자가 있는 경우 이 대화 컨텍스트를 Dialog.continueDialog 메서드에 전달하여 계속 실행합니다.
function continueDialog(): Promise<DialogTurnResult>
반환
Promise<DialogTurnResult>
대화 상자 턴 결과로 해결되는 약속입니다.
설명
통화가 완료되면 턴 컨텍스트의 응답 속성을 확인하여 대화 상자가 사용자에게 회신을 보냈는지 확인할 수 있습니다.
반환된 개체의 상태 이 메서드가 완료된 후 대화 상자 스택의 상태를 설명합니다.
일반적으로 봇의 턴 처리기 내에서 이를 호출합니다.
예를 들어:
const result = await dc.continueDialog();
if (result.status == DialogTurnStatus.empty && dc.context.activity.type == ActivityTypes.message) {
// Send fallback message
await dc.context.sendActivity(`I'm sorry. I didn't understand.`);
}
emitEvent(string, any, boolean, boolean)
지정된 ID를 사용하여 대화 상자를 검색합니다.
function emitEvent(name: string, value?: any, bubble?: boolean, fromLeaf?: boolean): Promise<boolean>
매개 변수
- name
-
string
발생할 이벤트의 이름입니다.
- value
-
any
선택적. 이벤트와 함께 보낼 값입니다.
- bubble
-
boolean
선택적. 이벤트를 로컬로 처리하지 않을 경우 부모에 버블링해야 하는지 여부를 제어하는 플래그입니다. 기본값은 true.
- fromLeaf
-
boolean
선택적. 리프 노드에서 이벤트를 내보내는지 여부입니다.
반환
Promise<boolean>
이벤트가 처리되었는지 true.
설명
현재 대화 상자에 대해 명명된 이벤트를 내보내거나 해당 이벤트를 시작한 사용자가 처리할 수 있습니다.
endDialog(any)
대화 상자를 종료하고 스택에서 팝합니다. 대화 상자의 부모에 대한 선택적 결과를 반환합니다.
function endDialog(result?: any): Promise<DialogTurnResult>
매개 변수
- result
-
any
선택적. 부모 논리에 전달할 결과입니다. 스택의 다음 대화 상자이거나 스택의 마지막 대화 상자인 경우 부모 대화 컨텍스트 또는 봇의 턴 처리기일 수 있습니다.
반환
Promise<DialogTurnResult>
대화 상자 턴 결과로 해결되는 약속입니다.
설명
부모 대화 상자가 있는 경우 대화 상자 스택의 다음 대화 상자입니다. 이 메서드는 부모의 Dialog.resumeDialog 메서드를 호출하여 종료 대화 상자에서 반환된 결과를 전달합니다. 부모 대화 상자가 없으면 반환된 개체의 결과 속성을 통해 봇에서 턴이 종료되고 결과를 사용할 수 있습니다.
반환된 개체의 상태 이 메서드가 완료된 후 대화 상자 스택의 상태를 설명합니다.
일반적으로 특정 대화에 대한 논리 내에서 이를 호출하여 대화가 완료되었음을 대화 컨텍스트로 다시 알리고, 대화 상자를 스택에서 제거해야 하며, 부모 대화가 다시 시작되어야 합니다.
예를 들어:
return await dc.endDialog(returnValue);
참조
- beginDialog
- replaceDialog
- Dialog.endDialog
findDialog(string)
지정된 ID를 사용하여 대화 상자를 검색합니다.
function findDialog(dialogId: string): Dialog | undefined
매개 변수
- dialogId
-
string
검색할 대화 상자의 ID입니다.
반환
Dialog | undefined
제공된 ID에 대한 대화 상자입니다.
설명
이 대화 컨텍스트와 연결된 DialogSet 시작할 대화 상자를 찾을 수 없는 경우 부모 대화 컨텍스트에서 대화 상자를 찾으려고 시도합니다.
참조
- 대화
- 부모
getLocale()
DialogContext에서 CultureInfo를 가져옵니다.
function getLocale(): string
반환
string
로캘 문자열입니다.
prompt(string, string | Partial<Activity> | PromptOptions)
도우미 함수는 프롬프트 대화 상자를 호출하기 위한 옵션의 서식을 간소화합니다.
function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions): Promise<DialogTurnResult>
매개 변수
- dialogId
-
string
시작할 프롬프트 대화 상자의 ID입니다.
- promptOrOptions
-
string | Partial<Activity> | PromptOptions
사용자를 보낼 초기 프롬프트의 텍스트, 초기 프롬프트로 보낼 활동 또는 프롬프트 대화 상자의 서식을 지정할 개체입니다.
반환
Promise<DialogTurnResult>
설명
이 도우미 메서드는 options 매개 변수로 사용할 개체의 서식을 지정한 다음 beginDialog 호출하여 지정된 프롬프트 대화 상자를 시작합니다.
return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);
prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])
도우미 함수는 프롬프트 대화 상자를 호출하기 위한 옵션의 서식을 간소화합니다.
function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions, choices: string | Choice[]): Promise<DialogTurnResult>
매개 변수
- dialogId
-
string
시작할 프롬프트 대화 상자의 ID입니다.
- promptOrOptions
-
string | Partial<Activity> | PromptOptions
사용자를 보낼 초기 프롬프트의 텍스트, 초기 프롬프트로 보낼
- choices
-
string | Choice[]
선택적. 사용자가 선택할 수 있는 선택 항목 배열로, ChoicePrompt사용할 수 있습니다.
반환
Promise<DialogTurnResult>
설명
이 도우미 메서드는 options 매개 변수로 사용할 개체의 서식을 지정한 다음 beginDialog 호출하여 지정된 프롬프트 대화 상자를 시작합니다.
return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);
replaceDialog(string, object)
활성 대화 상자를 종료하고 해당 위치에서 새 대화 상자를 시작합니다.
function replaceDialog(dialogId: string, options?: object): Promise<DialogTurnResult>
매개 변수
- dialogId
-
string
시작할 대화 상자의 ID입니다.
- options
-
object
선택적. 새 대화 상자가 시작될 때 전달할 인수입니다.
반환
Promise<DialogTurnResult>
대화 상자 턴 결과로 해결되는 약속입니다.
설명
이는 루프를 만들거나 다른 대화 상자로 리디렉션하는 데 특히 유용합니다.
반환된 개체의 상태 이 메서드가 완료된 후 대화 상자 스택의 상태를 설명합니다.
이 메서드는 현재 대화 상자를 종료하고 새 대화 상자를 즉시 시작하는 것과 유사합니다. 그러나 부모 대화 상자는 다시 시작되거나 다른 알림을 받지 않습니다.
참조
repromptDialog()
사용자에게 입력하라는 메시지를 다시 표시하도록 활성 대화 상자를 요청합니다.
function repromptDialog(): Promise<void>
반환
Promise<void>
설명
활성 대화 상자의 repromptDialog 메서드를 호출합니다.
예를 들어:
await dc.repromptDialog();