GETTING STARTED
Kore.ai XO Platform
Virtual Assistants Overview
Natural Language Processing (NLP)
Concepts and Terminology
Quick Start Guide
Accessing the Platform
Navigating the Kore.ai XO Platform
Building a Virtual Assistant
Help & Learning Resources
Release Notes
Current Version
Recent Updates
Previous Versions
CONCEPTS
Design
Storyboard
Overview
FAQs
Conversation Designer
Overview
Dialog Tasks
Mock Scenes
Dialog Tasks
Overview
Navigate Dialog Tasks
Build Dialog Tasks
Node Types
Overview
Intent Node
Dialog Node
Dynamic Intent Node
GenAI Node
GenAI Prompt
Entity Node
Form Node
Confirmation Node
Message Nodes
Logic Node
Bot Action Node
Service Node
Webhook Node
Script Node
Process Node
Agent Transfer
Node Connections
Node Connections Setup
Sub-Intent Scoping
Entity Types
Entity Rules
User Prompts or Messages
Voice Call Properties
Knowledge AI
Introduction
Knowledge Graph
Introduction
Terminology
Build a Knowledge Graph
Manage FAQs
Knowledge Extraction
Import or Export Knowledge Graph
Prepare Data for Import
Importing Knowledge Graph
Exporting Knowledge Graph
Auto-Generate Knowledge Graph
Knowledge Graph Analysis
Answer from Documents
Alert Tasks
Small Talk
Digital Skills
Overview
Digital Forms
Digital Views
Introduction
Widgets
Panels
Session and Context Variables
Context Object
Intent Discovery
Train
NLP Optimization
ML Engine
Overview
Model Validation
FM Engine
KG Engine
Traits Engine
Ranking and Resolver
Training Validations
NLP Configurations
NLP Guidelines
LLM and Generative AI
Introduction
LLM Integration
Kore.ai XO GPT Module
Prompts & Requests Library
Co-Pilot Features
Dynamic Conversations Features
Intelligence
Introduction
Event Handlers
Contextual Memory
Contextual Intents
Interruption Management
Multi-intent Detection
Amending Entities
Default Conversations
Conversation Driven Dialog Builder
Sentinment Management
Tone Analysis
Default Standard Responses
Ignore Words & Field Memory
Test & Debug
Overview
Talk to Bot
Utterance Testing
Batch Testing
Conversation Testing
Conversation Testing Overview
Create a Test Suite
Test Editor
Test Case Assertion
Test Case Execution Summary
Glossary
Health and Monitoring
NLP Health
Flow Health
Integrations
Actions
Actions Overview
Asana
Configure
Templates
Azure OpenAI
Configure
Templates
BambooHR
Configure
Templates
Bitly
Configure
Templates
Confluence
Configure
Templates
DHL
Configure
Templates
Freshdesk
Configure
Templates
Freshservice
Configure
Templates
Google Maps
Configure
Templates
Here
Configure
Templates
HubSpot
Configure
Templates
JIRA
Configure
Templates
Microsoft Graph
Configure
Templates
Open AI
Configure
Templates
Salesforce
Configure
Templates
ServiceNow
Configure
Templates
Stripe
Configure
Templates
Shopify
Configure
Templates
Twilio
Configure
Templates
Zendesk
Configure
Templates
Agents
Agent Transfer Overview
Custom (BotKit)
Drift
Genesys
Intercom
NiceInContact
NiceInContact(User Hub)
Salesforce
ServiceNow
Configure Tokyo and Lower versions
Configure Utah and Higher versions
Unblu
External NLU Adapters
Overview
Dialogflow Engine
Test and Debug
Deploy
Channels
Publishing
Versioning
Analyze
Introduction
Dashboard Filters
Overview Dashboard
Conversations Dashboard
Users Dashboard
Performance Dashboard
Custom Dashboards
Introduction
Custom Meta Tags
Create Custom Dashboard
Create Custom Dashboard Filters
LLM and Generative AI Logs
NLP Insights
Task Execution Logs
Conversations History
Conversation Flows
Conversation Insights
Feedback Analytics
Usage Metrics
Containment Metrics
Universal Bots
Introduction
Universal Bot Definition
Universal Bot Creation
Training a Universal Bot
Universal Bot Customizations
Enabling Languages
Store
Manage Assistant
Team Collaboration
Plan & Usage
Overview
Usage Plans
Templates
Support Plans
Invoices
Authorization
Conversation Sessions
Multilingual Virtual Assistants
Get Started
Supported Components & Features
Manage Languages
Manage Translation Services
Multiingual Virtual Assistant Behavior
Feedback Survey
Masking PII Details
Variables
Collections
IVR Settings
General Settings
Assistant Management
Manage Namespace
Data
Overview
Data Table
Table Views
App Definitions
Data as Service
HOW TOs
Build a Travel Planning Assistant
Travel Assistant Overview
Create a Travel Virtual Assistant
Design Conversation Skills
Create an ‘Update Booking’ Task
Create a Change Flight Task
Build a Knowledge Graph
Schedule a Smart Alert
Design Digital Skills
Configure Digital Forms
Configure Digital Views
Train the Assistant
Use Traits
Use Patterns
Manage Context Switching
Deploy the Assistant
Use Bot Functions
Use Content Variables
Use Global Variables
Use Web SDK
Build a Banking Assistant
Design Conversation Skills
Create a Sample Banking Assistant
Create a Transfer Funds Task
Create a Update Balance Task
Create a Knowledge Graph
Set Up a Smart Alert
Design Digital Skills
Configure Digital Forms
Configure Digital Views
Add Data to Data Tables
Update Data in Data Tables
Add Data from Digital Forms
Train the Assistant
Composite Entities
Use Traits
Use Patterns for Intents & Entities
Manage Context Switching
Deploy the Assistant
Configure an Agent Transfer
Use Assistant Functions
Use Content Variables
Use Global Variables
Intent Scoping using Group Node
Analyze the Assistant
Create a Custom Dashboard
Use Custom Meta Tags in Filters
Migrate External Bots
Google Dialogflow Bot
APIs & SDKs
API Reference
API Introduction
Rate Limits
API List
koreUtil Libraries
SDK Reference
SDK Introduction
Web SDK
How the Web SDK Works
SDK Security
SDK Registration
Web Socket Connect and RTM
Tutorials
Widget SDK Tutorial
Web SDK Tutorial
BotKit SDK
BotKit SDK Deployment Guide
Installing the BotKit SDK
Using the BotKit SDK
SDK Events
SDK Functions
Tutorials
BotKit - Blue Prism
BotKit - Flight Search Sample VA
BotKit - Agent Transfer
  1. Docs
  2. Virtual Assistants
  3. How Tos
  4. 컨텍스트 전환 관리 방법

