작업을 정의할 때 봇 플랫폼이 제공하는 세션 변수 또는 정의한 사용자 정의 변수, 변수의 범위를 정의하는 컨텍스트에 액세스할 수 있습니다. 예를 들어, 일부 API 요청에서는 작업을 실행하기 전에 세션 변수를 설정해야 합니다. 또는 다음 노드로 전환하려면 세션 변수 액세스를 위한 대화 작업 구성 요소가 필요합니다. 또한 대화 작업은 추가적인 시스템 변수를 사용하여 context
개체에 액세스할 수 있습니다. 자세한 내용은 컨텍스트 개체를 참조하세요. 세션 변수를 사용하여 작업에 대해 JavaScript를 정의할 수 있으며 JavaScript 탭에서 사용자 프롬프트 편집기를 사용할 수 있습니다.
세션 변수
이 세션에서는 컨텍스트 변수, 사용자 정의 JavaScript 코드에서 작업에 대해 사용할 수 있는 컨텍스트 변수의 범위를 설명합니다. 각 컨텍스트 유형에 따라 키/값 쌍을 GET 또는 PUT하는 JavaScript 구문은 다음과 같습니다.
"EnterpriseContext" : { "get" : function(key){...},//get the specified key "put" : function(key, value, ttl){...} //put the value at the key for the specified ttl, ttl is in minutes }, "BotContext" : { "get" : function(key){...},//get the specified key "put" : function(key, value, ttl){...} //put the value at the key for the specified ttl, ttl is in minutes }, "UserContext" : { "get" : function(key){...},//get the specified key }, "UserSession" : { "get" : function(key){...},//get the specified key "put" : function(key, value, ttl){...} //put the value at the key for the specified ttl, ttl is in minutes }, "BotUserSession" : { "get" : function(key){...},//get the specified key "put" : function(key, value, ttl){...} //put the value at the key for the specified ttl, ttl is in minutes }
예:
BotContext.put("topicSessionVariable","music",2000); UserSession.put("firstName","Mary",20000); UserContext.get("firstName");
세션 변수 유형
다음 유형의 세션 변수를 봇 플랫폼에서 사용할 수 있습니다.
- EnterpriseContext – 엔터프라이즈 내 모든 봇과 사용자가 사용할 수 있는 키-값 쌍입니다. 예: GitHub 봇을 사용하면 사용자는 하나 이상의 엔터프라이즈 저장소에 액세스해야 합니다. 다음 JavaScript 코드를 사용하여 저장소 데이터를 Gitrepository (엔터프라이즈 컨텍스트)로 유지할 수 있습니다.
var userRepository = { "title": _labels_[repository], "value": repository }; EnterpriseContext.put('Gitrepository', userRepository, 200000);
- BotContext – 특정 봇의 모든 사용자가 사용할 수 있는 키/값 쌍입니다. 예: 사용자의 위치에 따라 세션에서 금융 거래에 대한 기본 통화를 설정할 수 있습니다. 다음 JavaScript 코드를 사용하여 기본 통화 데이터를 currency (봇 컨텍스트)로 유지할 수 있습니다.
var defaultCurrency = { TODO Custom JavaScript for location-based currency } BotContext.put('currency', defaultCurrency, 200000);
- UserContext – 사용자의 모든 봇이 사용할 수 있는 키-값 쌍입니다. 이 키는 읽기 전용이며 시스템에서 다음과 같은 사용자 데이터로 제공됩니다.
-
- UserContext.get("_id") – Kore.ai 사용자 ID입니다.
- UserContext.get("emailId") – 사용자 ID와 연결된 이메일 주소입니다.
- UserContext.get("lastName") – 사용자의 성입니다.
- UserContext.get("firstName") – 사용자의 이름입니다.
- UserContext.get("profImage") – 사용자의 이미지 또는 아바타 파일 이름입니다.
- UserContext.get("profColor") – 사용자의 계정 색상입니다.
- UserContext.get("activationStatus") – 사용자의 계정 상태입니다. 다음과 같을 수 있습니다.
active
– 사용자는 활성 상태이며 다른 Kore.ai 사용자와 상호 작용할 수 있습니다.inactive
– 사용자는 비활성 상태이지만 시스템에 사용자 데이터가 유지됩니다.suspended
– 관리자가 일시 중단한 사용자입니다. 사용자는 Kore.ai에 로그인할 수 없지만 메시지는 일시 중단된 사용자에게 계속 보낼 수 있습니다.locked
– 사용자가 최대 로그인 시도 횟수를 초과했습니다.
- UserContext.get("jTitle") – 정의된 경우 사용자의 직함입니다.
- UserContext.get("orgId") – 정의된 경우 사용자 계정의 조직 ID입니다.
- UserContext.get("customData") – 사용자 정보를 웹 채널에 전달하는 데 사용합니다. 현재는 webSDK 전용입니다.자세한 내용은 여기를 참조하세요.
- UserContext.get("identities") – 정의된 경우 대체 사용자 ID입니다.
val
– 대체 IDtype
– 대체 ID의 유형입니다.
예:
UserSession
변수를 사용하여 값을 세션에 PUT할 수 있습니다. 두 가지UserContext
변수를 통한 GET을 기반으로 키를fullName
으로 정의합니다.var name = UserContext.get("firstName")+UserContext.get("lastName"); UserSession.put("fullName") = name;
-
- UserSession – 엔터프라이즈 내 모든 봇의 특정 사용자에 대해 정의할 수 있는 키/값 쌍입니다. 예: 상거래, 운송 및 가정 배달 서비스를 위한 사용자 집 주소와 같이 사용자 위치를 저장하여 모든 봇이 사용할 수 있도록 해야 합니다. 예: 다음 JavaScript 코드를 사용하여 기본 위치 데이터를 HomeLocation (사용자 세션)으로 유지할 수 있습니다.
var location = { "title": labels[location], "value": { "latitude": location.latitude, "longitude": request.location.longitude } }; UserSession.put('HomeLocation', location, '20000');
- BotUserSession – 특정 사용자가 입력한 값에 따라 특정 봇에 정의할 수 있는 키/값 쌍입니다. 예: 봇에 하나 이상의 작업에 대해 사용자 위치를 유지해야 합니다. 여행 봇의 경우 같은 집 주소와 목적지 주소를 기준으로 항공편과 호텔을 예약할 수 있습니다. 예: 다음 JavaScript 코드를 사용하여 기본 집 및 목적지 데이터를 HomeLocation (봇 사용자 세션) 및 DestinationLocation (봇 사용자 세션)으로 유지할 수 있습니다.
var homelocation = { "title": labels[request.sourceLocation], "value": { "latitude": request.sourceLocation.latitude, "longitude": request.sourceLocation.longitude } }; BotUserSession.put('HomeLocation', homelocation, '20000'); var destlocation = { "title": labels[request.destLocation], "value": { "latitude": request.destLocation.latitude, "longitude": request.destLocation.longitude } }; BotUserSession.put('DestinationLocation', destlocation, '20000’);
표준 키
세션 키 및 컨텍스트 키 외에도 재사용 가능한 데이터를 위한 Kore.ai 변수 플레이스 홀더가 있습니다. 다음 중 하나를 선택합니다.
- _labels_ – GUID 대신 친숙한 레이블을 반환하는 데 사용됩니다. 예: 웹 서비스 API에서 사용자 데이터를 요청할 때 반환되는 프로젝트 또는 워크스페이스의 ID는 GUID입니다.
_labels_
키를 사용하여 GUID 대신 최종 사용자에게 GUID의 친숙한 이름을 알려줄 수 있습니다. Kore.ai에서 드롭다운 컨트롤은_labels_
키의 응답을 다음과 같이 저장합니다. 예:{ "_labels_": { "15379386734832": "roadlabs.com", "26377329985341": "Test Project", "workspace": "roadlabs.com", "project": "Test Project" }, "_fields_": { "workspace": "15379386734832", "project": "26377329985341" } }
응답에
_labels_
키를 사용하는 방법:print('<a href="https://app.asana.com/0/' + workspace.id + '/' + id + '/f" target="_blank">' + title + '</a> in workspace '+_labels_[workspace.id]);
- _tenant_ – 정의된 경우 엔터프라이즈에 대한 테넌트를 반환하는 데 사용됩니다. 예: JIRA는 https://koreteam.atlassian.net/browse/BBF-3265에서 koreteam과 같은 URL에 대한 테넌트가 필요합니다.
_tenant_
키를 사용하여 다음과 같은 작업 응답에서 링크를 작성할 수 있습니다.var title = request.fields.issuetype.name + ' <a href ="https://' + _tenant_ + '/browse/' + response.key + '" target = "_blank">' + request.fields.summary + '</a> has been created.';
- _fields_ – 페이로드 응답의 일부가 아닌, 사용자가 제공한 조치 작업 필드 입력을 반환하는 데 사용됩니다. 예: JIRA 조치 작업에서 최종 사용자에게 워크스페이스 이름을 입력하라는 메시지가 표시됩니다.
_fields_
키를 사용하여 최종 사용자 입력을 다음과 같이 저장할 수 있습니다._fields_["workspace"]
- _last_run – 웹 서비스 풀의 UTC 날짜 타임스탬프를 ISO 8601 형식을 사용하여 반환하는 데 사용됩니다. 예: 2016-03-05T12:44:38+00:00. 예: 웹 서비스 요청이 페이로드 응답에서 모든 활동을 반환하는 경우
_last_run
키를 사용하여 다음_last_run
값의 앞 또는 뒤에 표시되는 결과를 필터링할 수 있습니다.