의도가 식별될 가장 관련성이 높은 링크 봇으로 안내하려면 범용 봇을 학습해야 합니다. 호출 구문 및 발화 학습 결합을 사용하여 봇 식별자 학습을 정의할 수 있습니다.

범용 봇은 다음 이유로 인해 필수입니다.

  • 사용자 발화가 연관된 연결된 봇에 라우팅 되도록 하기 위해.
  • 발화 학습 또는 호출 이름은 범용 봇이 연결된 봇을 식별하고 사용자의 발화를 라우팅하여 식별된 사용자 발화를 식별합니다.
  • 자격이 있는 연결된 봇이 없는 경우, 발화는 폴백 봇으로 연결된 봇에 라우팅 됩니다.
  • 발화 테스트 모듈에서 연결된 봇 식별 흐름을 검토하는 것은 필수입니다.

교육

다음 섹션에서 범용 봇을 효율적이고 실용적으로 만들어 줄 학습 단계와 모범 사례에 관해 설명합니다. 범용 봇 학습의 목표는 표준 봇을 위해 제공된 대로 '의도 식별'이 아닌'봇 식별'을 목표로 해야 합니다. 발화는 식별된 연결된 봇(또는 식별된 것이 없으면 폴백 봇)에 라우팅 됩니다. 범용 봇 학습에는 세 가지 과정이 있습니다.

  1. 특정 연결된 봇에서 특정 의도를 식별하기 위한 호출 구문으로 학습,
  2. 특정 연결된 봇을 식별하는 데 도움이 될 호출 이름으로 학습,
  3. 연결된 봇의 범위를 위한 사용자 발화로 학습.

참고: 포괄적 봇은 학습할 필요가 없습니다. 같은 것을 학습하기로 선택했다면 학습은 봇 범위에 대해 사용되지 않지만, 포괄적 봇으로서 연결된 봇이 선택 취소되면 나중에 사용됩니다. 자연어 -> 연결된 봇 학습 옵션을 선택하여 상단 메뉴의 구축 탭에서 학습이 이루어질 수 있습니다. 이 설명서에서는 이미 범용 봇을 생성했고 봇에 연결된 봇이 있다는 것을 전제로 한다는 점에 유의하세요. 단계에 대해서는 여기를 참조하세요.

호출 구문

호출 구문은 특정 연결된 봇의 레퍼런스와 특정 연결된 봇의 의도를 포함하는 전형적인 구문을 의미합니다. 예: '남은 휴가가 충분한지 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

호출 이름

연결된 봇의 이름은 함축적인 호출 이름으로 여겨집니다. 이것과 별개로, 하나 이상의 호출 이름을 각각 연결된 봇에 정의할 수 있습니다. 이는 연결된 봇 이름에 대해 정의된 일련의 유사어로서 다뤄지며 봇 사용자는 연결된 봇을 참조할 때 이를 사용할 것입니다.

발화

발화 학습은 사용자가 연결된 봇에서 의도를 물을 것으로 예상되는 방식을 나타냅니다. 이것은 보통 연결된 봇의 의도 학습에 사용된 주요 학습 발화를 포함합니다. ML 학습과 다르게, 이러한 발화는 한 개에 0이 아닌 연결된 봇을 식별할 수 있습니다. 최대 500개의 학습 발화 학습을 추가할 수 있습니다. 연결된 봇에서 복사 옵션을 사용하여 연결된 봇에서 발화를 선택하고 추가할 수도 있습니다.

연결된 봇 목록 페이지에서 학습 상태 개요와 호출 이름, 학습 발화의 개요를 얻을 수 있습니다.

구문 종료

다음 트리거는 연결된 봇의 독점적인 컨텍스트로부터 종료하기 위해 사용자가 사용할 수 있습니다.

  • 종료

설정

각각 연결된 봇의 경우, 봇 자격 임곗값을 의도 식별 과정을 위해 봇에 자격을 주는 데 필요한 최소 점수로 설정할 수 있습니다. 기본으로 이것은 0.3으로 설정되어 있으며 0과 1 사이 어떤 값으로든 설정될 수 있습니다.

