대화 개선

대화를 테스트하고 대화 노드를 정리하십시오.

대화 상자 테스트

대화 상자를 작업하는 동안 언제든지 테스트를 통해 대화 상자가 입력에 어떻게 반응하는지 확인할 수 있습니다.

"체험판" 창을 통해 제출하는 쿼리는 /message API 호출을 생성하지만, 이 쿼리는 기록되지 않으며 요금이 부과되지 않습니다.

  1. 대화 상자 페이지에서 체험하기 버튼을 클릭합니다.

  2. 대화 분할창에서 몇 가지 텍스트를 입력한 다음 Enter를 누르십시오.

  3. 대화가 올바르게 입력을 해석했고 적절한 응답을 선택했는지 보려면 응답을 확인하십시오.

    대화 창은 입력에서 인식된 인텐트와 엔티티를 표시합니다.

    테스트 대화 상자 출력의 화면 캡처
    테스트 대화 상자 출력

  4. 인식된 상위 인텐트를 보려면 신뢰도 점수가 가장 높은 인텐트 옆에 표시되는 눈 아이콘 눈 아이콘 위로 마우스를 이동하십시오.

  5. 응답이 예상과 다른 경우 "시험 사용" 분할창에서 다음 조치를 수행할 수 있습니다.

    • 입력에서 인식되는 엔티티를 편집하려면 엔티티 이름을 클릭하여 엔티티 페이지에서 여십시오.
    • 잘못된 인텐트가 인식되면, 인텐트 이름 옆에 있는 화살표를 클릭하여 이를 정정하거나 주제를 관련 없음으로 표시할 수 있습니다. 자세한 정보는 훈련 데이터 개선을 참조하십시오.
  6. 대화 트리의 어떤 노드가 응답을 촉발했는지 알고 싶다면, 그 옆에 있는 위치 아이콘을 클릭하세요.

    소스 노드에 초점이 맞춰지고 어시스턴트가 트리를 통과하여 이동한 경로가 강조 표시됩니다. 새 테스트 사항을 입력하는 것과 같은 다른 조치를 수행할 때까지 강조 표시됩니다.

  7. 컨텍스트 변수 값을 검사하거나 설정하려면 컨텍스트 관리 링크를 클릭하십시오.

    대화에서 정의한 컨텍스트 변수가 표시됩니다.

    또한 다음 컨텍스트 변수가 나열됩니다.

    • $timezone: 시작하기 분할창은 웹 브라우저에서 사용자 로케일 정보를 가져오고 이를 사용하여 $timezone 컨텍스트 변수를 설정합니다. 이 컨텍스트 변수를 사용하면 테스트 대화 교환에서 시간 참조를 쉽게 처리할 수 있습니다.
    • $metadata: 이 컨텍스트 변수에는 사용자 ID 이름 및 값 쌍이 있습니다. user_id 항목은 시작하기 분할창에서 기본적으로 지정되지 않으므로 conversation_id 항목이 user_id 값으로 사용됩니다. 런타임 시 ID 값은 일반적으로 사용 중인 통합에서 어시스턴트로 전달됩니다. 사용자 정의 애플리케이션을 디자인하는 경우 이 값을 직접 설정합니다.

    변수를 추가하고 해당 값을 설정하여 다음 테스트 대화 턴(turn)에서 대화가 응답하는 방식을 볼 수 있습니다. 이 기능은 예를 들어, 사용자가 제공한 컨텍스트 변수값에 따라 다른 응답을 표시하도록 대화를 설정하는 경우에 유용합니다.

    1. 컨텍스트 변수를 추가하려면 변수 이름을 지정하고 Enter 키를 누릅니다.
    2. 컨텍스트 변수의 기본값을 정의하려면, 목록에서 추가한 컨텍스트 변수를 찾아서 그 값을 지정합니다.

    자세한 정보는 컨텍스트 변수 를 참조하십시오.

  8. 대화와 계속 상호작용하여 대화가 이를 통해 플로우되는 방법을 확인하십시오.

    • 테스트 발화를 찾아 다시 제출하기 위해 위로 키를 눌러 최근 입력을 모두 볼 수 있습니다.
    • 대화 분할창에서 이전 테스트 발화를 제거하고 다시 시작하려면 지우기 링크를 클릭하십시오. 테스트 발화 및 응답이 제거될 뿐만 아니라 이 조치가 대화와 상호작용의 결과로 설정된 컨텍스트 변수값을 모두 지웁니다.

