세션 저장소

대화 내 특정 사용자의 매개변수 값을 세션 저장소에 저장할 수 있습니다. 그러면 작업이 나중에 프롬프트 및 조건에서 이러한 저장된 값을 사용할 수 있으며, 필요한 경우 웹훅 코드는 대화를 위해 세션 저장소에 있는 값에 액세스할 수 있습니다.

대화 중에 유형을 사용하여 수집된 모든 데이터는 세션 스토리지에 저장됩니다. 웹훅 호출을 사용하여 세션 스토리지의 데이터와 상호작용할 수도 있습니다. 웹훅 호출의 경우 세션 스토리지 상태가 app.handle() 요청으로 전달되고 session 객체에 저장됩니다.

세션 스토리지에 저장된 데이터는 대화가 끝나면 만료됩니다.

세션 저장소 데이터 읽기 및 쓰기

세션 스토리지에서 값을 업데이트하거나 새 값을 설정하려면 웹훅 호출에서 session 객체의 params 필드에 값을 할당합니다. 다음 예에서는 세션 저장소에서 'exampleColor'를 'red'로 설정합니다.

Node.js

// Assign color to session storage
app.handle('storeColor', conv => {
  let color = 'red';
  conv.session.params.exampleColor = color;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "12345678901234567890",
      "params": {
        "exampleColor": "red"
      }
    },
    "prompt": {
      "override": false
    }
  }
}
    

세션 저장소에 저장된 데이터에 액세스하려면 웹훅 호출의 변수에 데이터를 할당합니다. 다음 예에서는 세션 저장소의 'exampleColor'에서 값을 가져옵니다.

Node.js

// Retrieve color from session storage
app.handle('getStoredColor', conv => {
  let color = conv.session.params.exampleColor;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "12345678901234567890",
      "params": {
        "exampleColor": "red"
      }
    },
    "prompt": {
      "override": false
    }
  }
}
    

이전에 저장한 값을 삭제하려면 웹훅 호출에서 값을 null로 설정합니다. 다음 예는 세션 저장소에서 'exampleColor'의 값을 지웁니다.

Node.js

// Clear color from session storage
app.handle('clearStoredColor', conv => {
  conv.session.params.exampleColor = null;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "12345678901234567890",
      "params": {}
    },
    "prompt": {
      "override": false
    }
  }
}
    

프롬프트 내에서 저장된 값 참조

프롬프트에서 세션 스토리지에 저장된 값을 참조할 수 있습니다. 값을 참조하려면 $session.params.PARAMETER_NAME 구문을 사용합니다. 여기서 PARAMETER_NAME은 매개변수가 설정되었을 때 웹훅에 지정된 이름입니다.

예를 들어 이전에 세션 저장소에 색상 값을 exampleColor 매개변수로 저장했습니다. 프롬프트에서 해당 값에 액세스하려면 $session.params.exampleColor을 사용하여 해당 값을 참조합니다.

JSON

{
  "candidates": [{
    "first_simple": {
      "variants": [{
        "speech": "Your favorite color is $session.params.exampleColor."
      }]
    }
  }]
}
    

조건 내에서 저장된 값 참조

conditions에서 세션 스토리지에 저장된 값을 참조할 수도 있습니다. 값을 참조하려면 session.params.PARAMETER_NAME 구문을 사용합니다. 여기서 PARAMETER_NAME은 매개변수가 설정되었을 때 웹훅에 지정된 이름입니다.

예를 들어 이전에 세션 저장소에 색상 값을 exampleColor 매개변수로 저장했으며 이를 조건의 'red' 값과 일치시키려고 합니다. 조건에서 session.params.exampleColor를 사용하여 저장된 값을 참조합니다. 그러면 조건식이 다음과 같이 표시됩니다.

조건 문법

session.params.exampleColor == "red"