동적 선택 사용자 입력 통제
주제에서 가상 에이전트 동적 선택 사용자 입력 컨트롤을 사용하여 사용자가 사용할 수 있는 선택 목록을 동적으로 생성합니다. 테이블을 쿼리하거나 스크립트를 사용하여 동적으로 테이블을 생성하면 이러한 선택 항목을 생성할 수 있습니다.
선택 목록 표시
동적 선택 목록에는 페이지당 최대 10개의 항목이 포함됩니다. 항목이 10개가 넘는 경우 추가 항목을 표시하고 검색 결과를 필터링할 수도 있습니다. 선택 목록 프롬프트에는 검색 아이콘, 결과를 필터링하기 위해 선택할 수 있는 검색 아이콘이 포함되어 있습니다.
다중 선택 항목 선택이 켜져 있는 경우 옵션 검색 필드 내에서 검색하여 검색 결과를 필터링할 수 있습니다. 해당하는 모든 선택 항목을 선택하거나 입력한 다음 보내기 아이콘 LLM 주제를 통해 선택 항목을 보내면 LLM은 선택 항목이 확인 기준을 충족하는지 여부에 따라 응답합니다.
채팅 창에 발언을 입력하여 LLM 대화의 목록에서 선택 항목을 선택할 수도 있습니다. 입력 가상 에이전트 과 일치하는 항목이 없으면 유효한 선택이 아님을 알리고 다른 입력을 시도하라는 메시지를 표시합니다.
-
헤더 카드에는 설명 텍스트와 함께 크거나 작은 이미지 또는 YouTube 비디오 카드가 포함될 수 있습니다. 선택 목록에는 기본적으로 최대 5개의 항목이 포함되어 있지만 검색 기능은 표시되지 않습니다. 5개가 넘는 경우 사용자가 추가 항목을 표시하도록 선택할 수 있습니다.
-
헤더 카드 아래에 표시되는 항목 수를 제어하려면 시스템 속성을 추가합니다 com.glide.cs.web_header_picker_page_limit . 값을 사용하여 선택 목록에서 항목 수를 지정합니다. 시스템 속성을 만드는 방법에 대한 자세한 내용은 시스템 속성 추가 항목을 참조하십시오.
동적 선택 목록 노드에 하나의 선택 항목만 있는 경우 노드를 테스트하거나 사용할 때 "[선택]이 [노드 이름]으로 있습니다. 맞습니까?"라는 메시지가 나타납니다. 동적 선택 목록 노드에서 여러 선택 항목을 사용하여 이 메시지가 수신되지 않도록 합니다.
다음으로 이동하여 메시지 내용을 변경할 수도 있습니다. 시스템 속성을 편집합니다 glide.cs.retry_question_message . 이 메시지 값은 기본적으로 문자열이며 {1}로 {0}했는데 맞습니까? 동적 선택 목록 외부의 여러 케이스에서 슬롯을 채우는 데 사용됩니다. 모든 변경 사항은 이 속성을 사용할 때마다 반영됩니다.
LLM 주제 디스커버리에 대한 동적 선택 사용자 입력 통제 속성
| 속성 | 설명 |
|---|---|
| 노드 이름 |
주제 플로우에서 이 노드를 식별하는 이름입니다. |
| 변수 이름 |
이 프롬프트에 대한 사용자 응답을 저장하는 변수의 이름입니다. 변수 이름은 노드 이름 속성에서 자동으로 생성됩니다. |
| 프롬프트 |
사용자에 대한 프롬프트 또는 질문입니다. 프롬프트는 텍스트 문자열 또는 텍스트를 반환하는 스크립트일 수 있습니다. 이 값은 기본값이 지정되지 않은 경우에만 사용됩니다. 예: 이름이 무엇입니까? 서식 있는 텍스트를 생성하여 프롬프트의 스타일을 변경할 수 있습니다.
|
| NLU 엔터티 |
엔터티를 NLU 노드와 연결하는 옵션입니다. NLU 엔터티가 이 노드의 가상 에이전트 입력 변수와 연결된 경우 사용자의 발언에 따라 지정된 값을 슬롯으로 채울 수 있습니다. 주제 의도와 연결된 엔터티 목록에서 엔터티를 선택합니다. 노드에 대한 엔터티를 지정하면 사용자에게 인식된 엔터티를 확인하도록 묻지 않음 토글 스위치가 표시됩니다. 사용하도록 설정하면 추출된 엔터티를 확인하라는 메시지가 사용자에게 표시되지 않습니다. 이 필드는 인스턴스에서 검색이 활성화된 경우에만 NLU 사용할 수 있습니다. |
| 선택 | |
| 선택 항목 채우기 기준 |
사용할 동적 변수의 유형입니다. 다음 옵션 중 하나를 선택합니다.
|
| 테이블 |
검색할 테이블로, 선택 항목을 채우는 방법으로 기록을 선택한 경우에만 사용할 수 있습니다. |
| 선택 항목 필터링 |
조건 작성기를 가상 에이전트 디자이너 사용하거나 스크립트를 제공하는 옵션입니다. 다음 중 하나를 선택합니다.
|
| 사용자가 둘 이상의 선택 항목을 선택할 수 있도록 허용 |
사용자가 선택 목록에서 여러 선택 항목을 선택할 수 있도록 허용하는 옵션입니다. |
| 기록 응답 메시지가 없습니다. |
테이블 검색에서 기록이 반환되지 않을 때 사용자에게 표시되는 메시지입니다. 메시지는 텍스트 문자열 또는 텍스트를 반환하는 스크립트일 수 있습니다. |
| 고급 | |
| 헤더 카드 |
이미지 또는 YouTube 비디오를 포함할 수 있는 카드를 추가할 필드를 열려면 전환합니다. 자세한 내용은 정적 선택 또는 동적 선택 통제에 헤더 카드 삽입 문서를 참조하십시오. |
| 기본값 | |
| 기본값 |
질문 또는 프롬프트에 대한 사용자 응답에 대해 미리 정의된 값입니다. 기본값 확인 필드에 정의된 응답은 사용자에게 기본값을 확인하도록 요청합니다. 사용자가 no로 응답하면 값이 null이 됩니다. 기본값은 텍스트 문자열 또는 텍스트를 반환하는 스크립트일 수 있습니다. 예를 들어 닷워킹을 사용하는 경우 기본값은 스크립트 변수 > 마지막 사용자 이름입니다. 또는 스크립트를 사용하는 경우 기본값은 {{vaScripts.lastUsername}}일 수 있습니다. |
| 확인 메시지 | |
| 입력 완료 확인 |
노드 상호작용이 완료되면 사용자에게 표시되는 봇 응답입니다. 메시지는 텍스트 문자열 또는 텍스트를 반환하는 스크립트일 수 있습니다. 예를 들어, 닷워킹을 사용하는 경우: 감사합니다, (입력 변수 > 사용자 이름)! 또는 스크립트를 사용하는 경우 승인은 다음과 같을 수 있습니다. 감사합니다 , {{vaInputs.username}}! |
| 기본값 확인 |
기본값 필드의 값이 올바른지 사용자에게 확인하도록 요청하는 메시지입니다. 이 메시지는 프롬프트 필드의 값 대신 사용됩니다. 여기에는 텍스트 문자열 또는 텍스트를 반환하는 스크립트가 포함될 수 있습니다. 예를 들어 닷워킹을 사용하는 경우: (입력 변수 > 사용자 이름)입니까? 또는 스크립트를 사용하는 경우 확인 메시지가 다음과 같을 수 있습니다. {{vaScripts.lastUsername}}입니까? |
| 대화 전환 | |
| 이 섹션은 인스턴스에서 검색이 활성화된 경우에만 NLU 사용할 수 있습니다. | |
| 사용자가 제목을 변경할 수 있도록 켜기 |
이 노드에 대한 예측을 활성화하는 NLU 옵션입니다. 활성화하면 사용자는 사용 중인 입력 컨트롤의 유형에 관계없이 텍스트를 입력하여 질문에 답할 수 있습니다. 가상 에이전트 는 이 발언을 사용하여 다른 기존 의도와 일치시켜 사용자가 주제를 전환할 수 있도록 합니다. |
| 이 노드 숨기기 또는 건너뛰기 | |
| 다음과 같은 경우 이 노드를 조건부로 표시합니다. |
대화에서 이 노드를 표시하기 위한 조건을 지정하는 코드 없는 조건문 또는 로우코드 스크립트입니다. 조건은 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)
선택 값 표현식 속성의 스크립트는 선택 항목의 배열을 정의하고 반환합니다. 이 예시에서 스크립트는 옵션이라는 배열을 만들고 GlideRecord 쿼리에 있는 각 기록을 이 배열에 추가합니다. 배열의 각 요소에는 해당 GlideRecord의 데이터를 사용하는 값 및 레이블 키의 값이 지정됩니다. 컨트롤의 Table 속성은 스크립트에서 사용하는 테이블을 정의합니다. 이 예시 스크립트는 gr.setLimit(5) 를 사용하여 반환되는 레코드 수를 5로 제한합니다. 이 방법을 사용하면 반환된 기록에서 지나치게 큰 선택 목록을 만드는 것을 방지할 수 있습니다.
| 키 | 설명 |
|---|---|
| 값 | 선택에 대한 값입니다. 사용자가 컨트롤에서 선택 항목을 선택하면 이 값은 변수 이름 속성에 명명된 변수에 저장됩니다. |
| 레이블 | 선택 목록에서 이 선택 항목에 대해 표시되는 레이블입니다. |
채널 지원
| 채널 | LLM 지원 | NLU/키워드 지원 | 제약 조건 |
|---|---|---|---|
| 웹 UI | 지원되지 않음 | 지원됨 | 안 함 |
| 모바일 UI | 지원되지 않음 | 지원됨 | 안 함 |
| Now Assist 패널 | 지원되지 않음 | 지원됨 | 안 함 |
| Microsoft Teams | 지원됨 | 지원됨 | 안 함 |
| Slack | 지원되지 않음 | 지원됨 | 헤더 카드는 지원되지 않습니다. |
| Workplace | 지원되지 않음 | 지원됨 | 헤더 카드는 지원되지 않습니다. |
| Facebook Messenger | 지원되지 않음 | 지원되지 않음 | 해당 사항 없음 |
| SMS Twilio | 지원되지 않음 | 지원됨 | 헤더 카드는 지원되지 않습니다. |
| LINE | 지원되지 않음 | 지원되지 않음 | 해당 사항 없음 |
| 지원됨 | 지원됨 | 안 함 | |
| Apple Messages for Business | 지원되지 않음 | 지원됨 | 안 함 |
| Alexa (목소리) | 지원되지 않음 | 지원됨 | 화면 장치의 경우 터치 스크롤을 사용합니다. 링크 클릭은 지원되지 않습니다. 화면이 아닌 장치의 경우 음성 페이지 매김을 사용합니다. |