의도가 식별될 가장 관련성이 높은 링크 봇으로 안내하려면 범용 봇을 학습해야 합니다. 호출 구문 및 발화 학습 결합을 사용하여 봇 식별자 학습을 정의할 수 있습니다.
범용 봇은 다음 이유로 인해 필수입니다.
- 사용자 발화가 연관된 연결된 봇에 라우팅 되도록 하기 위해.
- 발화 학습 또는 호출 이름은 범용 봇이 연결된 봇을 식별하고 사용자의 발화를 라우팅하여 식별된 사용자 발화를 식별합니다.
- 자격이 있는 연결된 봇이 없는 경우, 발화는 폴백 봇으로 연결된 봇에 라우팅 됩니다.
- 발화 테스트 모듈에서 연결된 봇 식별 흐름을 검토하는 것은 필수입니다.
교육
다음 섹션에서 범용 봇을 효율적이고 실용적으로 만들어 줄 학습 단계와 모범 사례에 관해 설명합니다. 범용 봇 학습의 목표는 표준 봇을 위해 제공된 대로 '의도 식별'이 아닌'봇 식별'을 목표로 해야 합니다. 발화는 식별된 연결된 봇(또는 식별된 것이 없으면 폴백 봇)에 라우팅 됩니다. 범용 봇 학습에는 세 가지 과정이 있습니다.
- 특정 연결된 봇에서 특정 의도를 식별하기 위한 호출 구문으로 학습,
- 특정 연결된 봇을 식별하는 데 도움이 될 호출 이름으로 학습,
- 연결된 봇의 범위를 위한 사용자 발화로 학습.
참고: 포괄적 봇은 학습할 필요가 없습니다. 같은 것을 학습하기로 선택했다면 학습은 봇 범위에 대해 사용되지 않지만, 포괄적 봇으로서 연결된 봇이 선택 취소되면 나중에 사용됩니다. 자연어 -> 연결된 봇 학습 옵션을 선택하여 상단 메뉴의 구축 탭에서 학습이 이루어질 수 있습니다. 이 설명서에서는 이미 범용 봇을 생성했고 봇에 연결된 봇이 있다는 것을 전제로 한다는 점에 유의하세요. 단계에 대해서는 여기를 참조하세요.
호출 구문
호출 구문은 특정 연결된 봇의 레퍼런스와 특정 연결된 봇의 의도를 포함하는 전형적인 구문을 의미합니다. 예: '남은 휴가가 충분한지 HR에 확인해줄 수 있나요' 또는 '세일즈포스에서 내 최신 리드를 보여줘' 등. 각 호출 구문은 다음 컴포넌트로 이루어집니다.
- 트리거 문구 연결된 봇을 식별하기 위함. 다음과 같이 구성되어 있습니다.
- 플랫폼은 기본으로 트리거 단어 지원을 제공하며 이 지원은 언어별 값에도 확장됩니다. 아래에서 지원되는 트리거 단어 목록을 참조하세요. 자세한 내용은 아래를 참조하세요.
- 호출 이름은 연결된 봇 이름에 대한 동의어로 간주할 수 있습니다. 자세한 내용은 아래를 참조하세요.
- 의도 문구는 사용자가 수행하길 원하는 연결된 봇과 관련된 작업이 될 것입니다.
패턴
트리거 문구와 호출 이름의 존재는 아래 언급된 패턴 규칙을 따라야 합니다.
패턴 | <trigger words> | <intent words> | <connecting words> | <invocation Names> | <question words> |
---|---|---|---|---|---|
<intent words><connecting words><Invocation name> | 관련 없음 | * | by, from, in, with, using | 정의된 사용자 | 관련 없음 |
예 | Zomato를 사용하는 가까운 레스토랑 찾기 | ||||
<Trigger words><Invocation name> { <connecting words> } { <question words> } <intent words> | Ask, Tell | * | to, about, for, if, whether | 정의된 사용자 | what, when, where, how, which, why |
예 | Uber에 차편을 예약하도록 요청 또는 Clea에게 오늘 일정을 원한다고 말하기 | ||||
<Trigger words><Invocation name> <connecting words><intent words> | Ask, Tell, Search, Open, Talk to, Launch, Start, Run, Resume, Load, Begin, Use | * | and, to | 정의된 사용자 | 관련 없음 |
예 | Youtube를 실행하여 FilterCopy에서 영상 재생 |
트리거 단어
다음 트리거 단어는 플랫폼에서 기본으로 지원됩니다(다국어 지원은 여기를 참조하세요).
- Ask
- Tell
- Search
- Open
- Load
- Begin
- Launch
- Talk to
- Run
구문 종료
다음 트리거는 연결된 봇의 독점적인 컨텍스트로부터 종료하기 위해 사용자가 사용할 수 있습니다.
- 종료
폴백 봇
특정 봇을 다른 학습 옵션으로부터 식별된 봇이 없을 때 의도 감지를 위해 사용되는 폴백 봇으로 표시할 수 있습니다. 참고할 점:
- 최대 15개의 봇이 폴백 봇으로 표시될 수 있습니다
- 선호하는 봇 목록을 비즈니스 니즈에 맞게 언제든 바꿀 수 있습니다
포괄적 봇
포괄적 봇은 봇 범위 프로세스에 참여하기 위해 샘플 발화로 학습할 필요가 없습니다. 이러한 봇은 '호출 구문' 또는 '트리거 문구'를 사용하여 사용자가 연결된 봇을 호출할 때를 제외하고 사용자 발화를 평가하는 어느 때나 의도 감지를 위해 고려될 수 있습니다. 최대 3개의 연결된 봇이 포괄적 봇으로 표시될 수 있습니다.
참고: 연결된 봇은 폴백 또는 포괄적 봇으로 표시할 수 있습니다.
연결된 봇
컨텍스트 내의 연결된 봇과 관련된 정보는 다음 키 아래의 세션 컨텍스트에서 사용할 수 있습니다.
- 연결된 봇 ID에 대한 currentLinkedBotid
- 연결된 봇에 대한 currentLinkedBotName
적격 봇
범용 봇 개발자로서 특정 최종 사용자에 특정 봇을 할당할 수 있으며 이러한 봇의 의도만 사용할 수 있도록 할 수 있습니다. 다음 기능은 적격 봇과 관련하여 다음과 같이 사용할 수 있습니다.
- 주어진 사용자 컨텍스트에 대한 현재 적격 봇 목록 얻기:
UserContext.getEligibleBots()
- 적격 봇 설정하기:
UserContext.setEligibleBots(["st-linkedBot1","st-linkedBot2"])
여기서 st-linkedBot1, st-linkedBot2 등은 연결된 봇의 봇 Id입니다(설정 -> 설정 구성 -> 일반 설정에서 가져옴). 이 기능은 현재 적격 봇을 주어진 것으로 교체합니다. - 주어진 사용자 컨텍스트에 대한 현재 적격 봇 목록 삭제하기:
UserContext.removeEligibleBots()
사용자 권한 부여 또는 준비된 조직의 다른 접근 방법에 따라 적격 봇을 설정할 수 있습니다. 설정에서 봇 할당이 제공되지 않았을 때 봇 행동도 정의할 수 있으며, 아래를 참조하세요.
설정
구성 설정은 구축 상단 메뉴 탭의 왼쪽 메뉴에서 자연어 -> 설정에서 액세스할 수 있습니다. 다음 구성은 봇 빌더에 제공되어 이러한 임곗값을 설정할 수 있습니다.
- 봇 동의어 사용 – 의도 감지에서 봇 동의어 사용을 토글 하여 활성화하거나 비활성화합니다. 기본으로 비활성화됨.
- 의도를 유망한 일치로 취급하기 위한 최소 ML 점수를 정의하기 위한 ML 임곗값은 0과 1 사이의 어떤 값으로든 설정될 수 있습니다. 기본 설정은 0.3입니다. v8.1 이후, 이 설정은 각 연결된 봇에 대해 봇 자격 임곗값으로 대체되었으며, 위를 참조하세요.
- 이전 버전으로 전환은 범용 봇의 이전 버전으로 전환하는 데 사용될 수 있습니다. 자세한 내용은 여기를 참조하세요.
- 트리거 구문은 사용자가 트리거 구문을 사용하는 연결된 봇을 트리거 하는 데 사용될 수 있습니다. 즉, 의도를 특정하지 않은 경우입니다. 활성화되면 봇 행동을 정의할 수 있습니다.
- 연결된 봇에서 정의된 환영 메시지를 표시하거나
- 사용자 정의 메시지를 보여줍니다. 응답 관리를 사용하여 표시될 메시지를 정의합니다.
- 최근에 사용한 봇 설정은 학습 데이터에서 식별된 연결된 봇이 없으면 연결된 봇의 범위 지정을 개선하는 데 사용할 수 있습니다. 봇은 사용자가 최근에 사용한 최대 5개까지 기억하도록 설정될 수 있습니다.
- 의도 재채점은 연결된 봇 의도를 다루는 동안 범용 봇 행동을 정의하는 데 사용될 수 있습니다. 기본으로 범용 봇은 최종 의도를 식별하기 위해 연결된 봇에서 수신한 의도를 재채점합니다. 의도 식별 과정은 UB와 연결된 봇에서 모두 제공된 학습에 의존합니다. 하지만 범용 봇이 적합하게 학습되지 않았다면 재채점은 잘못된 의도 식별로 이어질 수 있습니다. 최종 의도 식별에 대한 의도 재채점을 비활성화할 옵션이 있습니다. 그 설정(ver8.0에 도입)은 다음과 같을 수 있습니다.
- 가장 가능성 있는 일치를 찾기 위한 적격 의도 재채점 – 이것은 기본 선택이며 추후 설정할 수 있습니다.
- 최고 스코어링 및 그와 동등하게 중요하다고 여겨지는 바로 그다음의 가능한 의도 사이에 허용되는 최대 차이를 정의하기 위한 가능한 일치의 근접함입니다. 이것은 0과 20 사이의 퍼센티지로 설정될 수 있습니다. 기본 설정은 2%입니다.
- 선택에 대해 최종 사용자에게 모든 적격 의도 제시 – 이것은 여러 개의 확실하거나 가능한 일치가 하나 이상의 연결된 봇에서 반환되면 사용자에게 모호한 의도 목록을 제시합니다. 단일 연결된 봇은 오직 하나의 의도를 반환하며 해당 의도는 실행됩니다.
- 가장 가능성 있는 일치를 찾기 위한 적격 의도 재채점 – 이것은 기본 선택이며 추후 설정할 수 있습니다.
- 봇 할당 행동은 적격 봇이 주어진 사용자에 대해 설정되지 않았을 때 행동을 정의하기 위해 사용됩니다(여기를 참조하세요). 설정은 다음과 같을 수 있습니다.
- 모든 자식 봇 할당: 모든 연결된 봇은 적격입니다. 이 설정은 기본 설정입니다.
- 자식 봇을 할당하지 않음: 사용자는 모든 연결된 봇에 대한 자격이 없습니다.
구현
범용 봇이 작동하는 방식을 살펴봅니다. 범용 봇은 적합한 봇을 식별하고 적합한 의도를 불러오기 위해 여러 단계에서 사용자 입력을 처리합니다.
1단계 – 봇 범위 지정
사용자는 "Salesforce와 대화", "Eva에게 문의"(Eva는 HR 봇)와 같은 트리거 문구 또는 연결된 봇을 불러오기 위한 "회의 일정 잡기" 또는 "작업 추가" 와 같은 패턴을 사용할 수 있어야 합니다.
- 사용자 발화(호출 구문)는 연결된 봇 이름(호출 이름)에 대해 평가됩니다.
- 봇 이름은 하나 이상의 범위 지정된 연결된 봇을 선정하기 위해 모든 연결된 봇 이름(정의된 사용자에 대한 적격 범위의 경우) 또는 적격 봇 이름과 비교됩니다. 봇 적격성: 다양한 사용자가 조직 내 역할 또는 팀과의 유대에 기반한 일련의 다양한 봇/스킬에 액세스할 수 있습니다. 제한된 범위를 사용하여 범용 봇은 사용자의 액세스 제어에 따라 더 적합한 봇을 식별하게 될 수 있습니다.
2단계 – 연결된 봇에 대한 입력
일련의 봇이 범위가 지정되면 사용자 입력은 모든 범위 내의 연결된 봇에 전송됩니다. 각 연결된 봇의 의도 순위는 누적되고 추후 평가됩니다.
- 의도 식별을 위해 범위 지정된 연결된 봇으로 발화가 전송됩니다.
- 식별된 의도는 추후 평가와 조치를 위해 범용 봇의 순위 및 해결로 다시 전달됩니다.
3단계 – 순위 및 명확화
연결된 봇으로부터의 응답은 순위가 매겨지고 한 개 이상의 봇이 사용자 입력에 적합하면 추가 컨텍스트를 위해 명확화됩니다. 불가능한 경우 명확화 대화가 봇 사용자에게 표시됩니다.
4단계 – 호출 이행
- 최종 의도가 실행됩니다.
- 최종 의도가 없는 경우:
- 범용 봇은 일치하는 스몰 토크 의도를 위해 확인됩니다.
- 폴백 봇이 실행됩니다.