다음에 수행할 작업

테스트할 때 표시되는 문제를 해결하도록 대화 상자를 변경하십시오.

  • 잘못된 인텐트 또는 엔티티를 인식하고 있는지 판별하는 경우 인텐트 또는 엔티티 정의를 수정해야 합니다.
  • 올바른 의도와 실체가 인식되고 있지만 대화 상자에서 잘못된 노드가 트리거되는 경우, 조건이 올바르게 작성되었는지 확인하십시오.

대화 상자 노드 복사

노드를 복제하여 대화 트리 바로 뒤에 피어 노드로 정확히 해당 노드의 복사본을 생성할 수 있습니다. 복사된 노드 자체에는 원래 노드와 동일한 이름이 제공되지만 - copyn 항목이 추가되어 있습니다. 여기서 n 의 경우 1로 시작하는 숫자입니다. 동일한 노드를 두 번 이상 복제하는 경우 이름의 n 항목은 사본을 서로 구별하는 데 도움이 되도록 각 사본에 대해 하나씩 증가합니다. 노드에 이름이 없는 경우, copy*n*이라는 이름이 부여됩니다.

사용자가 하위 노드를 포함하는 노드를 복제하는 경우 하위 노드도 함께 복제됩니다. 복사된 하위 노드는 원래 하위 노드와 정확히 동일한 이름을 가집니다. 원래의 하위 노드로부터 복사된 하위 노드를 구별하는 유일한 방법은 상위 노드 이름의 copy 참조입니다.

  1. 복사하려는 노드에서 Node Node 클릭한 다음, 복제를 선택합니다.

  2. 복사된 노드의 이름을 바꾸거나 조건을 편집하여 다른 노드와 구분하십시오.

대화 상자 노드 이동

작성하는 각 노드를 대화 트리의 다른 위치로 이동할 수 있습니다.

이전에 작성된 노드를 플로우의 다른 영역으로 이동하여 대화를 변경할 수 있습니다. 다른 분기의 동위 또는 피어가 되도록 노드를 이동할 수 있습니다.

  1. 이동하려는 노드에서 Node Node 클릭한 다음 이동을 선택합니다.

  2. 이 노드를 이동할 위치에서 가까운 트리에 있는 대상 노드를 선택하십시오. 이 노드를 대상 노드 앞이나 뒤에 배치할지 또는 대상 노드의 하위 노드로 만들지 선택하십시오.

폴더가 있는 대화 구성

대화 노드를 폴더에 추가하여 함께 그룹화할 수 있습니다. 노드를 그룹화하는 이유는 다음과 같습니다.

  • 유사한 주제를 처리하는 노드를 함께 유지하면 쉽게 찾을 수 있습니다. 예를 들어, 사용자 계정 폴더의 사용자 계정에 대한 질문을 처리하는 노드와 지불 폴더의 지불 관련 쿼리를 처리하는 노드를 그룹화할 수 있습니다.
  • 특정 조건이 충족될 때만 대화 상자가 처리하도록 노드 세트를 그룹화합니다. $isPlatinumMember 와 같은 조건을 사용하여 현재 사용자가 추가 서비스를 받을 자격이 있는 경우에만 처리되는 추가 서비스를 제공하는 노드를 그룹화합니다.
  • 작업하는 동안 런타임에서 노드를 숨기려면 다음을 수행하십시오. false 조건이 있는 폴더에 노드를 추가하여 처리되지 않도록 할 수 있습니다.

폴더의 다음 특성은 폴더의 노드가 처리되는 방식에 영향을 미칩니다.

  • 조건: 조건이 지정되지 않은 경우 어시스턴트에서 폴더 내의 노드를 직접 처리합니다. 조건이 지정된 경우, 어시스턴트는 먼저 서비스 내의 노드를 처리할지 여부를 판별하기 위해 폴더 조건을 평가합니다.
  • 사용자 정의: 폴더에 적용하는 모든 구성 설정은 폴더의 노드에 상속됩니다. 예를 들어, 폴더의 다이그레션(digression) 설정을 변경하면, 폴더의 모든 노드가 변경 내용을 상속합니다.
  • 트리 계층: 폴더의 노드는 폴더가 루트 또는 하위 레벨의 대화 트리에 추가되는지 여부에 따라 루트 또는 하위 노드로 간주됩니다. 루트 레벨 폴더에 추가하는 루트 레벨 노드는 계속 루트 노드로 작동합니다. 예를 들어 폴더의 하위 노드가 되지 않습니다. 그러나 루트 레벨 노드를 다른 노드의 하위 폴더로 이동하는 경우 루트 노드가 다른 노드의 하위 노드가 됩니다.

