동적 선택 사용자 입력 통제
주제에서 가상 에이전트 동적 선택 사용자 입력 컨트롤을 사용하여 사용자가 사용할 수 있는 선택 목록 목록을 동적으로 만들 수 있습니다. 이러한 선택 항목은 테이블을 쿼리하거나 스크립트를 사용하여 동적으로 만듭니다.
선택 목록 표시
동적 선택 목록에는 페이지당 최대 10개의 항목이 포함됩니다. 10개 이상의 항목이 있는 경우 추가 항목을 표시하고 검색 결과를 필터링할 수도 있습니다. 선택 목록 프롬프트에는 사용자가 결과를 필터링하기 위해 선택할 수 있는 검색 아이콘이 포함되어 있습니다.
다중 선택 항목이 켜져 있으면 검색 결과를 필터링하기 위한 옵션 검색 필드 내에서 검색할 수 있습니다. 해당하는 모든 선택 사항을 선택하거나 입력한 다음 보내기 아이콘 을 선택합니다. LLM(Large Language Model)이 활성화 가상 에이전트된 를 통해 선택 항목을 보내면 LLM은 선택 항목이 유효성 검사 기준을 충족하는지 여부에 응답합니다.
채팅 창에 발언을 입력하여 LLM 지원 대화의 목록에서 선택 사항을 선택할 수도 있습니다. 입력 가상 에이전트 과 일치하는 항목이 없으면 유효한 선택이 아님을 알리고 다른 입력을 시도하라는 메시지를 표시합니다.
-
헤더 카드에는 설명 텍스트와 함께 크거나 작은 이미지 또는 YouTube 동영상 카드가 포함될 수 있습니다. 선택 목록에는 기본적으로 최대 5개의 항목이 포함되지만 검색 기능은 표시되지 않습니다. 5개 이상의 항목이 있는 경우 사용자는 추가 항목을 표시하도록 선택할 수 있습니다.
-
헤더 카드 아래에 표시되는 항목 수를 제어하려면 시스템 속성을 추가합니다 com.glide.cs.web_header_picker_page_limit . 값을 사용하여 선택 목록의 항목 수를 지정합니다. 시스템 속성 만들기에 대한 자세한 내용은 시스템 속성 추가를 참조하십시오.
동적 선택 목록 노드를 하나의 선택 항목으로만 채우면 노드를 테스트하거나 사용할 때 "[선택]을(를) [노드 이름]으로 사용했는데 맞습니까?"라는 메시지가 표시됩니다. 동적 선택 목록 노드에서 여러 선택 항목을 사용하여 이 메시지를 수신하지 않도록 합니다.
다음으로 이동하여 메시지 내용을 변경할 수도 있습니다. 을 클릭하고 시스템 속성을 편집합니다 glide.cs.retry_question_message . 이 메시지 값은 기본적으로 문자열입니다. {1}로 {0}했습니다. 맞습니까? 동적 선택 목록 외부의 여러 케이스에서 슬롯을 채우는 데 사용됩니다. 변경한 내용은 이 속성을 사용할 때마다 반영됩니다.
동적 선택 LLM 주제 검색을 위한 사용자 입력 제어 속성
| 속성 | 설명 |
|---|---|
| 노드 이름 | 주제 플로우에서 이 동적 선택 사용자 컨트롤 노드를 식별하는 이름입니다. |
| 선택 | |
| 선택 항목 채우기 기준 | 사용할 동적 변수의 유형입니다. 다음 옵션 중 하나를 선택합니다.
|
| 테이블 | 선택 항목을 채우는 방법으로 기록을 선택한 경우 검색할 테이블을 선택합니다. 이 필드는 기록 옵션을 선택한 경우에만 사용할 수 있습니다. |
| 선택 항목 필터링 | 조건 작성기를 사용하거나 가상 에이전트 디자이너 스크립트를 제공하는 옵션입니다. 다음 중 하나를 선택합니다.
이 필드는 기록 옵션을 선택한 경우에만 사용할 수 있습니다. |
| 사용자가 둘 이상의 선택 항목을 선택할 수 있도록 허용 | 사용자가 선택 목록에서 여러 항목을 선택할 수 있도록 허용하는 옵션입니다. |
| 고급 | |
| 헤더 카드 |
이미지 또는 YouTube 동영상을 포함할 수 있는 카드를 추가할 필드를 열려면 전환합니다. 자세한 내용은 정적 선택 또는 동적 선택 컨트롤에 헤더 카드 삽입 문서를 참조하십시오. |
| 사용자 프롬프트 적용 |
대규모 언어 모델(LLM)에서 생성된 메시지 대신 사용자에게 표시되는 사용자 지정 메시지에 대한 필드를 열려면 전환합니다. 일반 언어로 사용자 지정 메시지를 생성하거나, 스크립트를 입력하거나, 데이터 알약 선택기를 사용하여 조건을 정의할 수 있습니다. |
| 확인 |
사용자 입력의 유효성을 검사하는 스크립트를 추가합니다. 예를 들어 사용자가 유효한 이메일 주소를 입력했는지 확인합니다. |
| LLM에 대한 추가 지침 | 사용자 응답에 대한 데이터 형식, 제한 또는 기본값 추가와 같은 LLM에 대한 추가 지침입니다. 데이터 알약 선택기를 사용하여 일반 언어로 추가 지침을 생성하거나, 스크립트를 입력하거나, 조건을 정의할 수 있습니다. |
| 이 노드 숨기기 또는 건너뛰기 | |
| 다음과 같은 경우 이 노드를 조건부로 표시합니다. | 대화에 이 노드를 표시하기 위한 조건을 지정하는 노코드 조건문 또는 로우코드 스크립트입니다. 조건은 true로 평가되어야 합니다. |
| 다음과 같은 경우 사용자가 이 노드를 건너뛸 수 있도록 허용 |
사용자가 대화에서 이 노드를 건너뛸 수 있도록 허용하는 조건을 지정하는 코드 없는 조건문 또는 로우 코드 스크립트입니다. 조건은 true로 평가되어야 합니다. 조건 작성기 또는 스크립트를 사용하여 이 필드를 설정할 수 있습니다. |
LLM 주제 검색을 위한 동적 선택 사용자 입력 통제의 예
| 입력 속성 | 프롬프트 나열 |
|---|---|
선택 목록에는 페이지당 10개의 항목이 표시됩니다. 10개 이상의 결과가 반환되는 경우:
|
동적 선택 NLU 주제 검색을 위한 사용자 입력 통제 속성
| 속성 | 설명 |
|---|---|
| 노드 이름 | 주제 플로우에서 이 동적 선택 사용자 컨트롤 노드를 식별하는 이름입니다. |
| 변수 이름 | 이 프롬프트에 대한 사용자 응답을 저장하는 변수의 이름입니다. 변수 이름은 노드 이름 속성에서 자동으로 생성됩니다. |
| 프롬프트 | 사용자에 대한 프롬프트 또는 질문입니다. 프롬프트는 텍스트 문자열 또는 텍스트를 반환하는 스크립트일 수 있습니다. 이 값은 기본값이 지정되지 않은 경우에만 사용됩니다. 예: 이름이 무엇입니까? 서식 있는 텍스트를 생성하여 프롬프트의 스타일을 변경할 수 있습니다.
|
| NLU 엔터티 | 엔터티를 NLU 노드와 연결하는 옵션입니다. NLU 엔터티가 이 노드 가상 에이전트 의 입력 변수와 연결된 경우 사용자의 발언에 따라 지정된 값을 슬롯으로 채울 수 있습니다. 주제 의도와 연결된 엔터티 목록에서 엔터티를 선택합니다. 노드에 대한 엔터티를 지정하면 사용자에게 인식된 엔터티 토글 스위치를 확인하도록 묻지 않음이 표시됩니다. 사용하도록 설정하면 추출된 엔터티를 확인하라는 메시지가 표시되지 않습니다. 이 필드는 인스턴스에서 검색이 활성화된 경우에만 NLU 사용할 수 있습니다. |
| 선택 | |
| 선택 항목 채우기 기준 | 사용할 동적 변수의 유형입니다. 다음 옵션 중 하나를 선택합니다.
|
| 테이블 | 선택 항목을 채우는 방법으로 기록을 선택한 경우 검색할 테이블을 선택합니다. 이 필드는 기록 옵션을 선택한 경우에만 사용할 수 있습니다. |
| 선택 항목 필터링 | 조건 작성기를 사용하거나 가상 에이전트 디자이너 스크립트를 제공하는 옵션입니다. 다음 중 하나를 선택합니다.
이 필드는 기록 옵션을 선택한 경우에만 사용할 수 있습니다. |
| 사용자가 둘 이상의 선택 항목을 선택할 수 있도록 허용 | 사용자가 선택 목록에서 여러 항목을 선택할 수 있도록 허용하는 옵션입니다. |
| 기록 응답 메시지가 없습니다. | 테이블 검색에서 기록을 반환하지 않을 때 사용자에게 표시되는 메시지입니다. 메시지는 텍스트 문자열 또는 텍스트를 반환하는 스크립트일 수 있습니다. |
| 고급 | |
| 헤더 카드 |
이미지 또는 YouTube 동영상을 포함할 수 있는 카드를 추가할 필드를 열려면 전환합니다. 자세한 내용은 정적 선택 또는 동적 선택 컨트롤에 헤더 카드 삽입 문서를 참조하십시오. |
| 기본값 | |
| 기본값 | 질문 또는 프롬프트에 대한 사용자 응답의 미리 정의된 값입니다. 기본값 확인 필드에 정의된 응답은 사용자에게 기본값을 확인하도록 요청합니다. 사용자가 no로 응답하면 값이 null이 됩니다. 기본값은 텍스트 문자열 또는 텍스트를 반환하는 스크립트일 수 있습니다. 예를 들어 닷워킹을 사용하는 경우 기본값은 스크립트 변수 > 마지막 사용자 이름일 수 있습니다. 또는 스크립트를 사용하는 경우 기본값은 {{vaScripts.lastUsername}}일 수 있습니다. |
| 확인 메시지 | |
| 입력 완료 확인 | 노드 상호작용이 완료되면 사용자에게 표시되는 봇 응답입니다. 메시지는 텍스트 문자열 또는 텍스트를 반환하는 스크립트일 수 있습니다. 예를 들어 닷워킹을 사용하는 경우: 감사합니다(입력 변수 > 사용자 이름)! 또는 스크립트를 사용하는 경우 {{ vaInputs.username}} 감사합니다! |
| 기본값 확인 | 기본값 필드의 값이 올바른지 사용자에게 확인하도록 요청하는 메시지입니다. 이 메시지는 프롬프트 필드의 값 대신 사용됩니다. 텍스트 문자열 또는 텍스트를 반환하는 스크립트를 포함할 수 있습니다. 예를 들어 닷워킹을 사용하는 경우: 사용자(입력 변수 > 사용자 이름)입니까? 또는 스크립트를 사용하는 경우 확인 메시지는 {{vaScripts.lastUsername}}입니까?일 수 있습니다. |
| 대화 전환 | |
| 이 섹션은 인스턴스에서 검색이 활성화된 경우에만 NLU 사용할 수 있습니다. | |
| 사용자가 제목을 변경할 수 있도록 켜기 | 이 노드에 대한 예측을 활성화 NLU 하는 옵션입니다. 사용하도록 설정하면 사용자는 사용 중인 입력 컨트롤의 유형에 관계없이 텍스트를 입력하여 질문에 답할 수 있습니다. 가상 에이전트 을 사용하여 다른 기존 의도와 일치시키므로 사용자가 주제를 전환할 수 있습니다. |
| 이 노드 숨기기 또는 건너뛰기 | |
| 다음과 같은 경우 이 노드를 조건부로 표시합니다. | 대화에 이 노드를 표시하기 위한 조건을 지정하는 노코드 조건문 또는 로우코드 스크립트입니다. 조건은 true로 평가되어야 합니다. |
| 다음과 같은 경우 사용자가 이 노드를 건너뛸 수 있도록 허용 | 사용자가 대화에서 이 노드를 건너뛸 수 있도록 허용하는 조건을 지정하는 코드 없는 조건문 또는 로우 코드 스크립트입니다. 조건은 true로 평가되어야 합니다. 조건 작성기 또는 스크립트를 사용하여 이 필드를 설정할 수 있습니다. |
| 다음과 같은 경우 재요청을 건너뜁니다. | 사용자가 대화에서 다시 요청을 건너뛸 수 있도록 하는 조건을 지정하는 코드 없는 조건문 또는 로우 코드 스크립트입니다. 주제 루프백 또는 대화 상자 법칙을 통해 이전 노드로 다시 돌아가면 가상 에이전트가 이 노드를 무시하고 원래 값을 자동으로 유지합니다. |
NLU 주제 검색을 위한 동적 선택 사용자 입력 통제의 예
| 입력 속성 | 프롬프트 나열 |
|---|---|
선택 목록에는 페이지당 10개의 항목이 표시됩니다. 10개 이상의 결과가 반환되는 경우:
|
|
선택 목록에는 페이지당 5개의 항목이 포함되어 있습니다. 5개 이상의 결과가 반환되면 목록에 더 많은 결과를 표시하는 옵션이 제공됩니다. 주: 헤더 카드를 사용하면 검색 기능이 억제됩니다. |
동적 선택 스크립트 예시
(function execute() {
var pagingUtil = new global.VirtualAgentChoicePagingUtil(null, "sys_user", 10, "user_name,name",
"active=true", null, vaVars);
var selectedOptions = pagingUtil.getSavedSelectedOptions("user", vaSystem);
if (!selectedOptions || selectedOptions.length == 0) {
// Secondary labels can be passed to selected options
selectedOptions.push({ "value": "abel.tuter", "label": "Abel Tuter"
,"secondary_label": ["abel.tuter@example.com", "male"]
});
selectedOptions.push({ "value": "Beth.anglin", "label": "Beth Anglin"
,"secondary_label": ["beth.anglin@example.com", "female"]
});
}
vaSystem.setSelectedOptions(selectedOptions, "user", false);
// Topic authors have the ability to define which values should go in the
// secondary labels by adding secondary label functions
pagingUtil.addSecondaryLabelFunction(function (gr) {
return gr.getValue("email");
});
pagingUtil.addSecondaryLabelFunction(function (gr) {
return gr.getValue("gender");
});
var gr = pagingUtil.getPagingGlideRecordSecure("name", false);
var options = pagingUtil.getSecureOptions(gr, null,'user_name', ['user_name']);
return options;
})()동적 선택 목록 값 표현식 예시
(function execute(table) {
var options = [];
var gr = new GlideRecordSecure(table);
gr.addEncodedQuery('active=true');
gr.setLimit(5);
gr.query();
while(gr.next()) {
options.push({ 'value': gr.getUniqueValue(), 'label': gr.getValue('short_description') });
}
return options;
})(table)
Choice Value Expression 속성의 스크립트는 선택 배열을 정의하고 반환합니다. 이 예시에서 스크립트는 options라는 배열을 만들고 GlideRecord 쿼리에서 찾은 각 기록을 이 배열에 추가합니다. 배열의 각 요소에는 해당 GlideRecord의 데이터를 사용하여 값 및 레이블 키에 값이 지정됩니다. 컨트롤의 Table 속성은 스크립트에서 사용하는 테이블을 정의합니다. 이 예제 스크립트는 gr.setLimit(5) 를 사용하여 반환되는 레코드 수를 5로 제한합니다. 이 방법을 사용하면 반환된 기록에서 지나치게 큰 선택 목록을 만드는 것을 방지할 수 있습니다.
| 키 | 설명 |
|---|---|
| 값 | 선택 항목에 대한 값입니다. 사용자가 컨트롤에서 선택 항목을 선택하면 이 값이 변수 이름 속성에 명명된 변수에 저장됩니다. |
| 레이블 | 선택 목록에서 이 선택 항목에 대해 나타나는 레이블입니다. |
채널 지원
| 채널 | 지원 | 제약 조건 |
|---|---|---|
| 웹 UI | 지원됨 | 없음 |
| 모바일 UI | 지원됨 | 없음 |
| Now Assist 패널 | 지원됨 | 없음 |
| Microsoft Teams | 지원됨 | 없음 |
| Slack | 지원됨 | 헤더 카드는 지원되지 않습니다. |
| Workplace | 지원됨 | 헤더 카드는 지원되지 않습니다. |
| Facebook Messenger | 지원되지 않음 | 해당 사항 없음 |
| 문자 메시지 Twilio | 지원됨 | 헤더 카드는 지원되지 않습니다. |
| LINE | 지원되지 않음 | 해당 사항 없음 |
| 지원됨 | 없음 | |
| Apple Messages for Business | 지원됨 | 없음 |
| Alexa (음성) | 지원됨 | 화면 장치의 경우 터치 스크롤을 사용합니다. 링크를 클릭하는 것은 지원되지 않습니다. 화면이 표시되지 않는 장치의 경우 음성 페이지 매김을 사용합니다. |