폴백 봇

특정 봇을 다른 학습 옵션으로부터 식별된 봇이 없을 때 의도 감지를 위해 사용되는 폴백 봇으로 표시할 수 있습니다. 참고할 점:

  • 최대 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단계 – 호출 이행

  • 최종 의도가 실행됩니다.
  • 최종 의도가 없는 경우:
    • 범용 봇은 일치하는 스몰 토크 의도를 위해 확인됩니다.
    • 폴백 봇이 실행됩니다.

다음 단계

  • 여기에서 기본 대화와 변수를 정의하여 범용 봇이 어떻게 커스터마이즈되는지 살펴볼 수 있습니다.
  • 여기에서 추가 언어를 활성화하는 법을 학습하세요.

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed

ユニバーサルボットをトレーニングして、インテントが特定される最も関連性の高いリンクボットに誘導することができます。呼び出しフレーズとトレーニング発話を組み合わせて使用し、ボット識別トレーニングを定義することができます。

ユニバーサルボットのトレーニングは、以下の理由により必要不可欠です。

  • ユーザーの発話が関連するリンク先のボットにルーティングされるようにするため。
  • トレーニング発話または呼び出し名は、ユニバーサルボットがリンクされたボットを識別するのに役立ち、ユーザーの発話をこれらの識別済みのリンクされたボットにルーティングします。
  • リンクされたボットが適格でない場合は、発話が、リンクされたボットにフォールバックボットとしてルーティングされます。
  • 発話テストモジュールからリンクされたボットの特定フローを確認することが不可欠です。

トレーニング

次のセクションでは、ユニバーサルボットを効率的かつ機能的にするためのトレーニング手順、およびベストプラクティスについて詳述しています。ユニバーサルボットのトレーニングは、「ボットの識別」を目的としたものであり、標準ボットに用意されているような「インテントの識別」を目的としたものではないことを覚えておいてください。発話は、識別済みのリンクされたボット(何も識別されなかった場合はフォールバックボット)にルーティングされます。ユニバーサルボットのトレーニングは、以下の3つの方法で行われます。

  1. 特定のリンクされたボットの特定のインテントを識別するための、呼び出しフレーズを使用したトレーニング。
  2. 特定のリンクされたボットを識別するのに役立つ、呼び出し名を使用したトレーニング。
  3. リンクされたボットをスコーピングするための、ユーザーの発話を使用したトレーニング。

メモ:インクルーシブボットにはトレーニングは必要ありません。同一トレーニングを選択した場合、トレーニングはボットのスコーピングには使用されませんが、リンクされたボットがインクルーシブボットとして選択解除された場合、このトレーニングは後で使用されます。トレーニングは、トップメニューのビルドタブから、自然言語->リンクされたボットトレーニングオプションを選択して実行できます。このドキュメントでは、お客様がすでにユニバーサルボットを作成し、ボットをリンクしていることが想定されていることにご注意ください。ステップはこちらを参照してください

呼び出しフレーズ

呼び出しフレーズは特定のリンクされたボットへの参照と、その特定のリンクされたボットからのインテントを含む典型的なフレーズを指します。例―「十分な休暇残高があるかどうかをHRに確認できますか」、「セールスフォースからの最新のリードを表示してください」など。各呼び出しフレーズは次のコンポーネントを構成します。

  • リンク先のボットを特定するためのトリガーフレーズ。以下で構成されています。
    • トリガーワードのサポートは、プラットフォームがデフォルトで提供しており、このサポートは言語固有の値にも拡張されています。サポートされているトリガーワードの一覧は以下を参照してください。詳細は以下をご確認ください
    • 呼び出し名は、リンクされたボット名の同義語と見なすことができます。詳細は以下をご確認ください
  • インテントフレーズは、ユーザーが実行したいリンク先のボットに関連するタスクです。

パターン

トリガーフレーズと呼び出し名の存在は、以下のパターンルールに従うものとします。

