튜토리얼: 웹 채팅에서 작업에 대한 컨텍스트 변수 설정하기
이 튜토리얼에서는 웹 채팅을 사용하여 작업에서 액세스할 수 있는 컨텍스트 변수의 값을 설정하는 방법을 보여 줍니다.
이 튜토리얼에서 설명한 예제의 완성된 실행 버전을 보려면 ‘AI 어시스턴트 웹 채팅을 위한 컨텍스트 변수 설정’을 참조하세요.
컨텍스트 변수를 사용하여 어시스턴트가 대화 전반에 걸쳐 사용하는 정보를 저장할 수 있습니다.
컨텍스트 데이터는 세션 내내 유지됩니다. 컨텍스트는 각 메시지의 일부로 어시스턴트에게 전송되며, 각 응답과 함께 ' context이라는 객체로 반환됩니다. 액션 스킬의 컨텍스트 변수는 다음 위치에 저장됩니다:
"context": {
"skills": {
"action skill": {
"skill_variables": {
...
}
}
}
}
모든 JSON 데이터는 ' skill_variables ' 개체에 저장되어 작업이나 웹 채팅에서 읽거나 수정할 수 있습니다.
이 예에서는 고객의 이름을 컨텍스트 변수에 저장하여 개인화된 인사말을 표시하는 데 사용할 수 있는 방법을 보여 줍니다. 이 방법을 사용하여 어시스턴트가 사용할 수 있는 다른 모든 정보를 저장할 수도 있습니다. 예를 들어 고객의 위치, 계정 잔액, 저장된 기본 설정 등이 있습니다.
웹 채팅에서 컨텍스트 변수 값을 설정하려면 다음 단계를 따르세요:
이
pre:send이벤트에 대한 핸들러를 생성합니다. 이 핸들러는 발신 메시지 이벤트의 페이로드를 수정하여 'User_Name'이라는 컨텍스트 변수에 값을 할당합니다.
대화를 시작할 때 사용자 이름을 한 번만 설정하고 싶습니다. 이 예에서는 홈 화면이 사용 설정되어 있지 않다고 가정하므로 웹 채팅에서 새 대화가 시작될 때마다 빈 메시지로 어시스턴트의 인사말을 트리거합니다.
이 예제에서는 하드코딩된 사용자 이름 ' Cade'을 사용하고 있습니다. 프로덕션 어시스턴트에서는 웹사이트의 사용자 프로필에서 고객 이름을 검색할 수 있습니다.
function preSendHandler(event) {
// Only do this on messages that request the welcome message.
if (event.data.input && event.data.input.text === '') {
event.data.context.skills['actions skill'] = event.data.context.skills['actions skill'] || {};
event.data.context.skills['actions skill'].skill_variables = event.data.context.skills['actions skill'].skill_variables || {};
event.data.context.skills['actions skill'].skill_variables.User_Name = 'Cade';
}
}
이벤트
onLoad핸들러에서 인스턴스on()메서드를 사용하여 이벤트에pre:send구독하고, 함수를preSendHandler()콜백으로 등록하십시오.
instance.on({ type: 'pre:send', handler: preSendHandler });
이제 어시스턴트 작업은 대화 내내 ' User_Name ' 변수에 액세스할 수 있습니다.
완전한 실행 코드는 ‘AI 어시스턴트 웹 채팅 예제를 위한 컨텍스트 변수 설정’을 참조하세요.