세션은 Dialogflow 에이전트와 최종 사용자 간의 대화를 나타냅니다. 세션 중에 세션 항목이라는 특수 항목을 만들 수 있습니다. 세션 항목은 커스텀 항목 유형을 확장하거나 대체할 수 있으며 세션 항목이 만들어진 세션 동안에만 존재할 수 있습니다. Dialogflow는 세션 항목을 포함한 모든 세션 데이터를 20분 동안 저장합니다.
예를 들어 에이전트에 '서양배' 및 '포도'를 포함하는 @fruit
항목 유형이 있는 경우, 에이전트가 최종 사용자로부터 수집하는 정보에 따라 '사과' 또는 '오렌지'를 포함하도록 항목 유형을 업데이트할 수 있습니다.
업데이트된 항목 유형은 나머지 세션에 대해 '사과' 또는 '오렌지' 항목을 포함하게 됩니다.
fulfillment로 세션 항목 만들기
fulfillment를 사용하여 세션 항목을 만들 수 있습니다.
WebhookResponse
유형에는 세션 항목을 설정하는 데 사용되는 sessionEntityTypes
필드가 포함됩니다.
다음 예시에서는 fruit
항목 유형의 항목을 현재 세션의 apple
및 orange
로 설정하는 방법을 보여줍니다.
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
유형을 사용하여 세션 항목을 생성, 관리, 업데이트합니다.