폴더는 노드가 평가되는 순서에 영향을 주지 않습니다. 노드는 처음부터 마지막까지 계속 처리됩니다. 보조 기능이 트리를 따라갈 때, 폴더에 조건이 없거나 조건이 참이면, 폴더의 첫 번째 노드를 즉시 처리하고 트리에서 순서대로 계속 진행합니다. 폴더에 폴더 조건이 없는 경우, 폴더의 각 노드는 트리의 다른 개별 노드와 마찬가지로 취급됩니다.

폴더 추가

대화 트리에 폴더를 추가하려면 다음 단계를 완료하십시오.

  1. 대화 상자의 트리 보기에서 폴더 추가를 클릭합니다.

    폴더는 Anything else 노드 바로 앞에 있는 대화 트리 끝에 추가됩니다. 트리의 기존 노드를 선택하지 않은 경우에는 선택한 노드 뒤에 추가됩니다.

    Node 옵션 폴더를 트리의 다른 곳에 추가하려면, 폴더를 추가하려는 위치 앞의 노드에서, 폴더 추가( Node 옵션 ) 아이콘을 클릭한 다음, 폴더 이름( 폴더 추가 )을 선택합니다.

    기존 대화 분기 내의 하위 노드 뒤에 폴더를 추가할 수 있습니다. 그렇게 하려면, 하위 노드에서 Node Node 클릭한 다음, 폴더 추가를 선택합니다.

    폴더가 편집 보기에서 열립니다.

  2. 선택사항: 폴더 이름을 지정하십시오.

  3. 선택사항: 폴더에 대한 조건을 정의하십시오.

    조건을 지정하지 않은 경우, true가 사용되고 폴더의 노드가 항상 처리됨을 의미합니다.

  4. 폴더에 대화 노드를 추가하십시오.

    • 폴더에 기존 대화 노드를 추가하려면, 한번에 하나씩 폴더로 이동해야 합니다.

      이동하려는 노드에서 Node 클릭하고, Node 선택한 다음, 이동을 클릭하고, 폴더를 클릭합니다. 이동 대상으로 대상 폴더를 선택하십시오.

      노드를 이동하면 폴더 내의 트리 시작 부분에 추가됩니다. 따라서, 예를 들어, 연속적인 루트 대화 노드의 순서를 유지하려면 마지막 노드부터 먼저 시작하여 이동하십시오.

    • 대화 노드를 폴더에 추가하려면 폴더의 Node Node 클릭한 다음, 폴더에 노드 추가를 선택합니다.

      대화 노드는 폴더 내에서 대화 트리의 끝에 추가됩니다.

폴더 삭제

폴더만 단독으로 삭제하거나 폴더와 폴더 내의 모든 대화 노드를 삭제할 수 있습니다.

폴더를 삭제하려면 다음 단계를 완료하십시오.

  1. 대화 탭의 트리 보기에서, 삭제하려는 폴더를 찾으십시오.

  2. 폴더에서 Node 옵션 아이콘 Node 옵션 을 클릭한 후 삭제를 선택하십시오.

  3. 다음 중 하나를 수행하십시오.

    • 폴더만 삭제하고 폴더에 있는 대화 노드를 유지하려면 폴더 내의 노드 삭제 확인란의 선택을 해제한 다음, 예, 삭제하십시오를 클릭하십시오.
    • 폴더와 폴더에 있는 모든 대화 노드를 삭제하려면, 예, 삭제하십시오를 클릭하십시오.

폴더만 삭제한 경우 폴더에 있던 노드가 대화 트리에서 폴더가 위치했던 지점에 표시됩니다.

대화 상자 노드 한계

스킬당 작성할 수 있는 대화 노드의 수는 플랜 유형에 따라 다릅니다.

플랜 세부사항
계획 스킬당 대화 상자 노드 수
Enterprise 100,000
Premium(레거시) 100,000
Plus 100,000
평가판 25,000
Lite 25,000