パターン <trigger words> <intent words> <connecting words> <呼び出し名> <question words>
<intent words><connecting words><Invocation name> Not relevant * by, from, in, with, using ユーザー定義 Not relevant
Zomatoを使用して近くのレストランを取得する
<Trigger words><Invocation name> { <connecting words> } { <question words> } <intent words> 聞いて、教えて * to, about, for, if, whether ユーザー定義 何を、いつ、どこで、どのように、どれを、なぜ
Uberに乗車予約を依頼する、またはCleaに今日のスケジュールを確認したい旨を伝える
<Trigger words><Invocation name> <connecting words><intent words> 尋ねる、伝える、検索する、開く、話す、起動する、開始する、実行する、再開する、ロードする、開始する、使用する * そして、 ユーザー定義 関係ありません
YouTubeを起動してFilterCopyの動画を再生

トリガーワード

プラットフォームでは、以下のトリガーワードがデフォルトでサポートされています(多言語サポートについてはこちらを参照してください)。

  • Ask
  • Tell
  • Search
  • Open
  • Load
  • Begin
  • Launch
  • Talk to
  • Run

呼び出し名

リンクされたボットの名前は、暗黙の呼び出し名とみなされます。これとは別に、リンクされた各ボットに1つ以上の呼び出し名を定義すること、ができます。これらは、リンクされたボット名に対して定義された特別な同義語のセットとして扱われ、ボットユーザーがリンクされたボットを参照する際にこれらを使用する場合があります。

アタランス

トレーニング発話とは、ユーザーがリンクされたボットにインテントを要求する際の典型的な方法を指します。これには通常、リンクされたボットのインテントをトレーニングするために使用される、主なトレーニング発話が含まれます。MLのトレーニングとは異なり、これらの発話は1つのボットを特定するのではなく、複数のリンクされたボットを特定できることにご留意ください。最大500個のトレーニング発話を追加することができます。 リンクされたボットからコピーオプションを使用して、リンクされたボットの発話を選択して追加することもできます。

リンクされたボットの一覧ページから、トレーニング状況や呼び出し名、トレーニング発話の概要を確認することができます。

フレーズの終了

以下のトリガーワードは、ユーザーがリンクされたボットのコンテキスト全体を終了するために使用することができます。

  • 終了

設定

リンクされた各ボットに対して、インテントの識別プロセスでボットを認証するために必要な最小スコアとして、ボットの適格性判定基準を設定することができます。デフォルトでは0.3に設定されていますが、0~1の任意の値に設定することができます。

フォールバックボット

特定のボットをフォールバックボットとしてマークしておけば、別のトレーニングオプションで他のボットが検出されなかった場合に、インテントの検出に使用することができます。注意

  • 一度にフォールバックボットとしてマークできるボット数は最大15です。
  • ビジネスニーズに応じて、優先するボット一覧をいつでも変更することができます

インクルーシブボット

インクルーシブボットは、ボットのスコーピングプロセスに参加するためのサンプル発話のトレーニングを必要としません。これらのボットは、ユーザーの発話を評価する際に、ユーザーが「呼び出しフレーズ」または「トリガーフレーズ」を使用してリンクされたボットを起動した場合を除いて、常にインテント検出の対象となります。インクルーシブボットとしてマークできるリンクされたボット数は最大3つです。

メモ:リンクされたボットは、フォールバックまたはインクルーシブのいずれかとしてマークされますが、両方マークされることはありません。

リンクされたボット

コンテキスト内のリンクされたボットに関連する情報は、以下のキーの下にあるセッションコンテキストで利用することができます。

  • リンクされたボットのIDに対してcurrentLinkedBotid;
  • リンクされたボット名に対してcurrentLinkedBotName

対象ボット