컨텍스트 전환 관리 방법

본 방법에서는 사용자 경험과 봇 효율성을 개선하는 데 도움이 되는 FAQ를 통해 여러 의도에 걸쳐 컨텍스트를 공유하는 뱅킹 봇 시나리오를 살펴보겠습니다. 또한 대화 흐름 내에서 컨텍스트를 사용하여 이벤트 순서를 결정하는 방법에 대해서도 살펴봅니다. 컨텍스트 관리의 정의와 Kore.ai 봇 플랫폼에서 컨텍스트 관리가 어떻게 구현되는지에 대한 자세한 내용은 여기를 참조하세요.

문제 설명

뱅킹 봇이 다음과 같은 시나리오를 해결하려고 한다고 생각해 보세요.

  • 여러 의도에 걸쳐 콘텐츠 공유 – 사용자가 자신의 계좌 번호를 입력한 후에는 대화 중에 동일한 메시지가 다시 표시되지 않습니다.
    User: I want to transfer $200 from my account
    Bot: Sure, may I have your account number?
    // (initiating Transfer Amount task)
    User: It’s 2343544
    Bot: What is the payee account number
    User: Wait, do I have sufficient funds
    // (transferring to Get Balance task)
    Bot: What is your account number

    이상적으로, 잔액 가져오기는 계좌 번호를 요청하지 않아야 합니다.
  • 컨텍스트 기반 대화 흐름 – 상황에 따라 봇에서 다른 작업을 하위 대화로 명시적으로 호출함에 따라 주어진 작업의 흐름이 변경될 수 있습니다. 위의 예제 확장:
    User: I want to transfer $200 from my account
    Bot: Sure, may I have your account number?
    // (initiating Transfer Amount task)
    User: It’s 2343544
    Bot: What is the payee account number
    User: 4355403
    Bot: What is your account number?
    // (transferring to Get Balance task to check for sufficient funds)
    User: It’s 2343544
    Bot: Current balance is $1200
    Bot: Amount $200 has been debited from your account.
    //(resuming Transfer Amount task)

    이상적으로, 잔액 가져오기는 계좌 번호를 묻지 않고 잔액 메시지를 표시하지 않아야 합니다. 이 작업은 사용자 지식 없이 두 작업 사이의 백그라운드에서 일어나야 합니다.
  • 후속 조치 의도 – 보안상의 이유 또는 비즈니스 요건으로 인해 특정 작업에 대한 액세스가 제한될 수 있습니다. 예를 들어, 계좌 잔액 업데이트를 이체 금액 흐름으로 제한해야 합니다. 계좌 업데이트 작업은 사용자 또는 봇의 다른 작업에 직접 사용할 수 없습니다.
  • 의도와 FQA 간 컨텍스트 공유 – 작업 중에 사용자는 컨텍스트 내에서 일반적인 질문을 할 수 있습니다. 예를 들어, 금액을 이체하는 동안 사용자가 이율에 대해 질문할 수 있으며 봇은 자금 이체율과 관련된 FAQ에 응답해야 합니다.
  • FAQ에서 콘텐츠 공유 – 특정 질문은 이전 쿼리의 후속 질문일 수 있습니다. 예를 들어 “신용 카드에 대한 이자율은 무엇입니까?“와 같은 질문은 “요금은 얼마입니까?“에 이어지는 신용 카드에 대한 요금 참조 사항입니다.