트리에서 미리 채워진 ' welcome '와 ' anything_else ' 대화 노드도 총 개수에 포함됩니다.

트리 깊이 제한: 대화 상자는 2,000개의 대화 상자 노드 하위 항목을 지원합니다. 대화 상자는 20개 이하의 항목이 있을 때 가장 잘 작동합니다.

해당 노드 ID로 대화 노드 찾기

노드 ID로 대화 노드를 검색할 수 있습니다. 전체 노드 ID를 검색 필드에 입력하십시오. 다음 이유로 알려진 노드 ID와 연관된 대화 노드를 찾을 수 있습니다.

  • 로그를 검토하며, 로그는 해당 노드 ID로 대화 섹션을 참조합니다.
  • 대화 트리에서 볼 수 있는 노드에 API 메시지 출력의 nodes_visited 특성에 나열된 노드 ID를 맵핑하려고 합니다.
  • 대화 런타임 오류 메시지가 구문 오류에 대해 알리며, 노드 ID를 사용하여 수정해야 하는 노드를 식별합니다.

노드 ID를 기반으로 하여 노드를 발견하는 또 다른 방법은 다음과 같은 단계를 따릅니다.

  1. 대화 페이지의 대화 트리에서 노드를 선택하십시오.

  2. 현재 노드에 대해 열려 있는 경우 편집 보기를 닫으십시오.

  3. 웹 브라우저의 위치 필드에 다음과 같은 예와 유사한 구문의 URL 표시되어야 합니다

    https://{location}.assistant.watson.cloud.ibm.com/{location}/{instance-id}/skills/{skill-id}/build/dialog#node={node-id}

  4. 현재 {node-id} 값을 찾고자 하는 노드의 ID로 바꾸고, 새로운 URL 제출합니다.

  5. 필요한 경우 편집된 URL을 다시 강조표시하고 다시 제출하십시오.

페이지가 새로 고쳐지고 대화 노드에 대한 초점을 지정한 노드 ID로 바꿉니다. 노드 ID가 슬롯, 찾음 또는 찾을 수 없음 슬롯 조건, 슬롯 핸들러, 슬롯 핸들러 또는 조건부 응답인 경우, 슬롯 또는 조건부 응답이 정의된 노드에 초점이 맞춰지고 해당 모달이 표시됩니다.

계속 노드를 찾을 수 없는 경우, 대화 스킬을 내보내고 JSON 편집기를 사용하여 스킬 JSON 파일을 검색할 수 있습니다.

내 대화에는 몇 개의 노드가 있습니까?

대화 스킬에서 대화 노드 수를 보려면 다음 중 하나를 수행하십시오.

  • 어시스턴트와 이미 연관되지 않은 경우에는 대화 스킬을 어시스턴트에 추가한 후 어시스턴트의 기본 페이지에서 해당 스킬 타일을 확인하십시오. 훈련된 데이터 섹션에는 대화 노드 수가 나열됩니다.

  • /dialog_nodes API 엔드포인트에 GET 요청을 보내고, include_count=true 파라미터를 포함합니다. 예를 들어, 다음과 같습니다.

    curl -u "apikey:{apikey}" "{url}/v1/workspaces/{workspace_id}/dialog_nodes?version=2018-09-20&include_count=true"
    

    여기서 {url}은 인스턴스에 적합한 URL입니다. 자세한 정보는 서비스 엔드포인트를 참조하십시오.

    응답에서, total 오브젝트의 pagination 속성에는 대화 노드 수가 포함됩니다.

총계가 예상보다 큰 경우, 앱에서 작성한 대화 상자가 JSON 객체로 변환되었기 때문일 수 있습니다. 단일 노드의 일부로 보이는 일부 필드는 기본 JSON 객체에서 별도의 대화 상자 노드로 구성되어 있습니다.

  • 각 노드 및 폴더는 자체 노드로 표시됩니다.
  • 단일 대화 노드와 연관된 각 조건부 응답은 개별 노드로 표시됩니다.
  • 슬롯이 있는 노드의 경우 각 슬롯, 슬롯 찾음 응답, 슬롯 찾을 수 없음 응답, 슬롯 핸들러 및 "모든 정보 프롬프트" 응답(설정된 경우)이 개별 노드입니다. 사실상 세 개의 슬롯이 있는 하나의 노드는 11개의 대화 노드와 동일할 수 있습니다.