ユニバーサルボット開発者としてし、特定のボットを特定のエンドユーザーに割り当てることで、そのボットからのインテントのみを利用できるようにすることができます。対象ボットに関連して、次の関数を使用できます。

  • 特定のユーザーコンテキストで現在の対象ボットトのリストを取得するには、次の手順に従います。 UserContext.getEligibleBots()
  • 対象ボットを設定するには:UserContext.setEligibleBots(["st-linkedBot1","st-linkedBot2"])ここで、st-linkedBot1st-linkedBot2などはリンクされたボットのボットIDです(「設定」->「構成設定」->「一般設定」から取得)この関数は、現在の対象ボットを指定されたボットに置き換えます。
  • 特定のユーザーコンテキストで現在の対象ボットトのリストを削除するには、次の手順に従います。 UserContext.removeEligibleBots()

ユーザー認証または組織で実施されているその他のアプローチに基づいて、対象ボットを設定できます。ボットの割り当てが提供されていない場合のボットの動作を、設定から定義することもできます。以下を参照してください

設定

構成設定には、ビルドトップメニュータブの左側のメニューの自然言語->設定からアクセスできます。これらのしきい値を構成できるように、ボットビルダーには次の構成が用意されています。

  • ボットの同義語の使用 – インテント検出におけるボットの同義語の使用を有効または無効にするためのトグルです。デフォルトでは無効になっています。
  • インテントを可能性の高い一致と見なすための最小MLスコアを定義するMLしきい値は、0~1の任意の値に設定することができます。デフォルト設定は0.3です。バージョン8.1以降では、この設定はリンクされた各ボットのボットの適格性判定基準に置き換えられています。上記をご確認ください
  • 旧バージョンへの切り替えから、ユニバーサルボットの旧バージョンに切り替えることができます。詳細はこちらをご確認ください
  • トリガーフレーズは、ユーザーがトリガーフレーズを使用して、つまりインテントを指定せずに、リンクされたボットをトリガーすることを可能にします。有効にすると、ボットの動作を以下のように定義することができます。
    • リンクされたボットで定義済みのウェルカムメッセージを表示する
    • カスタムメッセージを表示する。応答を管理を使用して、表示されるメッセージを定義します。
  • 最近使用されたボットの設定は、リンクされたボットがトレーニングデータから特定されなかった場合に、リンクされたボットのスコープを絞り込むために使用されます。ボットは、ユーザーが最近使用したボットを5つまで記憶するように設定することができます。
  • インテントの再スコアリングは、リンクされたボットのインテントを処理する際に、ユニバーサルボットの動作を定義するために使用することができます。デフォルトでは、ユニバーサルボットは、リンクされたボットから受け取ったインテントを再スコアリングし、上位インテントを特定します。このインテントの識別プロセスは、UBとリンクされたボットの両方で提供されるトレーニングに依存します。ただし、ユニバーサルボットが適切にトレーニングされていない場合には、再スコアリングによって誤ったインテントの識別が行われる可能性があります。上位インテントの識別のための、インテントの再スコアリングを無効にするオプションがあります。以下の設定(バージョン8.0から導入)が可能です。
    • 適格なインテントを再スコアリングして最適な一致の可能性を見つける – これはデフォルトの選択であり、さらに設定を変更することができます。
      • 一致の可能性の近接性は、トップスコアのインテントと可能性が次に高いインテントの間の最大許容差を定義し、それらを同等に重要であると見なします。0~20の間でパーセンテージを設定することができます。デフォルト設定は2%です。
    • 選択用にすべての適格なインテントをエンドユーザーに提示する – これは、1つ以上のリンクされたボットから複数の確定的および/または確率の高い一致が返された場合に、曖昧なインテントの一覧をユーザーに提示します。単一のリンクされたボットから1つのインテントのみが返された場合、そのインテントが実行されます。
  • ボットの割り当ての動作は、適格なボットが特定のユーザーに設定されていない場合の動作を定義するために使用することができます(こちらをご確認ください)。以下の設定が可能です。
    • すべての子ボットを割り当てる:リンクされたすべてのボットが適格です。これはデフォルト設定です。
    • 子ボットを割り当てない:ユーザーはリンクされたボットに対して適格ではありません。

導入