본 문서에서는 컨텍스트 태그 및 변수, 사전 조건 입력 및 컨텍스트 출력, 플랫폼의 엔티티 값 기능을 사용하여 위에서 언급한 모든 시나리오를 달성하기 위한 자세한 단계별 접근 방법을 제공합니다.

전제 조건

  • 봇 구축 지식
  • 아래 언급된 것과 같은 대화 상자가 있는 뱅킹 봇:
    • 잔액 가져오기 – 대화 작업이 사용자에게 계좌 번호를 묻고 계정에서 사용할 수 있는 잔액을 표시합니다.
    • 자금 이체– 대화 작업은 사용자에게 지급인 및 수취인 계좌 번호와 이체할 금액을 묻고, 지급인 계좌에서 수취인 계좌로 지정된 금액을 이체합니다.
    • 계좌 업데이트 – 대화 작업이 사용자에게 업데이트해야 하는 계좌 번호, 업데이트할 금액, 금액이 신용 거래인지 신용 거래가 아닌지 여부를 묻고 이에 따라 계좌 잔액을 업데이트합니다.
    • 지식 모음 – 은행과 관련된 자주 묻는 질문입니다.

구현

다음 시나리오를 각각 하나씩 살펴보겠습니다.

여러 의도에 걸쳐 콘텐츠 공유

다음과 같이 언급된 두 가지 경우에 콘텐츠 공유를 다르게 처리해야 합니다:

  • 봇 기반 전환 – 이는 봇 개발 시 해당 의도를 호출하고 엔티티 사전 할당을 통해 데이터를 전달하여 처리할 수 있습니다
  • 사용자 기반 전환 – 이는 현재 작업 흐름 중에 사용자가 이러한 요청을 언제 수행할지 알 방법이 없으며 태그, 엔티티 산출 및 추출의 조합이 필요하기 때문에 다소 복잡합니다.

작업 기반 컨텍스트 전환

다음은 이체 금액 대화에서 잔액 가져오기 작업을 호출하여 지급인 계좌에 이체할 자금이 충분한지 확인하는 시나리오입니다.

 

이를 위해 봇 범위 컨텍스트 변수와 엔티티 사전 할당을 사용하겠습니다. 단계: 이체 금액에서 잔액 가져오기를 호출하고 자금을 확인한 후 그에 따라 진행해야 합니다

  1. 이체 금액 대화를 엽니다
  2. 다음과 같이 대화 노드, 스크립트 노드메시지 노드를 추가합니다:
    1. 대화 노드는 엔티티 사전 할당을 사용하여 잔액 가져오기를 호출하여 다음을 입력합니다:
      • 계좌 번호 – 잔액 가져오기 대화에서 필수 엔티티가 지급인 계좌 번호로 설정되어 있습니다
      • 키/값 추가context.type을 이체 금액 의도를 식별하는 전환을 페어링합니다. 다음 단계에 표시된 대로 잔액 가져오기 대화에서 확인하여 플로우를 수정합니다.
      • 전환 옵션이 초기 Get_Balance로 설정되어 있는지 확인합니다. 완료되면 이 노드로 돌아갑니다
    2. 스크립트 노드CheckBalance를 사용하여 지급인 계좌의 잔액을 이체할 금액으로 확인하고 이에 따라 진행합니다. 지급인 계좌의 잔액은 잔액 가져오기 대화로 입력될 BottContext 변수에서 가져옵니다.
      • JavaScript:
        var nextStep = “”;
        if (context.session.BotUserSession.Balance >= context.entities.Amount)
           nextStep = “update”;
        context.nextStep = nextStep;

      • 연결 설정 자금이 충분한 경우 UpdateBalance로 진행합니다(위 스크립트에서 context.nextStep업데이트한 경우). 그렇지 않으면 메시지 노드로 이동합니다.
    3. 메시지 노드 : 자금 부족 메시지 표시

다음으로, 잔액 가져오기 대화를 수정하여 이체 태그를 확인하고 필요하다면 봇 컨텍스트 변수를 채웁니다.

  1. 잔액 가져오기 대화를 엽니다
  2. BalanceMessage(최종 메시지 노드) 노드를 엽니다
  3. 봇 응답 섹션에서 응답 관리 대화를 엽니다
  4. 다음 JavaScript를 추가합니다.. 이 스크립트는 이체 금액 작업에서 요청을 받은 경우 봇 컨텍스트 변수를 계좌 잔액으로 채웁니다. 그렇지 않으면 일반 잔액 메시지가 표시됩니다.
    if (context.type == "transfer")
      BotUserSession.put('Balance', context.GetAccountBalance.response.body.Balance);
    else
      print ('The Balance in your account is ' + context.GetAccountBalance.response.body.Balance);
    

