본 방법에서는 사용자 경험과 봇 효율성을 개선하는 데 도움이 되는 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에서 콘텐츠 공유 – 특정 질문은 이전 쿼리의 후속 질문일 수 있습니다. 예를 들어 “신용 카드에 대한 이자율은 무엇입니까?“와 같은 질문은 “요금은 얼마입니까?“에 이어지는 신용 카드에 대한 요금 참조 사항입니다.
본 문서에서는 컨텍스트 태그 및 변수, 사전 조건 입력 및 컨텍스트 출력, 플랫폼의 엔티티 값 기능을 사용하여 위에서 언급한 모든 시나리오를 달성하기 위한 자세한 단계별 접근 방법을 제공합니다.
전제 조건
- 봇 구축 지식
- 아래 언급된 것과 같은 대화 상자가 있는 뱅킹 봇:
구현
다음 시나리오를 각각 하나씩 살펴보겠습니다.
여러 의도에 걸쳐 콘텐츠 공유
다음과 같이 언급된 두 가지 경우에 콘텐츠 공유를 다르게 처리해야 합니다:
- 봇 기반 전환 – 이는 봇 개발 시 해당 의도를 호출하고 엔티티 사전 할당을 통해 데이터를 전달하여 처리할 수 있습니다
- 사용자 기반 전환 – 이는 현재 작업 흐름 중에 사용자가 이러한 요청을 언제 수행할지 알 방법이 없으며 태그, 엔티티 산출 및 추출의 조합이 필요하기 때문에 다소 복잡합니다.
작업 기반 컨텍스트 전환
다음은 이체 금액 대화에서 잔액 가져오기 작업을 호출하여 지급인 계좌에 이체할 자금이 충분한지 확인하는 시나리오입니다.
이를 위해 봇 범위 컨텍스트 변수와 엔티티 사전 할당을 사용하겠습니다. 단계: 이체 금액에서 잔액 가져오기를 호출하고 자금을 확인한 후 그에 따라 진행해야 합니다
다음으로, 잔액 가져오기 대화를 수정하여 이체 태그를 확인하고 필요하다면 봇 컨텍스트 변수를 채웁니다.
- 잔액 가져오기 대화를 엽니다
- BalanceMessage(최종 메시지 노드) 노드를 엽니다
- 봇 응답 섹션에서 응답 관리 대화를 엽니다
- 다음 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);
봇을 실행하고 조지 내 변경 사항을 확인합니다.
사용자가 트리거 한 컨텍스트 전환
다음은 이 활용 사례의 예입니다. 사용자는 이전 금액 확인 계좌 잔액을 사용하는 동안 언제든지 이체 작업을 진행할 수 있습니다.
이를 어떻게 달성할 수 있는지 살펴보겠습니다. 시스템에서 생성한 태그와 커스텀 태그 같은 기록 태그를 사용하겠습니다. 기록 태그는 한 의도에서 다른 의도로 자동으로 전송됩니다. 단계: 먼저 이체 금액을 수정하여 적절한 태그를 입력하고 보류 및 재개 설정을 구성합니다:
- 이체 금액 대화를 엽니다
- PayerAccount 엔티티의 속성 패널을 엽니다
- NLP 탭에서 캡처된 엔티티 값 자동 발행을 설정합니다. 그러면 지급인 계좌 번호가 컨텍스트에 저장됩니다. 이 값은 이 의도를 통해 발행되는 첫 번째 값이므로 태그 배열에서 의도 이름 옆에 배치됩니다
- 그런 다음 기타(세로 타원) 옵션에서 관리 중단 대화를 엽니다.
- 이 작업에 대한 설정을 보류 및 재개 허용으로 커스터마이징하고 보류 옵션을 현재 작업을 보류하고 새 작업이 완료되면 재개하도록 설정하고 사용자에게 특정 메시지를 표시하지 않고 보류 중인 작업을 다시 시작하도록 재개 옵션을 설정합니다.
다음으로, 잔액 가져오기 대화를 수정하여 이체 금액에서 전송된 데이터를 캡처합니다
- 잔액 가져오기 대화를 엽니다
- 스크립트 노드 추가 – CheckAcId를 의도 노드 후의 컨텍스트에서 계좌 번호를 사용할 수 있는지 확인합니다.
- 다음 스크립트를 추가합니다.. 이 스크립트는 의도 “이체 금액”을 확인합니다. 계좌 번호를 캡처하고 AccountNumber 엔티티를 해당 값으로 입력합니다.
var i = koreUtil._.indexOf(context.historicTags[0].tags, 'Transfer Amount'); context.entities.AccountNumber = context.historicTags[0].tags[i+1]
봇을 실행하고 변경 사항이 적용되었는지 확인합니다.
후속 작업 의도
계좌 업데이트 의도는 이체 금액을 통해서만 호출되어야 합니다. 다음 두 가지 작업을 수행할 수 있습니다.
- 사용자 액세스 제한:
- 작업 액세스 제한:
후속 작업 의도
계좌 업데이트 의도는 이체 금액을 통해서만 호출되어야 합니다. 다음 두 가지 작업을 수행할 수 있습니다.
- 사용자 액세스 제한:
- 작업 액세스 제한:
의도와 FAQ 간의 컨텍스트 공유
이 시나리오에서는 다음 지식 모음이 사용됩니다: 주요 질문: 이체율은 얼마인가요? 대체: 이체율은 어떻게 되나요? 이 활용 사례는 사용자가 이체 금액 중에 이율에 관해 물어볼 수 있다는 것입니다. 이렇게 하면 적절한 FAQ가 트리거 되어 쿼리에 응답할 수 있습니다.
FAQ의 중단 동작에 대한 기본 설정은 대화 작업이 진행 중인 동안 FAQ를 볼 수 있도록 하지만 설명된 활용 사례는 해결되지 않습니다. “이체율은 얼마인가요“라는 직접적인 질문에 답하지만 “이체율은 어떻게 되나요“라는 질문에 대해서는 답변을 제공하지 않습니다. FAQ가 컨텍스트를 선택하지 않는 이유. FAQ가 컨텍스트를 선택했는지 확인하려면:
- 이체 금액 작업이 이미 이체 태그를 표시하고 있으며, 이 경우에도 동일한 태그가 사용됩니다
- 학습 -> 임곗값 및 설정으로 이동
- 지식 모음 탭 확장
- 아래로 스크롤 하여 컨텍스트 경로 검증 태그를 설정합니다(이전 활용 사례에 따라 아직 설정되지 않은 경우)
- 봇을 실행하고 변경 사항이 적용되었는지 확인합니다