다음을 통해 공유


DialogContext class

현재 대화 상자의 컨텍스트는 특정 DialogSet관련됩니다.

설명

여기에는 턴 컨텍스트, 대화 집합에 대한 정보 및 대화 스택의 상태가 포함됩니다.

집합의 대화 상자 외부 코드에서 DialogSet.createContext 사용하여 대화 컨텍스트를 만듭니다. 그런 다음, 대화 컨텍스트의 메서드를 사용하여 집합에서 대화 상자의 진행을 관리합니다.

대화 상자를 구현할 때 대화 상자 컨텍스트는 재정의하거나 구현하는 다양한 메서드에서 사용할 수 있는 매개 변수입니다.

예를 들어:

const dc = await dialogs.createContext(turnContext);
const result = await dc.continueDialog();

생성자

DialogContext(DialogSet, DialogContext, DialogState)

DialogContext 클래스의 새 인스턴스를 만듭니다.

DialogContext(DialogSet, TurnContext, DialogState)

DialogContext 클래스의 새 인스턴스를 만듭니다.

속성

activeDialog
child
context

순서에 대한 컨텍스트 개체를 가져옵니다.

dialogManager
dialogs

이 컨텍스트에서 직접 호출할 수 있는 대화 상자를 가져옵니다.

parent

이 대화 상자 컨텍스트의 부모 대화 상자 컨텍스트이거나, 이 컨텍스트에 부모가 없는 경우 undefined.

services

이 대화 상자 컨텍스트에 대한 컨텍스트인 서비스 컬렉션을 가져옵니다.

stack

현재 대화 상자 스택을 가져옵니다.

state

모든 메모리 범위의 보기를 관리하는 DialogStateManager를 가져옵니다.

메서드

beginDialog(string, object)

대화 상자 인스턴스를 시작하고 대화 상자 스택으로 푸시합니다. 대화 상자의 새 인스턴스를 만들어 스택에 푸시합니다.

cancelAllDialogs(boolean, string, any)

대화 상자 스택의 모든 대화 상자를 취소하고 스택을 지웁니다.

continueDialog()

활성 대화 상자가 있는 경우 이 대화 컨텍스트를 Dialog.continueDialog 메서드에 전달하여 계속 실행합니다.

emitEvent(string, any, boolean, boolean)

지정된 ID를 사용하여 대화 상자를 검색합니다.

endDialog(any)

대화 상자를 종료하고 스택에서 팝합니다. 대화 상자의 부모에 대한 선택적 결과를 반환합니다.

findDialog(string)

지정된 ID를 사용하여 대화 상자를 검색합니다.

getLocale()

DialogContext에서 CultureInfo를 가져옵니다.

prompt(string, string | Partial<Activity> | PromptOptions)

도우미 함수는 프롬프트 대화 상자를 호출하기 위한 옵션의 서식을 간소화합니다.

prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])

도우미 함수는 프롬프트 대화 상자를 호출하기 위한 옵션의 서식을 간소화합니다.

replaceDialog(string, object)

활성 대화 상자를 종료하고 해당 위치에서 새 대화 상자를 시작합니다.

repromptDialog()

사용자에게 입력하라는 메시지를 다시 표시하도록 활성 대화 상자를 요청합니다.

생성자 세부 정보

DialogContext(DialogSet, DialogContext, DialogState)

DialogContext 클래스의 새 인스턴스를 만듭니다.

new DialogContext(dialogs: DialogSet, contextOrDC: DialogContext, state: DialogState)

매개 변수

contextOrDC
DialogContext

봇의 현재 턴에 대한 TurnContext 개체입니다.

state
DialogState

스토리지에 읽고 쓰는 데 사용할 상태 개체입니다.

설명

DialogContext 인스턴스를 전달하면 대화 컨텍스트가 복제됩니다.

DialogContext(DialogSet, TurnContext, DialogState)

DialogContext 클래스의 새 인스턴스를 만듭니다.

new DialogContext(dialogs: DialogSet, contextOrDC: TurnContext, state: DialogState)

매개 변수

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

이 컨텍스트에서 직접 호출할 수 있는 대화 상자를 가져옵니다.

dialogs: DialogSet

속성 값

parent

이 대화 상자 컨텍스트의 부모 대화 상자 컨텍스트이거나, 이 컨텍스트에 부모가 없는 경우 undefined.

parent: DialogContext | undefined

속성 값

DialogContext | undefined

설명

대화 상자를 시작하려고 하면 대화 컨텍스트는대화 상자에서 Dialog.id 검색합니다. 이 대화 상자 컨텍스트에서 시작할 대화 상자를 찾을 수 없으면 부모 대화 컨텍스트에서 검색하는 등의 작업을 수행합니다.

services

이 대화 상자 컨텍스트에 대한 컨텍스트인 서비스 컬렉션을 가져옵니다.

services: TurnContextStateCollection

속성 값

TurnContextStateCollection

stack

현재 대화 상자 스택을 가져옵니다.

stack: DialogInstance[]

속성 값

state

모든 메모리 범위의 보기를 관리하는 DialogStateManager를 가져옵니다.

state: DialogStateManager

속성 값

메서드 세부 정보

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 });

참조

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);

참조

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();