적응형 대화 상자에서 상태 관리 - 참조 가이드

적용 대상: SDK v4

이 문서에서는 적응형 대화 상자에서 메모리 범위를 사용하는 데 도움이 되는 기술 세부 정보를 제공합니다. 적응형 대화 상자에서 메모리 범위 및 상태 관리에 대한 소개는 대화 흐름 및 메모리 작성기 개념 문서를 참조하세요.

모든 속성 경로는 대/소문자를 구분하지 않습니다. 예를 들어 user.nameuser.Name과 같습니다. 또한 이름이 지정된 user.name 속성이 없고 개체라는 user.name.firstuser.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.indexdialog.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, 부울 속성; trueturnContext.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>}

추가 정보