서비스 노드는 타사 웹 서비스에 REST 또는 SOAP 요청을 하는 API 서비스를 추가하는 데 사용할 수 있는 대화 작업의 구성 요소 유형입니다. 엔티티 또는 다른 노드를 사용하여 사용자 입력을 확인하는 API 요청에 필요한 매개 변수가 있을 때 이 노드를 사용할 수 있습니다. 서비스 유형을 다음과 같이 정의할 수 있습니다.
- 맞춤형 서비스 – 타사 웹 서비스에 대한 API 요청을 정의합니다. 이 설정은 기본 설정입니다.
- HTML to Image – JavaScript를 사용하여 이미지로 렌더링할 HTML을 정의합니다. 예를 들어, 이미지로 변환하려는 HTML 마크업을 문자열로 포함하는 웹 서비스 응답에 HTML 또는 키 값을 구성합니다.
- URL to Image – 이미지를 렌더링하기 위해 로드할 웹 페이지 URL을 정의합니다.
- 사용자 정의 인증 서비스 – 작업 흐름에 필요한 인증 서비스를 제공하는 타사 애플리케이션에 대한 URL을 정의합니다.
- 경고 구독 서비스 – 대화 여정의 일부로 사용자에게 능동적으로 보낼 상황별 관련 경고를 정의합니다.
- 데이터 테이블 서비스 – 봇에 지정된 모든 주어진 데이터 테이블/테이블 뷰의 데이터를 쿼리하고 조작하려면 CRUD 작업을 정의합니다.
설정
대화 작업에서 서비스 노드를 설정하려면 다음 단계를 수행합니다. 참고: 플랫폼의 v9.0 이후에는 서비스 노드가 봇 조치 노드로 분류됩니다. 봇 조치 노드에 대해 자세히 알아보려면 여기를 클릭하세요.
노드 추가
- 서비스 노드를 추가하려는 대화 작업을 엽니다.
- 지정된 위치에 서비스 노드를 추가합니다. 노드를 추가하는 단계의 경우, 여기를 참조하세요.
- 서비스 창은 기본적으로 구성 요소 속성 탭이 선택되어 표시됩니다.
- 연결 속성을 설정할 수 있습니다.자세한 내용은 여기를 참조하세요.
노드 설정
- 구성 요소 속성 탭의 일반 설정 섹션에서 서비스 노드의 이름 및 표시 이름 이름을 입력합니다. 예: FetchWeather.
- 드롭다운 목록에서 서비스 유형을 선택합니다.
- 맞춤형 서비스 – 타사 웹 서비스에 대한 API 요청을 정의합니다. 이 설정은 기본 설정입니다.
- HTML to Image – JavaScript를 사용하여 이미지로 렌더링할 HTML을 정의합니다. 예를 들어, 이미지로 변환하려는 HTML 마크업을 문자열로 포함하는 웹 서비스 응답에 HTML 또는 키 값을 구성합니다.
- URL to Image – 이미지를 렌더링하기 위해 로드할 웹 페이지 URL을 정의합니다.
- 사용자 정의 인증 서비스 – 작업 흐름에 필요한 인증 서비스를 제공하는 타사 애플리케이션에 대한 URL을 정의합니다. 더 알아보기.
- 경고 구독 서비스 – 대화 여정의 일부로 사용자에게 능동적으로 보낼 상황별 관련 경고를 정의합니다.
- 선택한 서비스 유형에 따라 각 드롭 다운 목록 또는 인증 URL에서 유형/하위 유형을 선택합니다.
- 요청 정의 섹션에서 요청 정의를 클릭합니다.
- <ServiceXXXX >를 위한 요청 정의 대화가 표시됩니다. 선택한 서비스 유형에 따라 이 항목의 다음 섹션 중 하나를 참조하세요. 참고: 사용자 정의 인증 서비스의 경우 요청 정의 섹션이 적용되지 않는 대신 응답 섹션을 확인할 수 있습니다. 더 알아보기.
- 변수 네임스페이스 섹션에서 이 노드와 전환을 실행할 변수 네임스페이스를 연결합니다. 이 옵션은 봇에 변수 네임스페이스를 사용하도록 설정한 경우에만 표시됩니다. 작업 수준 설정을 사용하거나 이 노드에 사용자 정의할 수 있습니다. 자세한 내용은 네임스페이스 관리를 참조하세요.
- 노드의 연결 탭에서 대화 작업에서 어떤 노드를 다음에 실행할지 결정할 수 있습니다. 대화 작업에서 엔티티 또는 컨텍스트 개체의 값을 기반으로 조건문을 작성하거나 전환을 위해 의도를 사용할 수 있습니다. 구성 요소 전환을 설정하려면 다음 단계를 수행하세요.
- 서비스 창에서 연결 탭을 클릭합니다.
- 연결 탭의 연결 규칙 섹션의 기본값 드롭다운 목록에서 노드를 선택할 수 있습니다.
- 왼쪽 패널에서 기존 서비스 노드를 끌어서 놓을 수 있습니다.
- 조건부 흐름을 설정하려면 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 추가를 클릭합니다.
맞춤형 서비스 정의
- 서비스 유형에서 맞춤형 서비스를 선택할 때 하위 유형 필드에서 다음 옵션 중 하나를 선택합니다:
- REST – API 웹 서비스가 REST 서비스를 사용하고 있습니다.
- SOAP – API 웹 서비스가 SOAP 서비스를 사용하고 있습니다.
- 요청 정의 섹션에서 요청 정의를 클릭하여 웹 서비스 유형의 설정을 지정합니다.
- <서비스 노드 이름>을 위한 요청 정의 대화가 다음 설명에서 보여지듯 표시됩니다.
- 요청 URL 필드의 첫 번째 필드에서 요청에 사용되는 HTTP 메소드를 선택합니다. 다음을 선택할 수 있습니다.
- POST – 서버로 데이터를 보낼 때 사용합니다. 예: HTML 양식을 사용한 고객 정보, 파일 업로드 등.
- PUT – 대상 리소스의 내용을 전송된 내용으로 대체합니다.
- PATCH – 기존 대상 리소스의 내용에 전송된 내용을 추가합니다.
- DELETE – 기존 대상 리소스의 내용을 삭제합니다.
- GET – 기존 대상 리소스의 내용을 반환합니다.
- 요청 URL의 두 번째 필드에 Kore.ai에서 처리할 대화 작업 응답을 위한 URL을 지정합니다. 예: http://koremessenger.com/postURL. 필요한 경우 URL의 일부로 쿼리 또는 경로 매개 변수를 추가합니다. 엔티티 노드 값을 매개 변수로 사용하려면
Context
개체에 접근하는 데 다음 구문을 사용하세요.context.entities.topic
의 경우 https://myDomain.com/{{context.entities.topic}}입니다.{{ context.object }}
에 이중 괄호를 사용해야 합니다. 자세한 내용은 컨텍스트 개체를 참조하세요.- 선택적으로 고급 표시를 클릭하고
- Kore.ai 봇의 접근을 Kore.ai 커넥터 에이전트를 사용하는 경우 커넥터를 사용한 접근 필드에서 예를 선택합니다. 자세한 내용은 Kore.ai 커넥터 사용을 참조하세요.
- PII(개인 식별 정보) 데이터 비식별화에서 예를 클릭하고 사용자가 봇과 공유하는 모든 민감 정보 유형을 삭제합니다. 자세한 내용은 개인 식별 정보 삭제하기를 참조하세요.
- 인증 탭에서 이 서비스 호출에 필요한 권한 부여 유형을 선택하거나 필요한 경우 새 권한 부여 유형을 정의합니다. 자세한 내용은 인증 설정을 참조하세요.
- 헤더 탭에서 지정된 요청 URL 접근에 필요한 경우 헤더를 키/값 쌍으로 지정합니다. 인증 헤더는 인증 탭에 지정된 권한 부여 유형에 따라 자동으로 생성됩니다. 다른 표준 헤더를 정의해야 합니다. 예: 콘텐츠 유형, 수락 또는 사용자 정의 헤더. 여기에 정의된 헤더는 이 서비스 노드에만 적용 가능합니다.
- 본문 탭에서 본문 콘텐츠 유형을 선택합니다. 다음을 선택할 수 있습니다.
- application/x-www-form-urlencoded – Multipart/Form-data라고도 하며 사용자가 양식에서 파일을 업로드할 수 있도록 하는 경우 HTTP POST 요청 메소드를 통해 파일을 전송하는 인코딩 유형입니다. 봇 플랫폼에서 인코딩된 키/값 쌍을 추가할 수 있습니다.
- application/json – JSON을 사용하여 Kore.ai 서버와 봇 웹 애플리케이션 간에 데이터를 전송합니다. 모든 JSON은 아무런 처리 없이 요청과 함께 전송됩니다.
- application/xml – SOAP 서비스의 경우 POST 메소드를 사용하여 XML 페이로드를 전달합니다.
context.entities.topic
의Context
개체: https://myDomain.com/{{context.entities.topic}}에 액세스하기 위해 다음 구문을 사용하여 엔티티 노드 값을 XML의 일부로 전달할 수 있습니다.{{ context.object }}
에 이중 괄호를 사용해야 합니다. 자세한 내용은 컨텍스트 개체를 참조하세요.
- 테스트 요청 탭에서 테스트를 클릭하여 지정된 인증 유형, HTTP 헤더, 본문 매개 변수(정의된 경우)를 사용하여 선택적으로 API 요청 URL을 전송합니다. 응답은 텍스트 영역에 표시됩니다. 샘플 응답으로 저장을 클릭하여 테스트 응답을 이 노드의 샘플 응답으로 저장하세요.
- 저장을 클릭하여 서비스 노드의 요청을 저장하고 <서비스 노드 이름>의 요청 정의 대화를 닫습니다.
- 선택적으로 고급 표시를 클릭하고
- 샘플 응답 섹션에서 선택적으로 샘플 응답 추가를 클릭하여 샘플 응답을 수동으로 입력하거나 붙여넣는 데 사용할 수 있는 샘플 응답 추가 대화를 표시합니다.
- 선택적으로 샘플 응답 추가 드롭다운 목록에서 다음을 선택할 수 있습니다.
- JSON – 다른 노드에서 변수로 사용되는 요청 URL 응답에서 사용 가능한 JSON 키/값 쌍의 목록입니다.
- RAW – 다른 노드에서 변수로 사용되는 키/값 쌍의 목록입니다.
- 구성 요소 속성 섹션의 고급 컨트롤에서 서비스 호출을 종료하기 위한 타임아웃을 구성할 수 있습니다. 기본적으로 20초로 설정되며 5~20초 사이의 값을 선택할 수 있습니다.
이미지로 변환할 URL 정의
- 서비스 유형에서 URL to Image를 선택하면 유형 설정이 읽기 전용이 됩니다.
- 요청 정의 섹션에서 서비스 유형으로 URL to Image를 선택한 경우 요청 정의를 클릭하여 설정을 지정합니다. <서비스 노드 이름>을 위한 요청 정의 대화가 다음 설명에서 보여지듯 표시됩니다.
- URL to Convert 필드에서 이미지의 URL을 입력합니다. URL에서
Context
개체 키를 사용할 때 구문은 이중 대괄호로 묶는 것입니다. 예: https://myURLimage.com/{{context.entities.imageName}}. - 렌더링 크기 섹션에서 이미지 크기의 이름을 지정합니다. 예: iPhone 또는 태블릿.너비 및 높이를 픽셀로 입력한 다음 +추가를 클릭하여 추가적인 크기를 추가하거나 추가를 클릭하여 대화를 저장한 후 닫습니다.
- 저장을 클릭하여 서비스 노드의 요청을 저장하고 <서비스 노드 이름>의 요청 정의 대화를 닫습니다.
이미지로 변환할 HTML 정의
- 서비스 유형에서 HTML to Image를 선택하면 유형 설정이 읽기 전용이 됩니다.
- 요청 정의 섹션에서 서비스 유형으로 HTML to Image를 선택한 경우 요청 정의를 클릭하여 설정을 지정합니다. <서비스 노드 이름>을 위한 요청 정의 대화가 다음 설명에서 보여지듯 표시됩니다.
- HTML to Convert 필드에서 이미지의 HTML을 입력합니다.
- 렌더링 크기 섹션에서 이미지 크기의 이름을 지정합니다. 예: iPhone 또는 태블릿.너비 및 높이를 픽셀로 입력한 다음 +추가를 클릭하여 추가적인 크기를 추가하거나 추가를 클릭하여 대화를 저장한 후 닫습니다.
다음은 HTML을 이미지로 변환하는 예제입니다.
<head> <link href="../assets/styles.min.css" rel="stylesheet"/> <title>HTML: Print Wide HTML Tables</title> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <style> .style1 { border-collapse: collapse; } .style1 th { background-color: #DDDDDD; white-space: nowrap; } .style1 .d { white-space: nowrap; } .style1 .n { padding-left: 20px; text-align: right; } </style> </head> <body> <table id="table1" class="style1" border="1" cellpadding="4" cellspacing="0"> ///TODO Add Table Rows here. </table> <input type="button" id="print-button" value="Make this table printable contact@ {{context.session.UserContext.emailId}}"/> <script> /* * HTML: Print Wide HTML Tables * http://salman-w.blogspot.com/2013/04/printing-wide-html-tables.html */ $(function() { $("#print-button").on("click", function() { var table = $("#table1"), tableWidth = table.outerWidth(), pageWidth = 600, pageCount = Math.ceil(tableWidth / pageWidth), printWrap = $("<div></div>").insertAfter(table), i, printPage; for (i = 0; i < pageCount; i++) { printPage = $("<div></div>").css({ "overflow": "hidden", "width": pageWidth, "page-break-before": i === 0 ? "auto" : "always" }).appendTo(printWrap); table.clone().removeAttr("id").appendTo(printPage).css({ "position": "relative", "left": -i * pageWidth }); } table.hide(); $(this).prop("disabled", true); }); }); </script> </body> </html>
알림 구독 서비스 정의
이제 봇 사용자를 자동으로 구독하여 대화 여정의 일부로 상황별 관련 알림을 보낼 수 있습니다. 예를 들어, 특정 날짜에 항공권을 예약하는 사람은 목적지 도시의 일기 예보에 대한 정기적인 업데이트를 받을 수 있도록 자동 구독됩니다. 알림 구독 서비스를 설정하려면 다음 단계를 수행하세요.
- 알림을 연결하려는 서비스 노드의 구성 요소 속성 탭을 엽니다.
- 일반 설정 섹션의 서비스 유형 드롭다운 목록에서 자동 구독 서비스를 선택합니다.
- 요청 정의를 클릭합니다. 참고: 알림 구독 서비스를 생성하려면 기존 경고 작업을 기반으로 해야 합니다. 사용자는 대화에서 연결 서비스 노드에 도달하면 경고 작업에 자동 구독됩니다.
- 스마트/자동 경고 대화 상자에서 알림 선택 드롭다운 목록에서 경고 작업을 선택합니다. 목록은 봇과 관련된 게시된 경고 작업으로만 구성됩니다.
- 아래 설명에 따라 필요한 정보를 입력합니다.
알림 구독(스마트 알림) 구성
일반적인 알림 설정에서 알림 매개 변수, 필터, 기타 필요한 세부 정보는 봇 사용자가 입력합니다. 알림을 위한 자동 구독이므로 개발자로서 이러한 세부 정보를 설정해야 합니다.
알림 매개 변수
선택한 알림에 따라 달라집니다. 알림 구독 서비스로 사용할 기본 매개 변수 값을 입력합니다. 이 예에서 알림에 대해 정의된 매개 변수는 주제 이름 및 뉴스 영역입니다. 목적지 도시의 일기 예보를 사용자에게 보내는 것이므로 매개 변수 값을 Weather Forecast 및 context.entity.destinationcity로 설정할 수 있습니다.
필터
선택한 알림에 따라 달라집니다. 알림 구독 서비스로 사용할 필터 조건을 입력합니다.
알림 빈도
알림 통지를 보낼 빈도를 입력합니다. 계획, 빈도, 시간 프레임을 선택해야 합니다.
- 계획 선택 드롭다운 목록에서 알림을 보내려는 시기에 따라 매일, 평일 또는 주말을 선택합니다.
- 빈도 선택 드롭다운 목록에서 하루에 여러 알림을 일정한 시간 간격으로 보내려면 Every를 선택하거나 하루 중 특정 시간에 하나의 알림을 보내려면 at을 선택합니다.
- 시간 선택 드롭다운 목록에서 위에서 선택한 빈도 값에 따라 시간 간격 값 또는 하루 중 시간을 선택합니다.
이 예에서는 매일 오전 6시를 선택했습니다. 즉, 매일 오전 6시에 알림이 사용자에게 전송됩니다.
스마트 알림 만료
다음 옵션 중 하나에서 사용자에게 알림을 보내는 시기를 설정합니다.
- 기간: 구독일로부터 입력한 일수가 지나면 통지 발송을 중지합니다.
- 통지 수: 입력한 수의 통지를 전송한 후 알림 발송을 중지합니다.
알림 업그레이드
기본 경고 작업(처음부터 선택한 게시된 경고)의 업그레이드된 버전이 게시되는 경우 알림의 예상 동작을 정의합니다.
- 기존 인스턴스 삭제 이 스마트 알림의 기존 구독이 모두 제거되고 사용자는 더 이상 알림을 받을 수 없습니다. 사용자는 대화를 실행하고 대화 여정에서 서비스 노드에 도달할 때만 업그레이드된 경고 작업에 자동으로 구독됩니다.
- 사용자가 수동으로 구독을 업그레이드하도록 허용 사용자는 선택한 채널에서 자동 구독 업그레이드를 안내하는 링크인 업그레이드 통지를 받습니다. 업그레이드가 성공하면 사용자는 성공 통지를 받습니다.
데이터 서비스 정의
- 서비스 유형에서 데이터 서비스 를 선택하면 유형 설정은 두 가지 옵션을 제공합니다.
- 테이블 – 데이터 테이블에서 CRUD 작업을 수행하려면 이 옵션을 선택합니다.
- 뷰 – 테이블 뷰에서 데이터를 가져오려면 이 옵션을 선택합니다.
참고: 봇에 테이블/뷰 액세스 권한이 있어야 합니다. 테이블/뷰의 소유자가 이 권한을 부여해야 합니다. 방법을 알아보려면 여기를 클릭하세요.
- 요청 정의 섹션에서 요청 정의를 클릭하여 수행하려는 작업을 지정합니다. 자세한 내용을 확인하려면 여기를 클릭하세요.