ユニバーサルボットの仕組みを見てみましょう。ユニバーサルボットは、ユーザー入力を複数のステージで処理し、適切なボットを特定し、適切なインテントを呼び出します。

ステージ1 – ボットのスコーピング

ユーザーは、「Salesforceと話す」、「Evaに尋ねる」(EvaはHRのボット)などのトリガーフレーズや、「会議を予定する」、「タスクを追加する」などのパターンを使用して、リンクされたボットを呼び出すことができます。

  • ユーザーの発話(呼び出しフレーズ)が、リンクされたボット名(呼び出し名)に対して評価されます。
  • このボット名は、すべてのリンクされたボット名または適格なボット名(ユーザの適格性基準が定義されている場合)と比較され、1つ以上のスコーピング済みのリンクされたボットを絞り込みます。ボット適格性:組織内での役割またはチームとの関連性に基づき、様々なユーザーが様々なボットとスキルのセットにアクセスできる場合があります。制限されたスコープを使用することで、ユニバーサルボットは、ユーザーのアクセス制御に基づいて、より適切なボットを特定することができます。

ステージ2 – リンクされたボットに対するフォーク入力

ボットのセットがスコーピングされると、ユーザー入力はスコーピング済みのリンクされたボットすべてに送信されます。リンクされた各ボットからのインテントのランキングが蓄積され、さらに評価されます。

  • 発話は、インテントを識別するためにスコーピング済みのリンクされたボットに送信されます。
  • 識別されたインテントは、その後の評価および動作のために、ユニバーサルボットのランキングおよび解決に転送されます。

ステージ3 – ランキングおよび曖昧さの解消

リンクされたボットからの応答はランク付けされます。複数のボットがユーザー入力に対して適格である場合には、追加のコンテキストによって曖昧さを解消します。それができない場合は、曖昧さの解消のためのダイアログがボットユーザーに表示されます。

ステージ4 – 達成度の呼び出し

  • 上位インテントが実行されます。
  • 上位インテントがない場合:
    • ユニバーサルボットは、スモールトークのインテントが一致しているかどうかを確認します。
    • フォールバックボットが実行されます。

次のステップ

  • こちらからデフォルトダイアログと変数を定義することでユニバーサルボットをカスタマイズする方法を調べることもできます。
  • こちらから追加の言語を有効にすることができます。

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed

You can train a Universal Bot to guide it to the most relevant link bot(s) from which the intents are to be identified. You can use a combination of Invocation Phrases and Training Utterances to define the Bot Identification Training.

Training a Universal Bot is essential for the following reasons:

  • To ensure that the user utterances are routed to the relevant linked bots.
  • Training Utterances or Invocation Names help the Universal Bot to identify the linked bots and route the user utterances to these identified linked bots.
  • In case no linked bots are qualified, then the utterances are routed to the linked bots as Fallback Bots.
  • It is essential that you review the linked bot identification flow from the Utterance Testing module.

Training

In the following section, we elaborate on the training steps and best practices to make your Universal Bot efficient and functional.

Remember that the training for Universal bot should be aimed at ‘bot identification‘ and not for ‘intent identification‘ as provided for any standard bot. The utterance will be routed to the identified linked bots (or fallback bot if nothing is identified).

Training a Universal Bot is a three-way process:

  1. Train with Invocation Phrases to identify a specific intent in a specific linked bot;
  2. Train with Invocation Names that would help identify a specific linked bot;
  3. Train with user utterance for scoping linked bots.

Note: Inclusive bots need not be trained. If you choose to train the same, the training will not be used for bot scoping but will be used later if the linked bot is deselected as an Inclusive Bot.

Training can be done from the Build tab from the top menu, selecting the Natural Language -> Linked Bot Training option.

Note the expectation of this document is that you have already created a Universal Bot and have linked bots to the same. Refer here for steps.

Invocation Phrases

Invocation Phrases refer to the typical phrases that contain a reference to a specific linked bot and intent from that specific linked bot.

For example – ‘Can you check with HR if I have enough leave balance’, or ‘show my latest leads from salesforce’, etc.