봇을 실행하고 조지 내 변경 사항을 확인합니다.

사용자가 트리거 한 컨텍스트 전환

다음은 이 활용 사례의 예입니다. 사용자는 이전 금액 확인 계좌 잔액을 사용하는 동안 언제든지 이체 작업을 진행할 수 있습니다.

이를 어떻게 달성할 수 있는지 살펴보겠습니다. 시스템에서 생성한 태그와 커스텀 태그 같은 기록 태그를 사용하겠습니다. 기록 태그는 한 의도에서 다른 의도로 자동으로 전송됩니다. 단계: 먼저 이체 금액을 수정하여 적절한 태그를 입력하고 보류 및 재개 설정을 구성합니다:

  1. 이체 금액 대화를 엽니다
  2. PayerAccount 엔티티의 속성 패널을 엽니다
  3. NLP 탭에서 캡처된 엔티티 값 자동 발행을 설정합니다. 그러면 지급인 계좌 번호가 컨텍스트에 저장됩니다. 이 값은 이 의도를 통해 발행되는 첫 번째 값이므로 태그 배열에서 의도 이름 옆에 배치됩니다
  4. 그런 다음 기타(세로 타원) 옵션에서 관리 중단 대화를 엽니다.
  5. 이 작업에 대한 설정을 보류 및 재개 허용으로 커스터마이징하고 보류 옵션현재 작업을 보류하고 새 작업이 완료되면 재개하도록 설정하고 사용자에게 특정 메시지를 표시하지 않고 보류 중인 작업을 다시 시작하도록 재개 옵션을 설정합니다.

다음으로, 잔액 가져오기 대화를 수정하여 이체 금액에서 전송된 데이터를 캡처합니다

  1. 잔액 가져오기 대화를 엽니다
  2. 스크립트 노드 추가 – CheckAcId를 의도 노드 후의 컨텍스트에서 계좌 번호를 사용할 수 있는지 확인합니다.
  3. 다음 스크립트를 추가합니다.. 이 스크립트는 의도 “이체 금액”을 확인합니다. 계좌 번호를 캡처하고 AccountNumber 엔티티를 해당 값으로 입력합니다.
    var i = koreUtil._.indexOf(context.historicTags[0].tags, 'Transfer Amount');
    context.entities.AccountNumber = context.historicTags[0].tags[i+1]
    

봇을 실행하고 변경 사항이 적용되었는지 확인합니다.

후속 작업 의도

계좌 업데이트 의도는 이체 금액을 통해서만 호출되어야 합니다. 다음 두 가지 작업을 수행할 수 있습니다.

  1. 사용자 액세스 제한:
    1. 계좌 업데이트 대화를 엽니다
    2. 기타(세로 타원) 옵션에서 대화 설정에 액세스합니다
    3. 옵션하위 의도 전용 대화로 설정합니다
    4. 이렇게 하면 이 대화에 대한 사용자 액세스가 제한되며, 이 대화는 직접 또는 도움말 옵션에서 사용할 수 없습니다.
  2. 작업 액세스 제한:
    1. 잔액 업데이트 대화를 엽니다
    2. UpdateBalance 의도의, NLP 속성 탭을 엽니다
    3. 컨텍스트 관리 섹션에서 의도 전제 조건에 “이체“를 추가합니다 이렇게 하면 이체가 컨텍스트에 있는 경우에만 이 대화가 실행됩니다.
    4. 이체 금액 대화를 엽니다
    5. 이체 금액 의도 노드의, NLP 속성 탭을 엽니다
    6. 컨텍스트 관리 섹션에서 잔액 업데이트 대화에 필요한 대로 컨텍스트 출력에 “이체“를 가합니다
    7. 이제 다른 대화에서 잔액 업데이트를 트리거 할 수 없습니다.

후속 작업 의도

