효과적인 컨텍스트 관리는 봇이 사용자와 보다 쉽고, 빠르고, 도움이 되며, 로봇 같거나 대본을 읽는 느낌을 영향을 덜 주는 방식으로 상호 작용할 수 있도록 해주므로 중요합니다. 컨텍스트 데이터를 사용하면 작업을 더 빨리 완료할 수 있고 더 자연스럽고 인간과 유사한 전후 대화를 생성할 수 있습니다.
예를 들어, 다음 대화를 살펴봅시다.
User: What are the annual charges for a credit card?
Bot: First year is free and after that, it's $xxx
User: Sounds great, I would like to apply for one.
위의 대화에서 적용은 신용 카드 컨텍스트에 있습니다. 봇은 사용자에게 신용 카드 또는 직불 카드를 신청할지 질문해서는 안 됩니다. 이전 의도의 컨텍스트, FAQ – 신용 카드 연회비, 의도로 전달되어야 하며 카드를 신청합니다. Kore.ai 봇 플랫폼을 사용하면 다양한 시나리오에 대한 컨텍스트 데이터를 캡처 및 재사용할 수 있으므로 보다 복잡한 사용 사례를 만들고 엔터프라이즈 고객 환경을 재정의할 수 있습니다. 다음은 이러한 몇 가지 시나리오의 예시입니다.
- 의도 간 컨텍스트 공유, FAQ: 위의 예시와 같이 모든 의도(예: 대화 작업, FAQ 등)의 컨텍스트를 유지하면 사용자 경험을 쉽게 사용자 정의할 수 있습니다
- 컨텍스트 기반 FAQ: 특정 의도(작업 또는 FAQ)는 특정 다른 의도(작업 또는 FAQ)가 컨텍스트에 있는 경우에만 사용할 수 있습니다. 예: 어떤 식사 옵션을 선택할 수 있습니까?라는 FAQ의 의도는 항공편 예약 작업이 컨텍스트에 있는 경우에만 사용할 수 있습니다.
- 후속 의도: 현재 의도의 컨텍스트는 사용자 발화에서 후속 의도를 식별하는 데 사용할 수 있습니다. 예를 들어, 사용자 발화 비용이 얼마나 듭니까?는 FAQ 의도로 응답해야 하고 사용자의 이전 의도가 플래티넘 신용 카드의 장점은 무엇입니까?인 경우 플래티넘 신용 카드 비용은 얼마입니까?라고 해야 합니다.
- 의도 간 엔티티 값 공유: 엔티티 값 또는 대화 흐름은 이전 의도의 컨텍스트 정보를 통해 진행됩니다. 예를 들어 사용자가 항공편 상태 확인 의도를 실행하고 목적지 도시 엔티티에 값을 제공한 경우 날씨 확인 의도의 도시 이름 엔티티가 미리 채워질 수 있습니다.
이 문서에서는 Kore.ai 봇 플랫폼에서 컨텍스트 관리를 구현하기 위한 개념에 대해 설명합니다. 자세한 단계별 예제는 여기를 참조하세요.
사용 사례 예시
User: When is my flight to Singapore?
Bot: Your flight from New York to Singapore is confirmed for Jun 20th.
User: Do I need a Visa?
Bot: Yes, you need a visa to visit Singapore for business or tourism
User: I would like to apply for one
Bot: Sure I can help with Visa to Singapore. Let me know the duration of the stay
위의 대화를 달성하기 위해 컨텍스트 개체를 다음과 같이 사용할 수 있습니다.
- 항공편 예약 문의 목적지 도시 엔티티 값을 내보냅니다.
- Visa FAQ 예약 문의 의도에서 내보낸 엔티티 값을 사용합니다.
- Visa 신청 Visa FAQ에서 Visa와 Singapore라는 용어를 사용합니다.
이 문서는 위의 시나리오를 달성하는 데 도움이 됩니다.
구현
컨텍스트 관리에는 다음 단계가 포함됩니다.
- 출력 컨텍스트 현재 의도가 실행되었음을 나타내는 태그를 정의합니다.
- 의도 전제 조건 후속 의도의 감지 범위를 지정하기 위해 출력 컨텍스트 태그를 추출합니다.
- 의도 감지 규칙 관련 의도를 감지하기 위한 것입니다.
- KC – 컨텍스트 태그를 사용하여 FAQ에서 용어/노드를 식별하는 컨텍스트 의도를 감지합니다.
- 대화 흐름 흐름을 사용자 정의합니다.
출력 컨텍스트
컨텍스트 태그는 컨텍스트 개체에서 생성 및 저장되어 봇 동작과 사용자 경험을 관리하는 데 사용됩니다. 플랫폼은 대화 작업 및 FAQ와 같은 모든 사용자 의도에 대한 컨텍스트 개체를 생성합니다(컨텍스트 개체에 대한 자세한 내용은 여기를 참조하세요). 기본 컨텍스트 태그 의도 이름, 엔티티 이름 및 FAQ 용어/노드 이름은 기본적으로 내보낼 수 있습니다. 사용자 정의 컨텍스트 태그 또한 또한 컨텍스트 개체에 포함되도록 다음을 정의할 수 있습니다.
- 컨텍스트 태그 – 대화, 동작, 알림, 정보 작업 및 엔티티에 대한 NLP 설정에서 컨텍스트 태그를 추가할 수 있습니다.
- 엔티티 값 – 캡처된 엔티티 값을 내보낼지 여부를 나타내는 옵션을 각 엔티티 노드에 설정합니다.
- FAQ 찾기에 컨텍스트 태그 사용 – 컨텍스트 태그를 사용하여 KG경로를 선정할지 여부를 지정할 수 있습니다.
대화 작업
이 플랫폼은 사용자가 대화 작업을 실행할 때 대화 작업의 세부 정보를 내보내도록 지원합니다.
- 의도 이름은 작업 실행을 시작할 때 모든 대화 작업에 대한 컨텍스트 태그로 내보내집니다.
- 대화 작업의 NLP 속성 탭에서 태그를 추가할 수 있습니다(아래로 스크롤 해야 할 수 있음).
contextTags.add(string value)
를 사용하여 JavaScript가 작성된 모든 위치(스크립트 노드, 고급 프롬프트, 스크립트 실행 옵션 등)에서 출력 컨텍스트 태그를 내보낼 수 있습니다.
경고 작업
이 플랫폼은 사용자가 경고 작업을 실행할 때 경고 작업의 세부 정보를 내보내도록 지원합니다.
- 작업 이름은 작업 실행이 시작될 때 모든 경고 작업에 대한 컨텍스트 태그로 내보내집니다.
- 추가 옵션 또는 일반 설정에서 작업 생성 시 태그를 추가할 수 있습니다.
- 다음을 사용하여 전처리기 또는 후처리기 출력 컨텍스트 태그를 내보낼 수도 있습니다
contextTags.add(string value)
.
엔티티
최종 사용자가 캡처한 엔티티 값은 다음 사항에 따라 방출됩니다.
- 캡처된 엔티티 값 자동 방출을 전환합니다. 엔티티 값 태그는 다음 섹션과 같이 내보내집니다.
- 추가적인 태그를 추가할 수 있는 옵션이 있습니다.
지식 그래프
의도 전제 조건
의도 전제 조건은 의도와 FAQ에 대한 의도 감지 범위를 정의하는 데 사용됩니다. 이는 의도/FAQ를 감지하고 실행하는 데 필요한 조건 집합입니다.
대화 작업
대화 의도의 의도 전제 조건은 대화를 감지할 때 정의하도록 설정됩니다. 즉, 컨텍스트에서 특정 태그를 사용할 수 있는 경우에만 감지하는 데 대화를 사용할 수 있습니다.
- 대화 의도를 사용할 수 있도록 하나 이상의 의도 전제 조건을 추가할 수 있습니다.
- 전제 조건이 있는 대화 의도는 정의된 전제 조건이 충족되는 경우에만 감지됩니다.
- 전제 조건 집합의 의도는 하위 의도로 취급되며 대화 수준 보류 및 재개 설정의 연결된 작업 예외 동작의 일부가 됩니다.
경고 작업
경고 작업의 의도 전제 조건은 작업을 감지할 때 정의하도록 설정됩니다. 즉, 컨텍스트에서 특정 태그를 사용할 수 있는 경우에만 감지하는 데 작업을 사용할 수 있습니다.
- 작업 의도를 사용할 수 있도록 하나 이상의 의도 전제 조건을 추가할 수 있습니다.
- 전제 조건이 있는 작업 의도는 정의된 전제 조건이 충족되는 경우에만 감지되어야 합니다.
지식 그래프
지식 그래프의 의도 전제 조건은 용어와 연관성을 가질 수 있습니다.
의도 감지
상황별 의도 감지는 이전에 실행된 의도가 설정한 출력 컨텍스트를 사용하여 관련 의도를 감지하는 데 도움이 됩니다.
작업
특성과 동일한 출력 컨텍스트 태그를 사용하여 컨텍스트와 관련된 의도를 식별하기 위한 규칙을 정의할 수 있습니다(자세한 내용은 여기를 참조하세요).
지식 그래프
플랫폼은 출력 컨텍스트 태그를 사용하고 개발자가 설정한 플래그를 기반으로 지식 그래프 엔진의 의도 감지를 향상하기 위해 사용합니다. 이 플래그는 컨텍스트 태그가 지식 그래프에서 경로를 확인하는 데 사용됩니다. 컨텍스트 태그는 용어를 추출하는 데 사용되며 이러한 용어는 사용자 발화의 다른 모든 용어와 결합됩니다. 통합 용어 목록은 경로를 확인하는 데 사용됩니다. 이 설정은 다음과 같이 설정할 수 있습니다.
대화 흐름
컨텍스트 개체에서 사용할 수 있는 컨텍스트 태그는 대화 흐름을 사용자 정의하는 데 사용됩니다. 다음에서 사용할 수 있습니다.
- 엔티티 값을 미리 채우는 경우.
- 전환 조건을 정의하는 경우.
- 대화 흐름을 사용자 정의하는 경우.
컨텍스트 태그에 액세스하는 스크립트는 다음과 같습니다.
- 현재 컨텍스트에서:
context.currentTags.tags
- 이전 컨텍스트에서:
context.historicTags[0].tags