Each invocation phrases constitute the following components

  • Trigger Phrase to identify the linked bot. It consists of:
    • Trigger word support is provided by the platform by default and this support is extended to language-specific values, too. Refer below for the list of supported trigger words. See below for details.
    • Invocation Name can be regarded as synonyms for the linked bot names. See below for details.
  • Intent Phrase would be the task related to the linked bot that the user wants to perform.

Patterns

The presence of trigger phrase and invocation name should follow the below mentioned pattern rules:

Pattern <trigger words> <intent words> <connecting words> <invocation Names> <question words>
<intent words><connecting words><Invocation name> Not relevant * by, from, in, with, using User defined Not relevant
Example Get nearby restaurants using Zomato
<Trigger words><Invocation name>
{ <connecting words> }
{ <question words> }
<intent words>
Ask, Tell * to, about, for, if, whether User defined what, when, where, how, which, why
Example Ask Uber to book my ride
or Tell Clea I want today’s schedule
<Trigger words><Invocation name> <connecting words><intent words> Ask, Tell, Search, Open, Talk to, Launch, Start, Run, Resume, Load, Begin, Use * and, to User defined Not relevant
Example Launch Youtube to play videos from FilterCopy

Trigger Words

Following trigger words are supported by default in the platform (see here for multi-lingual support):

  • Ask
  • Tell
  • Search
  • Open
  • Load
  • Begin
  • Launch
  • Talk to
  • Run

Invocation Names

The Linked bot’s name is considered as an implicit invocation name.

Apart from this, you can define one or more Invocation Names for each of the linked bots. These will be treated as a special set of synonyms defined against linked bot names and the bot users might be using these when referring to the linked bots.

Utterances

Training utterances refer to the typical ways in which the users are expected to ask for intent from a linked bot. This usually includes the key training utterances used for training the intents of the linked bots. Keep in mind unlike the ML training, these utterances can identify multiple linked bots not zero it on one.

You can add up to 500 training utterances.

You can also use the Copy from linked bot option to choose and add the utterances from the linked bot.

From the Linked Bot listing page, you can get an overview of their training status and invocation names, and training utterances.

Exit Phrase

Following trigger words can be used by the user to exit from an exclusive context of a linked bot.

  • Exit

Configurations

For each linked bot, you can set the Bot Qualification Threshold as the minimum score needed to qualify the bot for the intent identification process.

By default, it is set to 0.3 and can be set to any value between 0 and 1.

Fallback Bots

You can mark certain bots as fallback bots which would be used for detecting intents when no other bots are identified from other training options.

Points to note:

  • A maximum of 15 bots can be marked as Fallback Bots
  • You can change the list of preferred bots at any time to suit the business needs

Inclusive Bots

Inclusive bots need not be trained with sample utterances to participate in the bot scoping process. These bots will always be considered for Intent Detection at the time of evaluating the user utterances, except when the user invokes a linked bot either using ‘Invocation Phrases’ or ‘Trigger Phrases’.
Up to 3 linked bots can be marked as inclusive bots.

Note: A linked bot can be marked either as Fallback or Inclusive not both.

Linked Bots

The information related to the in-context linked bot would be available in the Session context under the following key:

  • currentLinkedBotid for Linked Bot ID;
  • currentLinkedBotName for Linked Bot name.

Eligible Bots

As Universal Bot developer you have the ability to assign specific bots to specific end-users so that only the intents from these bots are made available to them.

The following functions can be used in relation to eligible bots:

  • To get the list of currently eligible bots for the given user context:
    UserContext.getEligibleBots()
  • To set the eligibility bots:
    UserContext.setEligibleBots(["st-linkedBot1","st-linkedBot2"])
    where st-linkedBot1, st-linkedBot2, etc. are the bot ids of the linked bots (obtained from Setting -> Config Settings -> General Setting)
    This function will replace the current eligible bots with the ones given.
  • To remove the list of currently eligible bots for the given user context:
    UserContext.removeEligibleBots()

You can set the eligible bots based on the user authorization or any other approach that your organization may have in place.

