Context 개체는 대화 실행을 위해 및 모든 의도(예: 대화 작업, 조치, 알림 및 정보 작업, FAQ)에서 데이터를 유지하는 컨테이너 개체입니다. Kore.ai의 자연어 처리(NLP) 엔진은 식별된 의도, 추출된 엔티티, 기록을 이 개체에 채웁니다. Context 개체의 키는 대화 작업 및 의도 전환 조건에 사용됩니다. 또한, context 개체는 추가 시스템 변수와 세션 변수를 사용하여 액세스할 수 있습니다. URL에서 Context 개체 키를 사용할 때 구문은 다음과 같이 이중 대괄호로 묶는 것입니다: https://quora.com/{{context.entities.topic}}/rss Context 개체는 스크립트 노드뿐만 아니라 엔티티 노드의 동적 값으로도 참조할 수 있으며 페이로드 응답을 Kore.ai SDK로 전달할 수 있습니다. Context 개체 키 값을 비즈니스 로직을 기반으로 업데이트하여 대화 작업 실행에 영향을 줄 수 있습니다. 플랫폼은 여기서 참조할 수 있는 세션 변수를 생성하고 유지합니다.
다음 표에서는 Context 개체 키를 설명합니다. 이 키는 생성 및 추가되는 시기에 따라 전역 컨텍스트 및 대화 컨텍스트로 분류할 수 있습니다. 자세한 내용은 여기를 참조하세요.
| 키 | 카테고리 | 설명 | 사용 예시 |
|---|---|---|---|
| 의도 | 대화 | NLP 인터프리터가 인식한 의도입니다. | 구문: context.intent.<< intent name >> |
| entities | 대화 | 사용자 프롬프트와 해당 프롬프트에서 인식된 사용자 입력을 기반으로 하는 키/값 쌍의 배열입니다. |
구문: var today = new Date();
if(today.getHours() < 21)
{
print("You have requested to transfer " +context.entities.Amount +
" USD from " +context.entities.FromAccountName +
" to " +context.entities.ToAccountName + " account. " +
" Your funds will be shown immediately though transfer will be shown in tomorrow's date in your transaction history. Shall I go ahead? ");
}
else
{
print("You have requested to transfer " +context.entities.Amount +
" USD from " +context.entities.FromAccountName +
" to " +context.entities.ToAccountName + " account. Shall I go ahead? " +
context.accdata[0].transactions.length);
}
|
| traits | 대화 | 지정된 컨텍스트에 설정된 특성 | |
| currentLanguage(ver7.1에서 도입됨) | 전역 | 현재 대화 언어 | |
| suggestedLanguages(ver7.1에서 도입됨) | 전역 | 플랫폼이 사용자의 첫 번째 발화에서 감지한 모든 언어의 목록으로 신뢰도순으로 표시됩니다. 이 목록은 각 대화 시작 시 재설정됩니다. | |
| history | 전역 | NLP 인터프리터를 사용하는 각 구성 요소의 nodeId를 포함하는 배열입니다. |
대화 흐름에서 실행된 노드 경로를 순차적으로 기록해 정의하는 개체의 배열입니다.
|
| onHoldTasks | 대화 | 대화가 진행되는 동안 보류된 모든 작업의 배열입니다. 평가 용도로 사용할 수 있는 읽기 전용 목록입니다. (버전 7.1에서 도입됨) | |
| 서비스 노드 이름 | 대화 | 서비스 노드 실행을 위한 개체 모음입니다. |
|
| resultsFound | 대화 | 결과가 반환되는 경우 True입니다 | |
| message_tone | 전역 | 대화 작업의 현재 노드에 대해 인식된 어조 감정 및 점수 배열입니다. |
|
| dialog_tone | 전역 | 전체 대화 작업 세션에 대해 평균적인 인식된 어조 감정 및 점수의 배열입니다. |
|
| << nodename >>.response.body | 대화 | 서비스 노드의 HTTP JSON 요청입니다. | 구문: context.<< node name >>.response.body 다음 코드 예제에서는 서비스 노드의 응답이 메시지 노드의 최종 사용자에게 표시됩니다. print(JSON.stringify(context.fetchopportunitiesnode.response.body)); |
| 개발자가 정의한 키 | 대화 | 개발자가 정의한 키/값 쌍입니다. | 구문: context.<< varName >> 예, context.customerId |
샘플 컨텍스트 개체 컨텍스트 개체를 포함한 페이로드 응답은 다음과 같습니다.
"context":{
"bot":"Kore Banking Documentation",
"botid":"st-b4a22e86-XXXX-575c-b888-e106d083a251",
"taskid":"dg-df510618-XXXX-5a0b-8370-ee042b3e5b47",
"intent":"Agent",
"intentType":"dialog",
"entities":{
"Name":12345,
"number":1234
},
"userInputs":{
"originalInput":{
"sentence":" agent",
"timestamp":1501244143000
}
},
"history":[
{
"originalSentence":"agent",
"timestamp":1501244143000
},
{
"dialogState":"started",
"timestamp":1501244143000
},
{
"nodeId":"intent0",
"state":"processed",
"type":"intent",
"componentName":"Agent",
"timestamp":1501244143000
},
{
"nodeId":"entity1",
"state":"processing",
"type":"entity",
"componentName":"Name",
"timestamp":1501244143000
},
{
"nodeId":"entity1",
"state":"waitingForUserInput",
"type":"entity",
"componentName":"Name",
"timestamp":1501244143000
},
{
"nodeId":"entity1",
"state":"processed",
"type":"entity",
"componentName":"Name",
"timestamp":1501244149000
},
{
"nodeId":"entity4",
"state":"processing",
"type":"entity",
"componentName":"number",
"timestamp":1501244149000
},
{
"nodeId":"entity4",
"state":"waitingForUserInput",
"type":"entity",
"componentName":"number",
"timestamp":1501244149000
},
{
"nodeId":"entity4",
"state":"processed",
"type":"entity",
"componentName":"number",
"timestamp":1501244156000
},
{
"nodeId":"agentTransfer3",
"state":"processing",
"type":"agentTransfer",
"componentName":"agenttransfer",
"timestamp":1501244156000
},
{
"dialogState":"transferredToAgent",
"timestamp":1501244156000
}
],
"dialog_tone":[
{
"tone_name":"positive",
"level":1
}
],
"message_tone":[
{
"tone_name":"positive",
"level":1
}
],
"currentTags": {
"tags": [
"name"
]
},
"historicTags": [
{
"tags": [
"name"
]
}
],
"session":{
"EnterpriseContext":{
"5":"500",
"TestData-Ent":"1000234",
"ec1":"Enterprise Context session variable from processor",
"Enterprise_G_Smith_Email":"george.smith@kore.com",
"enterprisesessiondialog":"enterprisesessiondialogvalue",
"enterprisecustomprocessor":"enterprisecustomprocessorvalue",
"enterprisepreprocessor":"enterprisepreprocessorvalue",
"EnterpriseContext":"EnterpriseContextvalueresponse",
"Entersession123":"Entersession123value",
"EnterpriseContext Summary":"TestingSpread",
"enterprisecontext":"enterprisecontextvalue",
"ec2":"Enterprise Context session variable from channel response",
"EC":"ec session variable from intializer",
"enterprisepreprocessorkey":"enterprisepreprocessorvalue"
},
"BotContext":{
},
"UserContext":{
"profColour":"#3651fc",
"workinghours":{
"workdays":"Mon, Tue, Wed, Thu, Fri, Sat, Sun",
"workstart":"12:00 AM",
"workend":"12:00 PM"
},
"dept":"Product Development",
"jTitle":"Documentation Manager",
"profImage":"profile.png",
"activationStatus":"active",
"emailId":"help.docs@kore.com",
"firstName":"Help",
"lastName":"Docs",
"orgId":"o-b30656ae-XXXX-XXXX-9181-065f7de34be9",
"_id":"u-4b9f02a3-XXXX-XXXX-b5cc-6df81c0af603",
"customData":null,
"identities":[
{
"val":"help.docs@kore.com",
"type":"email"
},
{
"val":"kore/u-4b9f02a3-XXXX-XXXX-b5cc-6df81c0af603",
"type":"mapped"
}
]
},
"UserSession":{
},
"BotUserSession":{
"isReturningUser": true,
"lastMessage":{
"channel":"rtm",
"messagePayload":{
"clientMessageId":1501244152843,
"message":{
"body":"1234"
},
"resourceid":"/bot.message",
"botInfo":{
"chatBot":"Kore Banking Documentation",
"taskBotId":"st-b4a22e86-XXXX-XXXX-b888-e106d083a251"
},
"client":"botbuilder",
"meta":{
"timezone":"America/New_York",
"locale":"en-US"
},
"id":1501244152843
}
},
"lastUserMessageTime": "2021-07-12T07:07:17.278Z"
},
"opts":{
"userId":"u-4b9f02a3-XXXX-XXXX-b5cc-6df81c0af603",
"streamId":"st-b4a22e86-XXXX-XXXX-b888-e106d083a251"
}
}
},
"channel":{
"_id":"dc-5b4a742a-XXXX-XXXX-938f-520912935456",
"channelInfos":{
"requestId":"ms-26aae382-XXXX-XXXX-8bf1-a9e076770956",
"message":"The bot is not accessible via Web / Mobile Client.",
"body":"1234",
"client":"botbuilder",
"handle":{
"spanId":"8cab2ce2f6aabc47",
"traceId":"8cab2ce2f6aabc47",
"taskBotId":"st-b4a22e86-XXXX-XXXX-b888-e106d083a251",
"clientId":"5a37bf24-XXXX-XXXX-a816-f9602db08149",
"userId":"u-4b9f02a3-XXXX-XXXX-b5cc-6df81c0af603",
"handleId":"54e95c2b-XXXX-XXXX-ba6b-384d4166f1b2"
},
"botInfo":{
"taskBotId":"st-b4a22e86-XXXX-XXXX-b888-e106d083a251",
"chatBot":"Kore Banking Documentation"
},
"from":"u-4b9f02a3-3f6f-XXXX-XXXX-6df81c0af603",
"type":"rtm"
},
"__v":0
},
"baseUrl":"https://bots.kore.ai/api/botsdk/stream/st-b4a22e86-XXXX-XXXX-b888-e106d083a251",
"sendUserMessageUrl":"https://bots.kore.ai/api/botsdk/stream/st-b4a22e86-e95b-XXXX-XXXX-e106d083a251/sendUserMessage/1501244156289",
"sendBotMessageUrl":"https://bots.kore.ai/api/botsdk/stream/st-b4a22e86-e95b-XXXX-XXXX-e106d083a251/sendBotMessage/1501244156289"
}
“lastUserMessageTime”: “2021-07-12T07:07:17.278Z”