대화 빌더에서 엔티티, 확인 또는 메시지 노드를 생성한 후 Kore.ai에서 다음을 수행할 수 있습니다.
- 최종 사용자에게 표시되는 기본 메시지 또는 사용자 프롬프트를 수정합니다.
- 새 프롬프트 또는 메시지를 추가합니다.
- 채널별 프롬프트 또는 메시지를 추가합니다.
프롬프트 유형
대화 작업은 두 가지 유형의 사용자 프롬프트를 지원합니다.
- 표준: 대화 빌더에서 노드를 추가할 때 정의된 프롬프트는 표준 프롬프트 또는 기본 프롬프트입니다. 노드에 표준 프롬프트가 여러 개 정의된 경우 플랫폼은 최종 사용자에게 표시할 임의의 메시지를 선택합니다.
- 채널별: 선택적으로 이메일, SMS, Twitter 등과 같은 특정 채널에 대한 사용자 프롬프트를 정의합니다. 채널에 따라 숫자 슬라이더, 날짜 및 시간 선택기, 범위 선택기 등의 위젯을 사용할 수 있습니다.
프롬프트 편집기
프롬프트 편집기에는 다음 기능을 제공하는 세 개의 탭이 있습니다.
- 기본: 사용자 프롬프트를 정의하고 형식을 지정하는 기본 편집기 컨트롤 및 HTML입니다. 텍스트를 입력한 다음 굵게, 기울임꼴, 머리글 스타일, 하이퍼링크, 순서 있는 목록 및 순서 없는 목록의 버튼을 사용하고 라인을 삽입하여 형식을 지정합니다.
- 자바스크립트: 사용자 프롬프트를 정의, 형식 지정 및 렌더링하는 고급 JavaScript 편집기입니다.
- 미리 보기: 최종 사용자에게 표시되는 마크업으로 렌더링된 출력 메시지의 샘플을 봅니다.
다음은 사용자 정의 형식으로 날씨 API의 응답을 사용자에게 제공하는 항공편 예약 봇의 JavaScript 메시지입니다. 오류 프롬프트의 경우 재시도 순서로 프롬프트 표시 토글을 활성화한 경우 각 오류 프롬프트 메시지가 표시되기 전 핸들바 아이콘이 표시됩니다. 이 아이콘을 사용하여 해당 순서대로 표시되도록 메시지 순서를 변경할 수 있습니다.
사용자 프롬프트 설정
엔티티 노드, 확인 노드 또는 메시지 노드의 구성 요소 속성 탭에서 프롬프트 메시지 또는 봇 메시지를 추가하거나 편집할 수 있습니다. 엔티티 노드 및 확인 노드의 경우 프롬프트라고 하며 메시지 노드의 경우 응답이라고 합니다.
- 대화 상자 빌더에서 프롬프트 또는 응답을 설정하려는 각 노드 옆에 있는 + 아이콘을 클릭합니다.
- 확인(또는 엔티티 또는 메시지) > 새 확인(또는 엔티티 또는 메시지) 노드를 선택합니다.
- 확인(또는 엔티티 또는 메시지) 창은 기본적으로 구성 요소 속성 탭이 선택되어 표시됩니다.
- 사용자 프롬프트(또는 봇 응답) 섹션에서 관리를 클릭합니다. 참고: 기본 샘플 메시지의 텍스트를 편집하려면 관리를 클릭하지 않고 텍스트 상자에서 직접 메시지를 수정하고 Enter를 누릅니다.
- 다음 중 하나를 수행합니다.
- 컨텍스트 개체 변수 또는 javascript 코드를 추가하여 기본 샘플 메시지를 편집하려면 샘플 메시지를 클릭합니다. 메시지 편집기가 열립니다.
- 새 프롬프트 메시지를 추가하려면 프롬프트 메시지 추가/프롬프트 관리를 클릭합니다. 메시지 편집기가 열립니다.
- 채널 드롭다운 목록에서 모든 채널이 기본값입니다. 채널별 메시지를 생성하려면 목록에서 채널을 선택합니다.
- 메시지 편집기에서 일반 텍스트 탭이 기본적으로 선택됩니다. Javascript 메시지를 작성하려면 JavaScript 탭을 클릭합니다.
참고: {{variable brackets}}로 저장된 컨텍스트 변수를 사용할 수 있습니다. 예: ‘안녕하세요 {{context.session.UserContext.firstName}}. 무엇을 도와드릴까요?’ - 메시지를 작성하고 저장을 클릭합니다.
봇 응답을 더 추가하려면 2b단계부터 반복합니다.
일반 텍스트 프롬프트
편집기에서 일반 텍스트 탭을 사용하고 기본 편집기 컨트롤 및 HTML을 사용하여 사용자 프롬프트를 작성합니다. 텍스트를 입력한 다음 굵게, 기울임꼴, 머리글 스타일, 하이퍼링크, 순서 있는 목록 및 순서 없는 목록의 형식화된 버튼을 사용하여 텍스트 형식을 지정합니다. 일반 텍스트 탭은 다음 마크업을 지원합니다.
마크다운 | 출력 |
---|---|
#h1 | 제목 1 |
#h2 | 제목 2 |
#h3 | 제목 3 |
#h4 | 제목 4 |
#h5 | 제목 5 |
#h6 | 제목 6 |
“`안녕하세요”` | |
*굵게* | 굵게 |
~기울임~ | 기울임 |
[링크](http://www.google.com) | 링크 |
![이미지](https://kbob.github.io/images/sample-4.jpg) | |
순서 1. 첫 번째입니다 2. 두 번째입니다 |
순서
|
글머리 기호 * 첫 번째입니다 * 두 번째입니다 |
글머리 기호
|
안녕! 이것은 >>들여쓰기입니다 | |
이것은 밑줄입니다 ___ | 이것은 밑줄입니다 ___ |
이것은 <br> 새로운 라인 | 이것은 새로운 라인 |
JavaScript 프롬프트 또는 응답
편집기의 JavaScript 탭에서 사용자 정의 코드를 추가하고 시스템 변수와 세션 변수를 사용하여 사용자 프롬프트 메시지를 처리할 수 있습니다. 다음은 장소의 일기 예보를 표시하기 위한 샘플 코드입니다.
var loc=context.weatherapi.response.body.query.results.channel.item.condition.text.toLowerCase(); print("Here are the details:\n"); if(loc.indexOf("clear")>=0) { print('Its clear outside.'); } else if(loc.indexOf("sunny")>=0) { print("Its sunny outside"); } else if(loc.indexOf("cloud")>=0) { print("Its very cloudy day"); } else if (loc.indexOf('snow')>=0) { print('Its snowy day'); } else if(loc.indexOf('rain')>=0) { print('Yes, it looks like rainy day.'); } else if(loc.indexOf('breeze')>=0) { print("It's very breezy out there."); } else if(loc.indexOf('wind')>=0) { print("It's very windy out there."); } else if(loc.indexOf('shower')>=0) { print("It showering outside."); } print("Weather condition: " + context.weather +"\n"); print("Updated at: " + context.lastupdate+"\n"); print("Temperature: " + context.temp+"\n"); print("Wind: " + context.wind+"\n"); print("Pressure: " + context.pressure+"\n"); print("Visibility: " + context.humidity+"\n"); print("Humidity: " + context.visibility+"\n");
자세한 내용은 작업에서 세션 및 컨텍스트 변수 사용하기를 참조하세요.
프롬프트 또는 응답 미리 보기
미리 보기 탭에서 최종 사용자에게 마크업과 함께 표시할 렌더링된 출력 메시지의 샘플을 볼 수 있습니다. 컨텍스트 변수를 포함한 코드의 출력을 렌더링하려면 탭에서 컨텍스트 변수를 정의하고 키 및 값 상자를 사용하여 미리 보기를 위한 유효한 샘플 출력을 렌더링합니다.
채널별 사용자 프롬프트
기본적으로 대화 작업은 모든 채널에서 표준 사용자 프롬프트를 설정합니다. 그러나 기본 응답 대신 해당 채널의 최종 사용자에게 표시할 하나 이상의 채널에 특정 응답을 정의할 수 있습니다. 채널별 응답을 정의하려면 채널(예: Kore.ai)를 선택한 다음 필요에 따라 JavaScript 탭에서 사용자 프롬프트를 정의하세요. 각 채널에는 하나의 응답만 정의할 수 있습니다.
참고: 다음 키를 사용하여 기본값을 반환합니다. response.message – 기본 메시지를 문자열로 반환합니다. response.message.choices – 옵션 선택 또는 확인 메시지 유형을 배열로 반환합니다.
- Slack 채널 재정의 예시
var message = {}; var attachments = []; var attachment = { 'text': "Exception occurred during API execution", 'color': '#FFCC00', 'attachment_type': 'default' }; attachments.push(attachment); message.attachments = attachments; print(JSON.stringify(message));
- FaceBook 채널 재정의 예시
var message = { text: response.message }; var buttons = []; for (var i = 0; i < response.choices.length; i++) { var choiceItem = response.choices[i]; if (choiceItem.length > 20) { choiceItem = choiceItem.substring( 0, 18) + '..'; } var element = { content_type: 'text', title: choiceItem, payload: choiceItem }; buttons.push(element); } message.quick_replies = buttons; print(JSON.stringify(message));
- 이메일 채널 재정의 예시
var message = {}; var text = response.message + ' <br> '; for (var i = 0; i < response.choices.length; i++) { text = text.concat( '<u> + response.choices[i] + ' < /u> <br>'); } message.text = text; print(JSON.stringify(message));
- SMS 채널 재정의 예시
var message = {}; var indexArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' ]; var text = response.message + '\\n'; for (var i = 0; i < response.choices .length; i++) { text = text.concat(indexArray[i] + ') ' + response.choices[ i] + '\\n'); } message.text = text; print(JSON.stringify(message));