계좌 업데이트 의도는 이체 금액을 통해서만 호출되어야 합니다. 다음 두 가지 작업을 수행할 수 있습니다.

  1. 사용자 액세스 제한:
    1. 계좌 업데이트 대화를 엽니다
    2. 기타(세로 타원) 옵션에서 대화 설정에 액세스합니다
    3. 옵션하위 의도 전용 대화로 설정합니다
    4. 이렇게 하면 이 대화에 대한 사용자 액세스가 제한되며, 이 대화는 직접 또는 도움말 옵션에서 사용할 수 없습니다.
  2. 작업 액세스 제한:
    1. 잔액 업데이트 대화를 엽니다
    2. UpdateBalance 의도의, NLP 속성 탭을 엽니다
    3. 컨텍스트 관리 섹션에서 의도 전제 조건에 “이체“를 추가합니다 이렇게 하면 이체가 컨텍스트에 있는 경우에만 이 대화가 실행됩니다.
    4. 이체 금액 대화를 엽니다
    5. 이체 금액 의도 노드의, NLP 속성 탭을 엽니다
    6. 컨텍스트 관리 섹션에서 잔액 업데이트 대화에 필요한 대로 컨텍스트 출력에 “이체“를 가합니다
    7. 이제 다른 대화에서 잔액 업데이트를 트리거 할 수 없습니다.

여러 FAQ에 걸쳐 컨텍스트 공유

이 시나리오에서는 다음 지식 모음이 사용됩니다: 주요 질문: 신용 카드의 이자율은 어떻게 되나요? 주요 질문: 신용 카드 요금 청구액은 얼마인가요? 대체: 청구액은 얼마인가요?
활용 사례는 다음과 같습니다:

두 번째 질문에서 청구액이라는 단어는 신용 카드의 컨텍스트에 있습니다. 이 기능을 사용하려면 플래그를 설정하기만 하면 됩니다. 플랫폼이 처리합니다. 답변한 각각의 질문에 대해 컨텍스트 태그가 자동으로 설정됩니다. 이를 적절히 사용하도록 플랫폼에 지시하기만 하면 됩니다.

  1. 학습 -> 임곗값 및 설정으로 이동
  2. 지식 모음 탭 확장
  3. 아래로 스크롤 하여 문맥 경로 검증 태그를 설정합니다. 이 설정을 사용하면 사용할 수 있는 컨텍스트 태그가 특정 FAQ 경로의 일부일 경우 KG 엔진이 질문에 대해 검증합니다.
  4. 봇을 실행하여 결과를 확인합니다.

의도와 FAQ 간의 컨텍스트 공유

이 시나리오에서는 다음 지식 모음이 사용됩니다: 주요 질문: 이체율은 얼마인가요? 대체: 이체율은 어떻게 되나요? 이 활용 사례는 사용자가 이체 금액 중에 이율에 관해 물어볼 수 있다는 것입니다. 이렇게 하면 적절한 FAQ가 트리거 되어 쿼리에 응답할 수 있습니다.

FAQ의 중단 동작에 대한 기본 설정은 대화 작업이 진행 중인 동안 FAQ를 볼 수 있도록 하지만 설명된 활용 사례는 해결되지 않습니다. “이체율은 얼마인가요“라는 직접적인 질문에 답하지만 “이체율은 어떻게 되나요“라는 질문에 대해서는 답변을 제공하지 않습니다. FAQ가 컨텍스트를 선택하지 않는 이유. FAQ가 컨텍스트를 선택했는지 확인하려면:

  1. 이체 금액 작업이 이미 이체 태그를 표시하고 있으며, 이 경우에도 동일한 태그가 사용됩니다
  2. 학습 -> 임곗값 및 설정으로 이동
  3. 지식 모음 탭 확장
  4. 아래로 스크롤 하여 컨텍스트 경로 검증 태그를 설정합니다(이전 활용 사례에 따라 아직 설정되지 않은 경우)
  5. 봇을 실행하고 변경 사항이 적용되었는지 확인합니다

컨텍스트 전환 관리 방법

본 방법에서는 사용자 경험과 봇 효율성을 개선하는 데 도움이 되는 FAQ를 통해 여러 의도에 걸쳐 컨텍스트를 공유하는 뱅킹 봇 시나리오를 살펴보겠습니다. 또한 대화 흐름 내에서 컨텍스트를 사용하여 이벤트 순서를 결정하는 방법에 대해서도 살펴봅니다. 컨텍스트 관리의 정의와 Kore.ai 봇 플랫폼에서 컨텍스트 관리가 어떻게 구현되는지에 대한 자세한 내용은 여기를 참조하세요.

문제 설명

뱅킹 봇이 다음과 같은 시나리오를 해결하려고 한다고 생각해 보세요.

  • 여러 의도에 걸쳐 콘텐츠 공유 – 사용자가 자신의 계좌 번호를 입력한 후에는 대화 중에 동일한 메시지가 다시 표시되지 않습니다.
    User: I want to transfer $200 from my account
    Bot: Sure, may I have your account number?
    // (initiating Transfer Amount task)
    User: It’s 2343544
    Bot: What is the payee account number
    User: Wait, do I have sufficient funds
    // (transferring to Get Balance task)
    Bot: What is your account number

    이상적으로, 잔액 가져오기는 계좌 번호를 요청하지 않아야 합니다.
  • 컨텍스트 기반 대화 흐름 – 상황에 따라 봇에서 다른 작업을 하위 대화로 명시적으로 호출함에 따라 주어진 작업의 흐름이 변경될 수 있습니다. 위의 예제 확장:
    User: I want to transfer $200 from my account
    Bot: Sure, may I have your account number?
    // (initiating Transfer Amount task)
    User: It’s 2343544
    Bot: What is the payee account number
    User: 4355403
    Bot: What is your account number?
    // (transferring to Get Balance task to check for sufficient funds)
    User: It’s 2343544
    Bot: Current balance is $1200
    Bot: Amount $200 has been debited from your account.
    //(resuming Transfer Amount task)

    이상적으로, 잔액 가져오기는 계좌 번호를 묻지 않고 잔액 메시지를 표시하지 않아야 합니다. 이 작업은 사용자 지식 없이 두 작업 사이의 백그라운드에서 일어나야 합니다.
  • 후속 조치 의도 – 보안상의 이유 또는 비즈니스 요건으로 인해 특정 작업에 대한 액세스가 제한될 수 있습니다. 예를 들어, 계좌 잔액 업데이트를 이체 금액 흐름으로 제한해야 합니다. 계좌 업데이트 작업은 사용자 또는 봇의 다른 작업에 직접 사용할 수 없습니다.
  • 의도와 FQA 간 컨텍스트 공유 – 작업 중에 사용자는 컨텍스트 내에서 일반적인 질문을 할 수 있습니다. 예를 들어, 금액을 이체하는 동안 사용자가 이율에 대해 질문할 수 있으며 봇은 자금 이체율과 관련된 FAQ에 응답해야 합니다.
  • FAQ에서 콘텐츠 공유 – 특정 질문은 이전 쿼리의 후속 질문일 수 있습니다. 예를 들어 “신용 카드에 대한 이자율은 무엇입니까?“와 같은 질문은 “요금은 얼마입니까?“에 이어지는 신용 카드에 대한 요금 참조 사항입니다.

본 문서에서는 컨텍스트 태그 및 변수, 사전 조건 입력 및 컨텍스트 출력, 플랫폼의 엔티티 값 기능을 사용하여 위에서 언급한 모든 시나리오를 달성하기 위한 자세한 단계별 접근 방법을 제공합니다.

전제 조건

  • 봇 구축 지식
  • 아래 언급된 것과 같은 대화 상자가 있는 뱅킹 봇:
    • 잔액 가져오기 – 대화 작업이 사용자에게 계좌 번호를 묻고 계정에서 사용할 수 있는 잔액을 표시합니다.
    • 자금 이체– 대화 작업은 사용자에게 지급인 및 수취인 계좌 번호와 이체할 금액을 묻고, 지급인 계좌에서 수취인 계좌로 지정된 금액을 이체합니다.
    • 계좌 업데이트 – 대화 작업이 사용자에게 업데이트해야 하는 계좌 번호, 업데이트할 금액, 금액이 신용 거래인지 신용 거래가 아닌지 여부를 묻고 이에 따라 계좌 잔액을 업데이트합니다.
    • 지식 모음 – 은행과 관련된 자주 묻는 질문입니다.

구현

다음 시나리오를 각각 하나씩 살펴보겠습니다.

여러 의도에 걸쳐 콘텐츠 공유

다음과 같이 언급된 두 가지 경우에 콘텐츠 공유를 다르게 처리해야 합니다:

  • 봇 기반 전환 – 이는 봇 개발 시 해당 의도를 호출하고 엔티티 사전 할당을 통해 데이터를 전달하여 처리할 수 있습니다
  • 사용자 기반 전환 – 이는 현재 작업 흐름 중에 사용자가 이러한 요청을 언제 수행할지 알 방법이 없으며 태그, 엔티티 산출 및 추출의 조합이 필요하기 때문에 다소 복잡합니다.

작업 기반 컨텍스트 전환

다음은 이체 금액 대화에서 잔액 가져오기 작업을 호출하여 지급인 계좌에 이체할 자금이 충분한지 확인하는 시나리오입니다.

 

이를 위해 봇 범위 컨텍스트 변수와 엔티티 사전 할당을 사용하겠습니다. 단계: 이체 금액에서 잔액 가져오기를 호출하고 자금을 확인한 후 그에 따라 진행해야 합니다

  1. 이체 금액 대화를 엽니다
  2. 다음과 같이 대화 노드, 스크립트 노드메시지 노드를 추가합니다:
    1. 대화 노드는 엔티티 사전 할당을 사용하여 잔액 가져오기를 호출하여 다음을 입력합니다:
      • 계좌 번호 – 잔액 가져오기 대화에서 필수 엔티티가 지급인 계좌 번호로 설정되어 있습니다
      • 키/값 추가context.type을 이체 금액 의도를 식별하는 전환을 페어링합니다. 다음 단계에 표시된 대로 잔액 가져오기 대화에서 확인하여 플로우를 수정합니다.
      • 전환 옵션이 초기 Get_Balance로 설정되어 있는지 확인합니다. 완료되면 이 노드로 돌아갑니다
    2. 스크립트 노드CheckBalance를 사용하여 지급인 계좌의 잔액을 이체할 금액으로 확인하고 이에 따라 진행합니다. 지급인 계좌의 잔액은 잔액 가져오기 대화로 입력될 BottContext 변수에서 가져옵니다.
      • JavaScript:
        var nextStep = “”;
        if (context.session.BotUserSession.Balance >= context.entities.Amount)
           nextStep = “update”;
        context.nextStep = nextStep;

      • 연결 설정 자금이 충분한 경우 UpdateBalance로 진행합니다(위 스크립트에서 context.nextStep업데이트한 경우). 그렇지 않으면 메시지 노드로 이동합니다.
    3. 메시지 노드 : 자금 부족 메시지 표시

다음으로, 잔액 가져오기 대화를 수정하여 이체 태그를 확인하고 필요하다면 봇 컨텍스트 변수를 채웁니다.

  1. 잔액 가져오기 대화를 엽니다
  2. BalanceMessage(최종 메시지 노드) 노드를 엽니다
  3. 봇 응답 섹션에서 응답 관리 대화를 엽니다
  4. 다음 JavaScript를 추가합니다.. 이 스크립트는 이체 금액 작업에서 요청을 받은 경우 봇 컨텍스트 변수를 계좌 잔액으로 채웁니다. 그렇지 않으면 일반 잔액 메시지가 표시됩니다.
    if (context.type == "transfer")
      BotUserSession.put('Balance', context.GetAccountBalance.response.body.Balance);
    else
      print ('The Balance in your account is ' + context.GetAccountBalance.response.body.Balance);
    

봇을 실행하고 조지 내 변경 사항을 확인합니다.

사용자가 트리거 한 컨텍스트 전환

다음은 이 활용 사례의 예입니다. 사용자는 이전 금액 확인 계좌 잔액을 사용하는 동안 언제든지 이체 작업을 진행할 수 있습니다.

이를 어떻게 달성할 수 있는지 살펴보겠습니다. 시스템에서 생성한 태그와 커스텀 태그 같은 기록 태그를 사용하겠습니다. 기록 태그는 한 의도에서 다른 의도로 자동으로 전송됩니다. 단계: 먼저 이체 금액을 수정하여 적절한 태그를 입력하고 보류 및 재개 설정을 구성합니다:

  1. 이체 금액 대화를 엽니다
  2. PayerAccount 엔티티의 속성 패널을 엽니다
  3. NLP 탭에서 캡처된 엔티티 값 자동 발행을 설정합니다. 그러면 지급인 계좌 번호가 컨텍스트에 저장됩니다. 이 값은 이 의도를 통해 발행되는 첫 번째 값이므로 태그 배열에서 의도 이름 옆에 배치됩니다
  4. 그런 다음 기타(세로 타원) 옵션에서 관리 중단 대화를 엽니다.
  5. 이 작업에 대한 설정을 보류 및 재개 허용으로 커스터마이징하고 보류 옵션현재 작업을 보류하고 새 작업이 완료되면 재개하도록 설정하고 사용자에게 특정 메시지를 표시하지 않고 보류 중인 작업을 다시 시작하도록 재개 옵션을 설정합니다.

다음으로, 잔액 가져오기 대화를 수정하여 이체 금액에서 전송된 데이터를 캡처합니다

  1. 잔액 가져오기 대화를 엽니다
  2. 스크립트 노드 추가 – CheckAcId를 의도 노드 후의 컨텍스트에서 계좌 번호를 사용할 수 있는지 확인합니다.
  3. 다음 스크립트를 추가합니다.. 이 스크립트는 의도 “이체 금액”을 확인합니다. 계좌 번호를 캡처하고 AccountNumber 엔티티를 해당 값으로 입력합니다.
    var i = koreUtil._.indexOf(context.historicTags[0].tags, 'Transfer Amount');
    context.entities.AccountNumber = context.historicTags[0].tags[i+1]
    

봇을 실행하고 변경 사항이 적용되었는지 확인합니다.

후속 작업 의도