You can also define the bot behavior when the bot assignments are not provided, from the settings, see below.

Settings

The configuration settings can be accessed from the Build top menu tab, left menu, under Natural Language -> Settings

Following configurations are to be provided in the Bot Builder so that you can configure these thresholds:

  • Use of Bot Synonyms – toggle to enable or disable the use of bot synonyms in intent detection. Disabled by default.
  • ML threshold to define the minimum ML score to qualify an intent as a probable match can be set to any value between 0 and 1. The default setting is 0.3.
    Post v8.1, this setting has been replaced with Bot Qualification Threshold for each linked bot, see above.
  • Switch to Older Version can be used to switch to an older version of Universal Bots. See here for details.
  • Trigger Phrases can be used to allow users to trigger linked bots using Trigger Phrases i.e. without specifying the intent. Once enabled you can define the bot behavior to
    • display the Welcome message defined in the linked bot, or
    • show a custom message. Use Manage response to define the message to be displayed.
  • Recently Used Bots setting can be used to refine the scoping linked bots when no linked bot is identified from training data. The Bot can be configured to remember up to 5 recently used by the user.
  • Intent Rescoring can be used to define Universal Bot behavior while handling the linked bot intents. By default, the universal bot rescores the intents received from the linked bots to identify the winning intents. This intent identification process depends on the training provided both at the UB and the linked bot. But if the universal bot is not trained properly, rescoring might lead to wrong intent identification. You have an option to disable the intent rescoring for winning intent identification. The setting (introduced in ver8.0) can be:
    • Rescore the qualified intents to find the best possible match – this is the default selection and you can further configure
      • The proximity of Probable Matches to define the maximum difference allowed between top-scoring and immediate next possible intents to consider them as equally important. It can be set to a percentage between 0 and 20. The default setting is 2%.
    • Present all the qualified intents to the end-user for selection – this would present the list of ambiguous intents to the user if multiple definitive or/and probable matches are returned from one or more linked bots. If only one intent is returned by a single linked bot then that intent is executed.
  • Bot Assignment Behaviour can be used to define the behavior when the eligible bots are not set for a given user (see here). The setting can be:
    • Assign all Child Bots: All linked bots are eligible. This is the default setting.
    • Do not Assign any Child Bot: The user is not eligible for any of the linked bots.

Implementation

Let us look at how the Universal Bot works.

The universal bot processes user input in multiple stages to identify appropriate bot and invoke the appropriate intent.

Stage 1 – Scoping of Bots

Users should be able to use trigger phrases like “Talk to Salesforce”, “Ask Eva” (Eva being HR bot), or patterns like “Schedule a meeting” or “add a task” to invoke the linked bot.

  • The user utterance (invocation phrase) is evaluated for linked bot name (invocation name).
  • This bot name is compared with all linked bot names or eligible bot names (in case eligibility criteria for the user is defined) to shortlist one or more scoped linked bots.
    Bot Eligibility: Different users may have access to a different set of bots/skills based on their role or association with teams, in the organization. Using the restricted scope, the universal bot will be able to identify more appropriate bot based on the user’s access controls.

Stage 2 – Fork input to linked bots

Once a set of bots have been scoped, the user input is sent to all the in-scope linked bots. The ranking of intents from each of the linked bots is accumulated and further evaluated.

  • The utterance is sent to the scoped linked bots for intent identification.
  • Identified intents are then forwarded back to universal bot’s ranking and resolver for further evaluation and action.

Stage 3 – Ranking and Disambiguation

Response from the linked bots is ranked and, if more than one bot is qualified for user input, disambiguated using additional context. If not possible then disambiguation dialog is presented to the bot user.

Stage 4 – Invoke fulfillment

  • The winning intent is executed.
  • In the case of no winning intent:
    • the universal bot is checked for matching small talk intents.
    • the Fallback bot is executed.

Next Steps

  • You can also look into how the Universal Bot can be customized by defining the default dialog and variables from here.
  • Learn to enable additional languages from here.

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed