대화 노드를 사용하면 사용자 의도가 변경되는 경우 기존 대화 작업 내에서 새 대화 작업을 시작할 수 있습니다. 예: 다음과 같은 세 가지 대화 작업이 있는 여행 봇을 고려해 봅시다. 항공편 이용 가능 여부항공편 예약 및 호텔 예약. 항공편 이용 가능 여부 대화 작업에서 항공편 예약 대화 작업을 호출해야 합니다.
주요 특징
대화 노드의 주요 특징은 다음과 같습니다.
- 이후 섹션에서 설명할 엔티티 사전 할당처럼 현재 대화 작업에서 대상 대화 작업으로 데이터를 전송하는 기능입니다.
- 대상 대화 작업이 호출될 때 현재 대화 흐름은 새 대화 작업의 루트 의도에서 시작됩니다. 대화 노드에 전환을 작성하는 경우 흐름은 대상 작업을 완료한 후 원본 대화 작업으로 돌아갑니다. 전환을 작성하지 않으면 대화 작업은 대상 대화 작업을 실행한 후 종료됩니다. 이것은 선택적 사용자 의도 노드와 다릅니다. 대화 흐름은 관련 사용자 의도를 처리한 후 동일한 대화 작업에서 계속됩니다.
설정
대화 작업에서 대화 노드를 설정하려면 다음 단계를 수행합니다.
노드 추가
- 대화 노드를 추가하려는 대화 작업을 엽니다.
- 지정된 위치에 대화 노드를 추가합니다. 노드를 추가하는 단계의 경우, 여기를 참조하세요.
- 대화 창은 기본적으로 구성 요소 속성 탭이 선택되어 표시됩니다.
노드 설정
구성 요소 속성
구성 요소 속성 탭에서 설정하거나 편집한 설정은 이 노드를 사용하는 모든 대화 작업에 반영됩니다.
- 구성 요소 속성 탭의 일반 설정에서
- 이름 및
- 설명을 수정할 수 있습니다.
연결 속성
- 연결 탭을 클릭하고 전환 속성을 설정하여 대화 작업에서 다음에 실행할 노드를 결정합니다. 대화 작업에서 엔티티 또는 컨텍스트 개체의 값을 기반으로 조건문을 작성하거나 전환을 위해 의도를 사용할 수 있습니다. 전환 속성을 현재 작업 종료로 정의한 경우 이러한 설정은 무시됩니다.
- 연결 규칙 섹션에서 IF 추가를 클릭합니다.
- 다음 조건 중 하나를 기준으로 조건식을 설정합니다.
- 엔티티: 대화의 엔티티 노드를 특정 값과 비교합니다.
- 엔티티를 입력합니다.
- 드롭다운 목록에서 연산자를 선택합니다. Exists, equals to, greater than equals to, less than equals to, not equal to, greater than, less than.
- 값 필드에 숫자를 입력합니다. 예: PassengerCount (엔티티) greater than (연산자) 5 (지정된 값):
- 컨텍스트: 다음 연산자 중 하나를 사용하여 대화의 컨텍스트 개체와 지정된 값을 비교합니다. Exists, equals to, greater than equals to, less than equals to, not equal to, greater than, less than. 예: Context.entity.PassengerCount (컨텍스트 개체) greater than (연산자) 5 (지정된 값).
- 의도: 다음 사용자 발화와 일치하는 의도를 선택합니다.
- 엔티티: 대화의 엔티티 노드를 특정 값과 비교합니다.
- Then go to 드롭다운 목록에서 조건식이 성공할 경우 대화 흐름에서 실행할 다음 노드를 선택합니다. 예: PassengerCount (엔티티) greater than (연산자) 5 (지정된 값), Then go to Offers (하위 대화).
- Else 드롭다운 목록 조건이 실패할 경우 실행할 노드를 선택합니다.
참고: 여러 If 조건을 작성하려면 마지막 If 조건식 아래에 있는 Else If 추가를 클릭합니다.
인스턴스 속성
인스턴스 속성에는 대화의 인스턴스에 대한 설정이 포함됩니다.
- 대화 창에서 인스턴스 속성 탭을 클릭합니다.
- 엔티티 사전 할당 섹션에서 이 세션의 값 또는 노드 데이터를 대화 작업에 필요한 엔티티에 사전 할당할 수 있습니다. 나머지 필수 값은 하위 의도에서 처리됩니다. (자세한 내용은 아래를 참조) 값을 재설정하려면 "null" 키워드를 사용해야 하며 공백은 플랫폼에서 무시됩니다.
- 엔티티 사후 할당 섹션에는 맞춤형 변수를 추가할 수 있는 옵션과 함께 현재 작업에서 사용 가능한 엔티티의 목록이 표시됩니다. 이러한 엔티티는 연결된 대화 세션 데이터의 값으로 할당됩니다. 예:
context.entities.
는 연결된 하위 대화에서 선택을 위한 엔티티 목록을 나열합니다. 연결된 대화 실행이 완료되면 값이 할당됩니다. 참고: 이 옵션은 전환 옵션이 작업 완료 시 현재 노드로 반환되도록 설정된 경우에만 사용할 수 있습니다. 현재 URL 엔티티 유형 사용 시 제한이 있습니다.https
가 아니라http
가 있는 URL 값 또는www
접미사가 없는 URL 값은 작동하지 않습니다. 값을 재설정하려면 "null" 키워드를 사용해야 하며 공백은 플랫폼에서 무시됩니다. - 전환 옵션 섹션에서 작업이 완료되면 따라야 할 흐름을 정의할 수 있습니다. 두 가지 옵션 중에서 선택할 수 있습니다.
- 작업 완료 시 현재 노드로 돌아갑니다.
- 현재 작업을 종료하고 이 작업을 시작합니다.
- 고급 제어를 클릭하여 아래 나열된 옵션을 설정합니다.
- 중단 동작
- 작업 수준 '중단 동작' 설정 사용: 봇은 대화 작업 수준에서 설정된 중단 동작 설정을 참조합니다.
- 노드 사용자 정의: 이 옵션을 선택하고 동일하게 설정하여 이 노드에 대한 중단 동작을 사용자 정의할 수 있습니다. 자세한 내용은 중단 처리 및 컨텍스트 전환 문서를 참조하세요.
- 맞춤형 태그는 봇 대화의 사용자 정의 프로필 구축을 위한 태그를 정의합니다. 자세한 내용은 여기를 참조하세요.
- 중단 동작
엔티티 사전 할당 정보
다음을 통해 대상 대화 작업의 데이터를 미리 채울 수 있습니다.
- 엔티티 키에 값을 추가합니다.
- 필요에 따라 현재 대화 작업
Context
개체에서 대상 대화 작업으로 데이터를 전달하기 위해 추가적인 맞춤형 키 및 값을 추가합니다.
기본적으로 대상 대화 작업에 정의된 엔티티 노드는 키/값 쌍으로 표시됩니다. 그런 다음 세션 변수와 연결 변수를 사용하여 필요에 따라 연결된 엔티티의 값을 정의하거나 맞춤형 키와 값을 추가할 수 있습니다. 사용자 입력이 연결된 대화 작업 중 하나와 일치할 때 원본 대화 작업에서 대상 대화 작업으로의 전환이 실행 중에 발생합니다. 하나 이상의 대화 작업을 매핑하는 경우 조건부 전환을 사용하여 최종 사용자에게 표시할 대화 작업을 정의할 수 있습니다. 다른 대화 작업을 호출할 때 첫 번째 대화 작업에서 다음 대화 작업으로 정보를 전달해야 합니다. 예: 항공편 예약 대화 작업에서 수집한 고객 정보는 호텔 예약 대화 작업으로 전달됩니다. 봇 플랫폼에서 다음 JSON 구문과 같이 원본 대화 작업의 컨텍스트뿐만 아니라 의도 노드의 참조를 가지고 있는 mappedIntents
변수를 Context
개체에서 사용할 수 있습니다. { 'title': 'title of the link', 'link':' url for the link' ,'postbackpayload': 'system generated payload'}
예: Context
개체의 GetEmail
에 대한 링크는 다음과 같을 수 있습니다.
{ "title":"GetEmail", "link":"https://app.collab.ai/wf/1.1/market/users/bots/st-bb1eb3da-cfa7-5244-b241-b5042d333e76/dialogue/dg-15fd2927-219c-5795-b038-5b830718bea7/execute?nodeId=message2&contextId=dcx-f9bae173-4d69-53e4-9aa7-21e89aae776d&intent=GetEmail", "postbackpayload":"MappedDialog_dc-f7b42932-dc06-53ac-92c0-1db706794f91_dg-15fd2927-219c-5795-b038-5b830718bea7_dcx-f9bae173-4d69-53e4-9aa7-21e89aae776d" }
이러한 변수에 액세스하여 프롬프트 메시지에서 사용자에게 표시하고 링크가 있는 매핑된 대화 작업 목록(즉, 선택 목록)을 표시할 수 있습니다. 원본 대화 작업이 Context
개체를 사용하지 않는 경우에도 원본 대화 컨텍스트를 대상 대화 작업으로 전달할 수 있습니다. postbackpayload
키 값은 봇 플랫폼에서 생성되고 Facebook 및 SlackSlack 등 일부 채널에서 사용되며 대상 대화 작업에 대한 링크 또는 선택을 사용하는 시기를 정의합니다. 자세한 내용은 작업에서 세션 변수 및 컨텍스트 변수 사용하기 및 컨텍스트 개체를 참조하세요.