계좌 업데이트 의도는 이체 금액을 통해서만 호출되어야 합니다. 다음 두 가지 작업을 수행할 수 있습니다.

  1. 사용자 액세스 제한:
    1. 계좌 업데이트 대화를 엽니다
    2. 기타(세로 타원) 옵션에서 대화 설정에 액세스합니다
    3. 옵션하위 의도 전용 대화로 설정합니다
    4. 이렇게 하면 이 대화에 대한 사용자 액세스가 제한되며, 이 대화는 직접 또는 도움말 옵션에서 사용할 수 없습니다.
  2. 작업 액세스 제한:
    1. 잔액 업데이트 대화를 엽니다
    2. UpdateBalance 의도의, NLP 속성 탭을 엽니다
    3. 컨텍스트 관리 섹션에서 의도 전제 조건에 “이체“를 추가합니다 이렇게 하면 이체가 컨텍스트에 있는 경우에만 이 대화가 실행됩니다.
    4. 이체 금액 대화를 엽니다
    5. 이체 금액 의도 노드의, NLP 속성 탭을 엽니다
    6. 컨텍스트 관리 섹션에서 잔액 업데이트 대화에 필요한 대로 컨텍스트 출력에 “이체“를 가합니다
    7. 이제 다른 대화에서 잔액 업데이트를 트리거 할 수 없습니다.

후속 작업 의도

계좌 업데이트 의도는 이체 금액을 통해서만 호출되어야 합니다. 다음 두 가지 작업을 수행할 수 있습니다.

  1. 사용자 액세스 제한:
    1. 계좌 업데이트 대화를 엽니다
    2. 기타(세로 타원) 옵션에서 대화 설정에 액세스합니다
    3. 옵션하위 의도 전용 대화로 설정합니다
    4. 이렇게 하면 이 대화에 대한 사용자 액세스가 제한되며, 이 대화는 직접 또는 도움말 옵션에서 사용할 수 없습니다.
  2. 작업 액세스 제한:
    1. 잔액 업데이트 대화를 엽니다
    2. UpdateBalance 의도의, NLP 속성 탭을 엽니다
    3. 컨텍스트 관리 섹션에서 의도 전제 조건에 “이체“를 추가합니다 이렇게 하면 이체가 컨텍스트에 있는 경우에만 이 대화가 실행됩니다.
    4. 이체 금액 대화를 엽니다
    5. 이체 금액 의도 노드의, NLP 속성 탭을 엽니다
    6. 컨텍스트 관리 섹션에서 잔액 업데이트 대화에 필요한 대로 컨텍스트 출력에 “이체“를 가합니다
    7. 이제 다른 대화에서 잔액 업데이트를 트리거 할 수 없습니다.

여러 FAQ에 걸쳐 컨텍스트 공유

이 시나리오에서는 다음 지식 모음이 사용됩니다: 주요 질문: 신용 카드의 이자율은 어떻게 되나요? 주요 질문: 신용 카드 요금 청구액은 얼마인가요? 대체: 청구액은 얼마인가요?
활용 사례는 다음과 같습니다:

두 번째 질문에서 청구액이라는 단어는 신용 카드의 컨텍스트에 있습니다. 이 기능을 사용하려면 플래그를 설정하기만 하면 됩니다. 플랫폼이 처리합니다. 답변한 각각의 질문에 대해 컨텍스트 태그가 자동으로 설정됩니다. 이를 적절히 사용하도록 플랫폼에 지시하기만 하면 됩니다.

  1. 학습 -> 임곗값 및 설정으로 이동
  2. 지식 모음 탭 확장
  3. 아래로 스크롤 하여 문맥 경로 검증 태그를 설정합니다. 이 설정을 사용하면 사용할 수 있는 컨텍스트 태그가 특정 FAQ 경로의 일부일 경우 KG 엔진이 질문에 대해 검증합니다.
  4. 봇을 실행하여 결과를 확인합니다.

의도와 FAQ 간의 컨텍스트 공유

이 시나리오에서는 다음 지식 모음이 사용됩니다: 주요 질문: 이체율은 얼마인가요? 대체: 이체율은 어떻게 되나요? 이 활용 사례는 사용자가 이체 금액 중에 이율에 관해 물어볼 수 있다는 것입니다. 이렇게 하면 적절한 FAQ가 트리거 되어 쿼리에 응답할 수 있습니다.

FAQ의 중단 동작에 대한 기본 설정은 대화 작업이 진행 중인 동안 FAQ를 볼 수 있도록 하지만 설명된 활용 사례는 해결되지 않습니다. “이체율은 얼마인가요“라는 직접적인 질문에 답하지만 “이체율은 어떻게 되나요“라는 질문에 대해서는 답변을 제공하지 않습니다. FAQ가 컨텍스트를 선택하지 않는 이유. FAQ가 컨텍스트를 선택했는지 확인하려면:

  1. 이체 금액 작업이 이미 이체 태그를 표시하고 있으며, 이 경우에도 동일한 태그가 사용됩니다
  2. 학습 -> 임곗값 및 설정으로 이동
  3. 지식 모음 탭 확장
  4. 아래로 스크롤 하여 컨텍스트 경로 검증 태그를 설정합니다(이전 활용 사례에 따라 아직 설정되지 않은 경우)
  5. 봇을 실행하고 변경 사항이 적용되었는지 확인합니다
메뉴