적응형 대화 상자에서 상태 관리 - 참조 가이드
적용 대상: SDK v4
이 문서에서는 적응형 대화 상자에서 메모리 범위를 사용하는 데 도움이 되는 기술 세부 정보를 제공합니다. 적응형 대화 상자에서 메모리 범위 및 상태 관리에 대한 소개는 대화 흐름 및 메모리 작성기 개념 문서를 참조하세요.
팁
모든 속성 경로는 대/소문자를 구분하지 않습니다. 예를 들어 user.name
은 user.Name
과 같습니다. 또한 이름이 지정된 user.name
속성이 없고 개체라는 user.name.first
user.name
속성을 만들면 자동으로 개체가 만들어집니다.
사용자 범위
사용자 범위는 대화하는 사용자의 ID로 범위가 지정된 영구 데이터입니다.
예:
user.name
user.address.city
대화 범위
대화 범위는 현재 대화의 ID로 범위가 지정된 영구 데이터입니다.
예:
conversation.hasAccepted
conversation.dateStarted
conversation.lastMaleReference
conversation.lastFemaleReference
conversation.lastLocationReference
대화 상자 범위
대화 상자 범위는 연결된 대화 상자의 수명 동안 데이터를 유지하여 각 대화 상자에 내부 영구 부기 보관을 위한 메모리 공간을 제공합니다. 연결된 대화 상자가 종료되면 대화 상자 범위가 지워집니다.
대화 상자 범위 약식 예제:
- 약식
dialog.orderStarted
은 .입니다$orderStarted
. - 약식
dialog.shoppingCart
은 .입니다$shoppingCart
.
새 적응형 대화 상자를 만들 때 전달되는 BeginDialog
모든 옵션은 해당 대화 상자의 속성이 되며 범위에 있는 한 액세스할 수 있습니다. 이름: 대화 상자로 이러한 속성에 액세스합니다.<propertyName>. 예를 들어 호출자가 {a : '1', b: '2'}를 전달한 경우 dialog.a 및 dialog.b로 설정됩니다.
대화 상자 하위 범위
적응형 대화 상자의 모든 트리거 작업에는 자체 하위 범위가 있으며 이름으로 액세스됩니다. 예를 들어 Foreach
작업은 .로 dialog.Foreach
액세스됩니다. 기본적으로 인덱스 및 값은 범위에서 dialog.foreach
설정되며 다음과 같이 dialog.Foreach.index
dialog.Foreach.value
액세스할 수 있습니다.
턴 범위
턴 범위에는 현재 턴에 대해서만 범위가 지정되는 비영구 데이터가 포함됩니다. 턴 범위는 현재 턴의 수명 동안 데이터를 공유할 수 있는 위치를 제공합니다.
예:
turn.bookingConfirmation
turn.activityProcessed
하위 범위 설정
turn.activity
봇에 들어오는 각 작업은 범위를 통해 turn.activity
사용할 수 있습니다.
예를 들어 .lg 파일에 정의된 것과 같이 사용 기간에 대한 메시지가 표시될 때 잘못된 값을 입력한 사용자에게 응답하는 것과 같은 내용이 있을 수 있습니다.
Sorry, I don't understand '${turn.activity.text}'. ${GetAge()}
turn.recognized
지정된 턴에서 인식기에서 반환된 모든 의도 및 엔터티는 범위에서 turn.recognized
자동으로 설정되고 다음 턴이 발생할 때까지 다시 사용할 수 기본. 범위에 turn.recognized
는 다음 세 가지 속성이 있습니다.
turn.recognized.intents.xxx
: 해당 턴에 대한 인식기에서 분류한 상위 의도 목록입니다.turn.recognized.entities.xxx
: 해당 턴을 인식한 엔터티 목록입니다.turn.recognized.score
: 해당 턴에 대한 최고 점수 의도의 신뢰도 점수 입니다.
turn.dialogEvent
turn.dialogEvent
에는 시스템 또는 코드에서 발생한 이벤트의 페이로드가 포함됩니다. 범위에 액세스하여 turn.dialogEvent.<eventName>.value
페이로드에 포함된 정보에 액세스할 수 있습니다.
turn.lastResult
범위에서 호출된 마지막 대화 상자의 turn.lastResult
결과에 액세스할 수 있습니다.
turn.activityProcessed
turn.activityProcessed
, 부울 속성; true
는 turnContext.activity
시스템의 일부 구성 요소에서 사용되었음을 나타냅니다.
turn.interrupted
turn.interrupted
, 부울 속성; true
는 중단이 발생했음을 나타냅니다.
설정 범위
이는 플랫폼별 설정 구성 시스템을 통해 봇에서 사용할 수 있는 모든 설정을 나타냅니다. 예를 들어 C#을 사용하여 봇을 개발하는 경우 이러한 설정은 appsettings.json 파일에 표시됩니다.
설정 범위 예제
다음은 봇에 대한 구성 설정을 보유하는 appsettings.json 파일의 예입니다.
{
"MicrosoftAppId": "<yourMicrosoftAppId>",
"MicrosoftAppPassword": "<yourMicrosoftAppPassword>",
"QnAMaker": {
"knowledgebaseId": "<yourQnAKnowledgebaseId>",
"hostname": "https://<YourHostName>.azurewebsites.net/qnamaker",
"endpointKey": "yourEndpointKey"
}
}
이 범위
this
범위는 활성 작업의 속성 모음과 관련이 있습니다. 이는 수명 유형이 일반적으로 대화의 단일 턴 이상으로 지속되기 때문에 입력 작업에 유용합니다.
this.value
는 입력에 대해 인식된 현재 값을 보유합니다.this.turnCount
는 이 입력에 대해 누락된 정보가 표시되는 횟수를 보유합니다.
클래스 범위
활성 대화 상자의 인스턴스 속성을 포함합니다. 다음과 같이 이 범위를 참조합니다. ${class.<propertyName>}
추가 정보
- Composer의 상태 관리에 대한 소개는 대화 흐름 및 메모리 작성기 개념 문서를 참조하세요.