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”