스토리
스토리는 봇 실제 상담원 대신 고객 인터랙션을 처리하는 소프트웨어 애플리케이션입니다.에게 상호작용의 맥락에서 메시지 질문이나 진술, 서면 또는 음성 여부와 관계없이 Bot 인터랙션에서 컨택이 말하는 모든 것입니다.에 응답하는 방법을 가르칩니다. 메시지의 컨텍스트가 중요할 때 스토리를 사용합니다. 스토리는 컨택이 이전에 보낸 메시지를 기반으로 올바른 응답을 예측하는 방법을 봇이 학습하는 데 도움이 됩니다.
봇 응답을 구성하는 다른 방법은 규칙을 생성하는 것입니다. 규칙은 항상 동일한 응답과 컨텍스트가 중요하지 않은 메시지에 유용합니다. 컨택이 원하는 내용을 이해하는 데 컨텍스트가 중요한 경우 스토리를 사용합니다. 컨텍스트가 중요하지 않고 컨택의 메시지가 항상 같은 의미인 경우 규칙을 사용합니다.
예를 들어, 컨택이 "근무 시간은 언제인가요?"라고 묻는 경우 봇은 컨텍스트가 필요하지 않으므로 규칙을 사용할 수 있습니다. 하지만 컨택이 "그걸 어떻게 하나요?"라고 묻는 경우 봇은 메시지의 컨텍스트를 이해할 필요가 있습니다. 대화의 앞부분에서 컨택이 물었던 내용은 봇이 적절하게 응답하는 방법을 이해하는 데 도움이 되므로 스토리를 사용하는 것이 좋습니다.
개념 | 정의 | 예시 | Bot의 기능 |
---|---|---|---|
발화 |
인터랙션 중에 컨택이 말하는 모든 내용입니다. 때로는 메시지라고도 불립니다. |
"비밀번호를 잃어버렸어요." "내 잔액은 얼마입니까?" "당신은 봇입니까?" |
Bot은 자연어 이해(NLU)를 사용하여 각 컨택의 발화를 분석하여 의미 또는 의도를 파악합니다. |
의도 |
컨택이 전달하거나 달성하고자 하는 것 컨택이 전송하는 모든 메시지에는 의도가 있습니다. |
"비밀번호를 분실했습니다"는 "비밀번호 재설정"을 의미합니다. '안녕하세요'는 '인사'의 뜻을 담고 있습니다. |
Bot은 NLU 이해하는 내용에 따라 결정을 내리거나 작업을 수행하기 위해 자연어 처리(NLP)를 확장하는 프로세스입니다.를 사용하여 컨택의 메시지를 분석하여 의도를 파악합니다. 알게 되면, 자신의 메시지를 보내 응답할 수 있습니다. 각 의도에 대해 Bot이 사용할 응답을 구성합니다. |
엔터티 |
컨택의 메시지에 정의된 정보입니다. | 사람 또는 제품 이름, 전화 번호, 계정 번호, 위치 등. | Bot은 NLU를 사용하여 컨택의 메시지에 있는 엔터티를 식별합니다. 엔터티는 Bot이 컨택의 메시지 의미를 이해하는 데 도움이 됩니다. |
슬롯 |
컨택의 메시지에서 추출하여 Bot 응답에 사용하기 위해 저장하는 엔터티입니다. 변수와 비슷합니다. | 컨택 이름에 대한 슬롯을 만들면 봇이 상호작용 중 응답에 해당 이름을 사용할 수 있으므로 더 개인화할 수 있습니다. | 이렇게 구성된 경우, Bot은 컨택의 메시지에서 엔터티를 추출하여 슬롯에 저장합니다. 이 정보를 나중에 대화에서 Bot이 활용할 수 있습니다. |
규칙 |
컨텍스트에 따라 의미가 바뀌지 않는 메시지에 대한 Bot의 응답을 정의합니다. |
|
규칙은 Bot이 의도에 어떻게 응답할지 구성할 수 있는 두 가지 방법 중 하나입니다. 규칙은 특정 종류의 의도에는 유용하지만, 모든 의도에 유용한 것은 아닙니다. |
스토리 |
메시지 의도와 대화 컨텍스트에 따라 인터랙션을 처리하도록 Bot을 훈련합니다. | 잊어버린 비밀번호에 대한 상호작용에서, 봇은 한 가지 방식으로 "어떻게 해야하죠?"에 응답하게 됩니다. 상호작용이 새 계정을 만드는 것에 관한 것이라면 두 경우 모두 컨택이 더 많은 정보를 얻기 위해 같은 의도로 같은 단어를 사용하더라도 응답은 상당히 다를 것입니다. | 스토리는 Bot이 의도에 어떻게 반응하는지 구성할 수 있는 두 가지 방법 중 두 번째입니다. 스토리는 Bot이 대화의 컨텍스트를 이용해 적절하게 대응하는 방법을 가르쳐줍니다. |
Bot 작업 |
상호작용을 처리하는 동안 봇이 말하거나 수행하는 모든 것. |
잊어버린 암호에 대한 인터랙션에서 Bot은 웹사이트의 암호 재설정 FAQ로 가는 링크를 전송하여 응답합니다. 컨택이 "이해가 안 돼요! 작동하지 않아요!!!"와 같은 좌절감을 표현하면 Bot은 "죄송합니다. 인간 상담원에게 연결해 드릴까요?"라고 응답합니다. 컨택이 동의하면 Bot이 전환을 시작합니다. |
작업은 Bot이 각 의도에 어떻게 응답할지 정의할 때 사용할 수 있는 옵션입니다. 이러한 옵션을 사용하면 컨택의 요구사항을 충족하는 결과를 얻기 위해 각 응답을 구성할 수 있는 유연성이 제공됩니다. |
만족, 불만족 및 범위를 벗어난 경로
스토리를 계획할 때는 경로를 고려하는 것이 유용합니다:
- 만족 경로: 만족 경로를 훈련하는 스토리는 컨택이 예상대로 대화 흐름에 따르는 것을 설명합니다. 컨택은 질문을 받을 때 항상 예상되는 정보를 제공하고 답변합니다. 만족 경로에서는 특이한 상황이 발생하지 않습니다.
- 불만족 경로: 불만족 경로는 컨택이 "스크립트"에서 벗어나 예상치 못한 질문, 의견, 채팅 또는 다른 유형의 방해를 유발하는 상황을 설명합니다.
- 범위를 벗어난 경로: 범위를 벗어난 경로를 위한 스토리는 컨택의 요청이 봇이 처리할 수 있는 범위를 벗어나는 시나리오를 처리하는 방법을 봇에게 알려줍니다.
모든 의도에 대해 만족 경로와 불만족 경로 모두에 대한 스토리를 설계하는 것이 중요합니다. 만족 경로에서는 봇이 각 의도에 대해 작업을 완료하는 방법을 확실히 알 수 있습니다. 불만족 경로에서는 봇이 예상치 못한 상황으로 인해 진로를 벗어나지 않도록 해야 합니다. 봇이 어떻게 응답할지 확실하게 예측할 수 없고 범위를 벗어난 경로를 따라야 하는 경우가 있을 수 있습니다. 그러나 불만족 경로를 많이 훈련시키면 봇이 대화를 다시 올바른 길로 이끄는 방법을 학습하는 데 도움이 될 수 있습니다.
범위를 벗어난 경로
범위를 벗어난 경로는 폴백과 다릅니다. 폴백은 봇이 주어진 작업 또는 의도를 진행할지 충분히 확신이 없을 때 사용됩니다. 범위를 벗어난 경로는 컨택이 봇에게 훈련받지 않은 작업을 요청할 때 유용합니다. 이러한 요청에 대해 범위를 벗어난 의도를 생성하여 봇이 이를 인식할 수 있도록 할 수 있습니다. 그런 다음 스토리에서 의도를 사용하여 그러한 요청에 응답하는 방법을 봇에게 알려줄 수 있습니다.
예를 들어, 컨택은 계정 정보를 업데이트해 달라고 봇에게 자주 요청하지만, 봇은 아직 그러한 작업을 수행하도록 설정되지 않은 경우가 있습니다. 계정 업데이트 의도를 만들고, 교육 예제를 제공하고, 이렇게 말하는 봇 응답을 구성할 수 있습니다 "죄송하지만 아직 그 방법을 모르겠습니다. 제가 [작업]을 도와드리거나 계정과 관련하여 도와줄 수 있는 인간 상담원에게 연결해 드릴 수도 있습니다."
스토리 및 컨텍스트 전환
스토리는 대화에서 여러 번의 전환이 필요할 때 컨텍스트 전환을 처리하도록 봇을 훈련하는 데 유용합니다. 다음 예제에서는 컨택이 마음을 바꾸어 두 개의 의도를 차례로 말하는 대화를 보여줍니다.
컨택: 안녕하세요. 송장을 지불하고 싶습니다.
봇: 예. 처리해 드리겠습니다. 송장 번호가 어떻게 되십니까?
컨택: 사실은 돈을 이체하고 싶습니다.
봇: 예. 도와드리겠습니다. 어떤 계좌로 이체하고 싶으신가요?
컨택: 저축 계좌에서 당좌예금 계좌로 200달러를 이체해 주세요.
봇: 알겠습니다. 이체가 완료되었습니다. 저축 계좌에서 당좌예금 계좌로 200달러를 이체했습니다.
봇: 이제 계속해서 송장을 지불하시겠습니까?
불만족 경로를 사용하면 컨택이 예상했던 방식으로 답변하지 않는 상황을 처리하도록 봇을 훈련할 수 있습니다.
특정 유형의 컨텍스트 전환에는 규칙 컨텍스트에 따라 변경되지 않는 메시지에 대한 Bot의 응답을 정의하는 데 사용됩니다.이 더 적합할 수 있습니다. 때로는 컨택이 관련성 없는 한 개 메시지를 끼워넣는 경우도 있습니다. 봇이 한 번 응답한 다음 이전 의도로 돌아갈 수 있는 메시지인 경우, 규칙을 사용할 수 있습니다. 다음 대화 예제는 컨택이 날씨에 관한 질문을 끼워넣는 대화를 보여줍니다.
컨택: 안녕하세요. 송장을 지불하고 싶습니다.
봇: 예. 처리해 드리겠습니다. 송장 번호가 어떻게 되십니까?
컨택: 거기 날씨는 어떻습니까?
봇: 바깥 날씨는 맑습니다.
컨택: 그렇군요! 참, 제 송장 번호는 123456입니다.
봇: 감사합니다. 그 송장에 대한 지불을 어떻게 하시겠습니까?
날씨에 관한 컨택의 질문은 규칙을 사용하여 쉽게 처리할 수 있습니다. 봇의 응답은 항상 동일할 수 있습니다.
체크포인트
체크포인트는 스토리에서 봇의 응답에 할당할 수 있는 봇 동작입니다. 체크포인트를 통해 스토리를 더 작은 하위 작업으로 나누고 관련성 있는 부분들을 연결하여 스토리를 단순화할 수 있습니다. 이는 컨택이 여러 개의 후속 질문 중 하나를 묻는 상황에서 유용합니다. 각 시나리오에 대해 컨택이 묻는 후속 질문을 기반으로 처음부터 끝까지 전체 스토리를 만드는 대신, 대화의 각 부분에 대해 더 작은 스토리를 만들 수 있습니다.
고객 메시지를 기반으로 하지 않는 체크포인트를 사용할 수도 있습니다. 예를 들어 회사에서 일정 시간 동안만 모든 고객들에게 특별 제안을 연장하려고 할 수 있습니다. 각 봇 스토리에 특별 제안 메시지와 작업을 추가한 다음 제안의 기한이 지나면 여러 스토리에서 해당 섹션을 제거할 수 있습니다. 더 간단한 방법은 특별 제안만을 위한 스토리를 만든 다음 제안 기간 동안 각 스토리에 체크포인트를 추가하는 것입니다.
이미지와 같이 체크포인트는 항상 시작 부분에 곡선 화살표가 있는 작은 파란색 원을 표시합니다. 이것은 그 체크포인트가 하나 이상의 다른 스토리와 연결됨을 나타냅니다. 체크포인트 이후에 액션을 추가하더라도 체크포인트는 항상 스토리를 끝냅니다.
많은 컨택이 Classics, Inc 봇에게 Classics, Inc. 계정에 대해 질문해 왔습니다. 따라서 Akela Wolfe는 이러한 질문을 처리하기 위해 자신의 봇에 의도를 추가하고 있습니다. 컨택이 계정에 대해 묻는 몇 개의 공통적인 질문이 있습니다. Akela는 이러한 질문을 처리하기 위해 체크포인트를 사용하기로 결정했습니다.
그녀는 explain_account 의도를 위한 기본 스토리를 만듭니다.
컨택: 안녕하세요. Classics, Inc 계정이 무엇입니까?
봇: 안녕하세요. Classics, Inc. 계정을 사용하면 Classics, Inc.에서 구매한 모든 전자책에 접근할 수 있습니다.
그녀는 또한 세 가지 일반적인 후속 질문에 대한 스토리를 만듭니다.
- 계정 혜택에 대해 자세히 알려줄 수 있습니까?
- 어떻게 계정을 만들 수 있나요?
- 비용을 지불해야 하나요, 아니면 무료인가요?
Akela는 explain_account 의도에 대한 스토리로 돌아갑니다. 마지막에는 후속 질문에 대한 스토리로 연결되는 체크포인트를 추가합니다.
스토리 계획 모범 사례
스토리를 계획할 때 다음 모범 사례를 따릅니다.
- 컨텍스트가 중요할 때 스토리를 사용합니다. 봇과 컨택 간에 대화가 한 번만 이루어지더라도 봇이 어떻게 응답할지 이해하기 위해 컨텍스트가 필요한 경우 스토리를 사용합니다. 예를 들어, lookup_balance 의도를 가지고 있지만, 일부 컨택은 당좌 예금 계좌의 잔액을 알고 싶어하고 다른 컨택은 저축 예금 계좌에 대해 알고 싶어하는 경우, 사용자가 지정한 계좌를 기반으로 적절하게 응답하도록 봇을 학습시키는 데 도움이 되는 스토리를 만들 수 있습니다.
- 스토리를 사용하여 봇이 예측하는 법을 학습하도록 돕습니다. 각 스토리의 주제를 신중하게 선택합니다. 봇이 이전에 본 적이 없는 대화에 대한 응답을 올바르게 예측하도록 학습하는 데 도움이 되게 설계되었는지 확인하십시오.
- 실세계 대화를 기반으로 스토리를 구성합니다. 일어날 가능성이 있다고 생각되는 스토리를 꾸며내지 마십시오. 대신 실제 상호작용을 사용하여 만듭니다.
-
행복한 의도에 맞는 결과를 만들어내는 스토리 경로 또는 불행한 경로 의도에 대해 잘못된 결과를 낳는 스토리를 따르는 스토리를 설계합니다.
- 스토리를 사용하여 컨텍스트 전환을 처리합니다. 이는 봇이 두 대화 흐름 간에 전환하거나, 응답하는 데 두 번 이상의 대화 전환이 필요한 중단을 처리하는 방법을 학습하는 데 도움이 됩니다. 응답하는 데 중단이 한번만 필요하고 컨텍스트에 의존하지 않는 경우, 규칙이 더 적절할 수 있습니다.
-
어떤 의도는 여러 개의 스토리를 필요로 합니다. 컨택의 고유한 상황과 필요에 따라 대화가 진행되는 방식에 차이가 있는 경우, 동일한 의도에 대해 여러 개의 스토리를 작성합니다.
- 동일한 스토리에서 대화 흐름의 변형들을 포함하지 마십시오. 이렇게 하면 봇에 혼동을 줄 수 있습니다.
- 컨택이 메시지를 전달하는 방법의 변형들이 있거나, 본질적으로 같은 의미를 갖는 유사한 메시지가 있는 경우, 컨택 메시지의 의도에 대한 예로 이들을 추가할 수 있습니다.
행복한 경로와 불행한 경로라는 측면에서 생각합니다. 각 의도에는 두 개 이상의 행복한 경로와 두 개 이상의 불행한 경로가 있을 수 있습니다.
- 범위를 벗어난 의도에 대한 스토리를 만듭니다. 이렇게 하면 컨택이 범위를 벗어난 정보를 제공하는 일반적인 방법에 대해 봇을 훈련시킬 수 있습니다.
- 필요에 따라 컨택 간의 주고 받기를 포함시킵니다. 스토리 및 규칙은 완전한 대화가 아니어야 합니다. 대화에서 다음 문장이 새 의도를 시작해야만 하는 경우, 여기서 중지하고 새로운 스토리를 만듭니다.
- 스토리를 논리적인 하위 작업으로 나눕니다. 시작부터 마무리까지의 전체 대화를 포괄하는 한 개의 긴 스토리를 만들고 싶은 유혹을 받을 수 있습니다. 하지만, 이렇게 하면 필요한 스토리 수가 실제로 증가할 수 있습니다. 대신, 스토리를 논리적인 하위 작업으로 나누십시오. 일부 하위 작업들이 매우 밀접한 연관성이 있는 경우, 체크포인트를 사용해 연결할 수 있습니다.
- 체크포인트를 과도하게 사용하지 마십시오. 체크포인트는 훈련 데이터를 단순화할 수 있습니다. 체크포인트가 너무 많으면 스토리를 이해하기 어렵고, 실제로 봇의 훈련 속도가 느려집니다.