세션 항목

세션은 Dialogflow 에이전트와 최종 사용자 간의 대화를 나타냅니다. 세션 중에 세션 항목이라는 특수 항목을 만들 수 있습니다. 세션 항목은 커스텀 항목 유형을 확장하거나 대체할 수 있으며 세션 항목이 만들어진 세션 동안에만 존재할 수 있습니다. Dialogflow는 세션 항목을 포함한 모든 세션 데이터를 20분 동안 저장합니다.

예를 들어 에이전트에 '서양배' 및 '포도'를 포함하는 @fruit 항목 유형이 있는 경우, 에이전트가 최종 사용자로부터 수집하는 정보에 따라 '사과' 또는 '오렌지'를 포함하도록 항목 유형을 업데이트할 수 있습니다. 업데이트된 항목 유형은 나머지 세션에 대해 '사과' 또는 '오렌지' 항목을 포함하게 됩니다.

fulfillment로 세션 항목 만들기

fulfillment를 사용하여 세션 항목을 만들 수 있습니다. WebhookResponse 유형에는 세션 항목을 설정하는 데 사용되는 sessionEntityTypes 필드가 포함됩니다.

다음 예시에서는 fruit 항목 유형의 항목을 현재 세션의 appleorange로 설정하는 방법을 보여줍니다.

WebhookResponse 예시:

{
  "fulfillmentMessages": [
    {
      "text": {
        "text": [
          "Choose apple or orange"
        ]
      }
    }
  ],
  "sessionEntityTypes":[
    {
      "name":"projects/project-id/agent/sessions/session-id/entityTypes/fruit",
      "entities":[
        {
          "value":"APPLE_KEY",
          "synonyms":[
            "apple",
            "green apple",
            "crabapple"
          ]
        },
        {
          "value":"ORANGE_KEY",
          "synonyms":[
            "orange"
          ]
        }
      ],
      "entityOverrideMode":"ENTITY_OVERRIDE_MODE_OVERRIDE"
    }
  ]
}

Actions on Google 클라이언트 라이브러리 사용 예시:

Actions on Google 클라이언트 라이브러리를 사용하는 경우 세션 항목 플러그인을 사용할 수 있습니다.

코드는 다음과 비슷하게 표시됩니다.

const { sessionEntitiesHelper } = require('actions-on-google-dialogflow-session-entities-plugin')

const app = dialogflow()
    .use(sessionEntitiesHelper())

app.intent('input.welcome', (conv) => {
  conv.ask('make your choice: apple or orange?');
  // Set the fruit session entity values to 'apple' and 'orange'.
  conv.sessionEntities.add({
    name: 'fruit',
    entities: [{
      value: 'APPLE_KEY',
      synonyms: [
        'apple', 'green apple', 'crabapple'
      ]
    }, {
      value: 'ORANGE_KEY',
      synonyms: ['orange']
    }]
  });
  conv.sessionEntities.send();
});

API로 세션 항목 만들기

SessionEntityTypes 유형을 사용하여 세션 항목을 생성, 관리, 업데이트합니다.