ナレッジ検索

Oracle B2C Service Knowledge FoundationまたはOracle Fusion Service Knowledge Managementを使用している場合は、組込みの「ナレッジ検索」ダイアログ・フロー・コンポーネントを使用してそのサービスの記事を検索して表示できます。

スキルをナレッジ・ファンデーション・サービスと統合するには:

  1. ナレッジ検索統合を追加します。これは、サービス・インタフェースごとに1回のみ実行する必要があります。

  2. ナレッジ検索コンポーネントの使用の説明に従って、スキルのダイアログ・フローに1つ以上のナレッジ検索コンポーネントを追加します。

ナレッジ検索サービスの追加

ナレッジ検索コンポーネントをスキルで使用し、Oracle B2C Service Knowledge FoundationまたはOracle Fusion Service Knowledge Managementの記事を検索して取得するには、サービスと統合するナレッジ検索サービスを最初に作成する必要があります。

Knowledge Foundationのナレッジ検索サービスを作成する前に、Oracle B2C Service Account ManagerでConnect Knowledge Foundation APIがサイト・レベルで使用可能であり、II_CONNECT_ENABLED構成設定がオンであることを確認します。そうでない場合は、Knowledge Serviceコンポーネントを起動すると、グローバル・エラーが返されます。例外コードはACCESS_DENIEDで、メッセージにはSOAP_SERVER_DISABLEDのメッセージ・ベース文字列が含まれます。複数のインタフェースと統合する場合は、サービス統合に使用するユーザーのプロファイルで、インタフェースに対してアクセスが有効になっている必要があります。

ナレッジ検索サービスを作成するには、次のステップを実行します:

  1. Oracle Digital Assistantで、サイド・メニューを開くアイコンをクリックしてサイド・メニューを開き、「設定」「追加サービス」の順に選択し、「ナレッジ検索」タブをクリックします。

  2. 「+サービスの追加」をクリックします

    「新規ナレッジ検索統合サービス」ダイアログが表示されます。

  3. 次の情報を指定します:

    フィールド 必須 説明
    名前 はい 統合の一意の名前。
    説明 いいえ 統合の説明。
    サービス・タイプ はい これをOracle B2C Service Knowledge Foundationと統合するか、Oracle Fusion Service Knowledge Managementと統合するかを選択します。
    ホスト はい サービスの完全修飾ドメイン。例: interfacename.custhelp.com
    サービス・クラウド・バージョン はい (Oracle B2C Serviceの場合のみ) Oracle B2C Serviceのバージョンが20A以降であるか、またはそれより前であるかを指定します。
    認証タイプ はい (Oracle Fusion Serviceの場合のみ)。デフォルトでは、サインイン・ユーザーと匿名ユーザーの両方が記事にアクセスできるように設定されています。

    警告: 24.02では、サインインしているユーザーのみが記事にアクセスできるようにするオプションは、完全にはテストされていません

    ユーザー名 はい ナレッジ・サービス・アカウントのユーザー名。

    Oracle B2C Serviceの場合、ユーザーは、「プロファイル権限管理」タブで選択した公開ナレッジ・ファンデーションAPIアカウント認証およびセッション認証の権限を持つOracle B2C Serviceプロファイルに関連付ける必要があります。このサービス統合に複数のインタフェースが含まれる場合、プロファイルでインタフェースに対してアクセスが有効になっている必要があります。

    ユーザーには、スキルで取得する必要がある記事へのアクセス権も必要です。

    パスワード はい ユーザーのパスワード。
    検索パスまたはカスタムURL いいえ コンポーネントの検索ボタンをデフォルトの検索リンクではなくカスタムURLに移動する場合は、ここで指定できます。<SEARCH_TERM>プレースホルダを使用して、URLに検索語を配置する場所を指定できます。

    B2Cサービスでは、絶対URLを使用する場合、スキルは「製品およびカテゴリによる結果のフィルタ」で説明されている検索フィルタをURLに追加しません。

    結果パスまたはカスタムURL いいえ コンポーネントの「詳細を表示」ボタンをデフォルトの結果リンクではなくカスタムURLに移動する場合は、ここで指定できます。<ANSWER_ID>プレースホルダを使用して、URLに記事IDを配置する場所を指定できます。
  4. 「作成」をクリックします。

    Oracle Fusion Service Knowledge Managementと統合している場合は、ステップ7にスキップします。

  5. Oracle B2C Serviceでは、ホストのサイトに複数のインタフェースがある場合は、メイン(デフォルトのロケール)インタフェースを選択するように求められます。

    次の手順でさらにインタフェースを追加できます。デフォルトのインタフェースを変更することもできます。

  6. Oracle B2C Serviceサービスに異なるロケール用のインタフェースがある場合は、「+ロケールの追加」をクリックして、それらをサービス統合に含めます。追加するインタフェースを選択し、インタフェースのホストを指定する必要があります。1つのロケールに1つのインタフェースのみを追加できます。

    サービス統合に使用するユーザーのプロファイルでは、インタフェースに対してアクセスが有効になっている必要があります。

    ナレッジ検索コンポーネントでマルチインタフェース・サービス統合を使用する場合は、「ロケールを使用した検索」プロパティを使用して、検索するインタフェースを指定します。(YAMLベースのダイアログ・フローでは、localeプロパティです。)このプロパティのデフォルト値はprofile.localeです。どのインタフェースもロケールをサポートしていない場合、コンポーネントはデフォルトのインタフェースを検索します。

  7. 「設定の検証」をクリックして、Oracle Digital Assistantがサービスに正常に接続できるかどうかを確認します。

ナレッジ・ファウンデーション検索条件のテスト

Oracle B2C Service Knowledge Foundationの場合、各構成済Oracle B2C Serviceインタフェースのナレッジ検索サービス・ページから検索語をテストできます。

検索語をテストするには:

  1. Oracle Digital Assistantで、サイド・メニューを開くアイコンをクリックしてサイド・メニューを開き、「設定」「追加サービス」の順に選択し、「ナレッジ検索」タブをクリックします。

  2. ナレッジ検索サービスを選択し、検索語をテストするService Cloudホストをクリックします。

    サービスの検索ページが表示されます。検索条件を入力して結果を表示します。

ナレッジ検索コンポーネントの使用

「ナレッジ検索」ダイアログ・フロー・コンポーネントを使用して、ナレッジ・サービスからの情報を検索して表示します。

このコンポーネントを使用して、検索語、検索するナレッジ検索サービス、検索する製品またはカテゴリ(またはその両方)および表示する結果の数を指定します。ラベルおよびプロンプトを構成することもできます。Oracle B2C Service Knowledge Foundationでは、回答を表示するか特別な応答を表示するか、および検索する複数のロケール・インタフェースを表示するかを指定できます。コンポーネント・プロパティの詳細および遷移は、ビジュアル・フロー・デザイナのナレッジ検索(およびYAMLモードで開発されたダイアログのSystem.KnowledgeSearch)で説明されています。

ナレッジ検索を組み込むと、特定の質問セットの回答を提供するだけでなく、ナレッジ検索を使用して未解決のインテントを処理することもできます。ユーザーの発話がスキルの信頼度しきい値内のインテントに解決されない場合、スキルは発話を検索語として使用してナレッジ・ベースを検索できます。たとえば、ナレッジ・ベースには、返品ポリシー、出荷返品原価およびウェアラブル製品を返品できるかどうかに関する記事が含まれています。製品オーダー・スキルに、特別に調整されたインテントを含めて、正確なナレッジ・ベース検索を使用してこれらの回答を返すようにすることができます。スキルで具体的に処理されない関連質問(保証に関する質問など)をユーザーが尋ねた場合、その質問は未解決インテントに解決され、スキルはユーザーの質問を検索語としてナレッジ・ベース検索を実行できます。

この手法を実装するには、次のステップを実行します:

  1. 関連する一連の質問を特定の検索語に関連付ける: スキルで使用するナレッジ・ベースの回答ごとに、一連の発話例(トレーニング・コーパス)を使用してインテントを作成します。ユーザー発話がそのインテントに解決されるとき、目的の回答を返す検索語を使用してナレッジ・ベースを検索する状態にダイアログ・フローを遷移します。トレーニング・コーパスと自然言語パーサー(NLP)を使用すると、スキルが、トレーニング・コーパスに類似する質問をそのインテントに解決するのに役立ちます。

  2. 未解決インテントの検索語としてユーザーの発話を使用する:ユーザー発話がスキルの信頼度レベル内のインテントに解決されない場合は、検索語をユーザー発話に設定してナレッジ・ベースを検索する状態にダイアログ・フローを遷移できます。つまり、ロールオーバー検索を実行します。

このコンポーネントを使用するには、先にナレッジ検索統合を作成する必要があることに注意してください。

関連する質問と検索語の関連付け

ユーザーの発話をナレッジ・ベース検索の検索語として単に使用することもできますが、多くの場合、インテントおよび自然言語解析機能を利用して、スキルが特定の質問に対して可能なかぎり最良の回答を表示するようにすることをお薦めします。

スキルに組み込むナレッジ・ベースの回答ごとにインテントを作成することで、インテントの発話例(トレーニング・コーパス)を使用して、その回答に様々な質問を関連付けることができます。トレーニング・コーパスを使用して、自然言語パーサー(NLP)は、トレーニング・コーパスの質問に類似した他の質問をそのインテントに解決します。スキルが使用されると、インサイトおよび再トレーニングを行って、そのインテントに対する発話の解決を改善できます。

いずれかインテントの(ナレッジ・インテントと呼ばれる)に発話が解決されるとき、目的の回答を取得して表示する検索語を使用してナレッジ・ベースを検索する状態にダイアログ・フローを遷移します。

たとえば、製品の登録方法を説明するだけでなく、登録の利点と製品の更新および廃止方法を説明する、製品登録に関するナレッジ・ベースの回答があるとします。まず、インテントを作成します(knowledge.Product Registrationをコールします)。次に、ユーザーが製品登録について質問する方法を説明する複数の発話例をインテントに追加します(数十の例から始める必要があります)。knowledge.Product Registrationに使用する発話例の小さなセットを次に示します。

  • 製品を登録する方法
  • 登録した製品を廃止する必要がある
  • 登録したデバイスを更新したい
  • 製品登録は重要か
  • デバイスを登録する利点
  • 製品を登録する理由

次に、目的の回答を生成する検索語を使用してナレッジ・ベースを検索するためのフローを作成する必要があります。各ナレッジ・インテントのナレッジ検索状態を作成して検索語をハードコードするか、単一のフローを作成してマップ変数を使用してナレッジ・インテントを検索語に関連付けることができます。

特定の検索語にマップされるすべてのインテントについて、ビジュアル・フロー・デザイナで単一のフローを作成するステップを次に示します:

  1. メイン・フローで、マップ型のグローバル変数を作成して、ナレッジ・インテントを検索語に関連付けます。この例では、これをsearchTermsと呼びます。6つのインテントがある場合、このような変数に割り当てることができる値の例を次に示します:
    {
      "knowledge.Shipping Return Costs" : "Shipping Return Costs",
      "knowledge.Locate Service Tag or Serial" : "Locating Your Service Tag or Asset Serial Number",
      "knowledge.Support Account" : "My Support Account",
      "knowledge.Product Registration" : "How do I register my product?",
      "knowledge.Noncontiguous Delivery Time" : "What is the delivery time to Alaska, Hawaii and the U.S. Territories?",
      "knowledge.Return Policy" : "What is your return policy?"
    }

    ヒント:

    この例では、回答のサマリーを検索語に使用します。Oracle B2C Service Knowledge Foundationでは、回答のIDを使用することもできます。
  2. 変数設定コンポーネントを使用してフローを開始し、インテント名(intentNameなど)を保持する変数を作成し、その値として次のFreeMarker式を入力します。
    ${skill.system.nlpresult.value.intentMatches.summary[0].intent}
  3. 追加した変数の設定コンポーネントの後に、検索語に別の変数設定コンポーネント(searchTermなど)を追加し、その値として次のFreeMarker式を入力します。
    ${searchTerms.value[intentName.value]}

    この式では、前に定義したsearchTermsマップを使用して、解決されたインテントに基づいて検索語を決定します。

  4. 2番目の変数の設定コンポーネントの後に、ナレッジ検索コンポーネントを追加し、そのコンポーネントを「検索条件」プロパティに${searchTerm.value}"に設定します。
  5. ナレッジ検索コンポーネントの状態で、「検索サービス名」をナレッジ検索サービスの名前に設定します。

  6. ナレッジ検索コンポーネントの後に、actionserrorおよびnextの各遷移の状態を追加します。

  7. 「検証」をクリックしてダイアログ・フローにエラーがないことを確認します。

  8. 「トレイン」をクリックして、発話例を使用してスキルをトレーニングします。

  9. スキルの「インテント」ページで、検索語に関連付けられた各インテントをこのフローにマップします。

ヒント:

「結果を先に表示するテキスト」「Web記事リンク・ラベル」および「Web検索ページ・リンク・ラベル」プロパティのデフォルト値は、スキルのリソース・バンドルに格納されます。デフォルトを変更するには、「リソース・バンドル」アイコンをクリックしてスキルの「リソース・バンドル」ページを開き、「構成」タブを選択して、KnowledgeSearch - <property name>キーのメッセージを変更します。スキルのリソース・バンドルを使用してデフォルトを変更する場合は、コンポーネントにプロパティを含める必要はありません(デフォルトをオーバーライドする場合を除きます)。

この手法を使用したYAMLベースのダイアログ・フローの例については、例: YAMLダイアログ・フローでの関連質問と検索語の関連付けを参照してください。

検索語としてのユーザー発話の使用

「ナレッジ検索」ダイアログ・フロー・コンポーネントの一般的な用途は、スキルが処理するように設計されていないユーザーの質問またはリクエストを試行して解決することです。ユーザーの発話がインテントに解決されない場合は、コンポーネントを使用して、ユーザー発話に設定した「検索条件」プロパティでナレッジ・ベースを検索できます。結果が見つからない場合、またはユーザーが有用な結果を見つけられない場合は、ライブ・エージェントへの転送や質問の言い換えなどの他のオプションを提供できます。

これを行うには、コンポーネントの「検索条件」プロパティを${skill.system.nlpresult.value.query} (ユーザーの発話を取得する式)に設定します。

YAMLベースのダイアログ・フローでは、searchTermプロパティを使用して${iResult.value.query}に設定します。サンプルのYAMLコードについては、例: 検索語としてのユーザー発話の採用を参照してください。

ノート

この手法では、スキル内の未解決のインテントが処理されます。フローがデジタル・アシスタントの未解決のインテントをナビゲートすると、リクエストはスキルのインテント・エンジンを経由せず、発話は${skill.system.nlpresult.value.query}にありません。この場合、検索文字列に${system.message.messagePayload.text}を使用する状態を作成することを検討してください。次に、デジタル・アシスタントを開き、「設定」→「構成」ページで、「スキル状態マッピング」に移動し、「デジタル・アシスタントのカスタムUnresolvedIntentスキル」および「デジタル・アシスタントのカスタムUnresolvedIntent状態」を設定して、この状態を示します。

Knowledge Foundation検索語のすべての単語を含む結果のみ検索

デフォルトでは、Oracle B2C Service Knowledge Foundationは、検索語の単語を含むアンサーを検索します。検索語のすべての単語を含むアンサーのみを検索で返す場合は、ナレッジ検索ダイアログ・フロー・コンポーネントの「カスタム・プロパティ」プロパティに次のキー/値のペアを追加します:

word_connector: "AND"
ノート

word_connectorキーは、Knowledge Foundationでのみサポートされています。Oracle Fusion Serviceでは、word_connectorプロパティはサポートされません。

ダイアログ・フローがYAMLモードの場合、コードは次のようになります。

  startSearch:
    component: "System.KnowledgeSearch"  
    properties:
      searchServiceName: "KnowledgeSearch"
      searchTerm: "${searchTerm.value}"
      customProperties:
        word_connector: "AND"
    transitions:
      actions:
        resultSent: "offerMoreHelp"
        noResult: "reset"
        serverError: "handleSearchServerProblem"
      error: "handleSearchError"
      next: "reset"

製品およびカテゴリ別結果のフィルタ

「ナレッジ検索」ダイアログ・フロー・コンポーネントで、指定した製品またはカテゴリ(あるいはその両方)の検索結果のみを返すようにできます。

結果を製品またはカテゴリに関連する結果に制限するには、「結果フィルタ」プロパティを使用します。必要に応じて、ProductCategoryおよびStripe Codeアイテムを追加して、フィルタを定義します。フィルタのタイプごとに1つのみ指定できます。

ノート

ダイアログ・フローがYAMLモードの場合は、customFiltersプロパティを使用します。必要に応じてproductおよびcategoryアイテムを追加して、プロダクトまたはカテゴリ・フィルタを指定します。
      customFilters:
        - name: "product"
          value: "heart rate monitor"
        - name: "category"
          value: "returns"

チャット会話のナレッジ・ファウンデーション・レスポンスの調整

Oracle B2C Service Knowledge Foundationの回答は、通常、Webページ用に作成されているため、会話に全体を表示するには長すぎる場合があります。回答が長いと出力が切り捨てられるため、ユーザーは「詳細の表示」ボタンをクリックして完全な内容を表示する必要があります。回答が短い段落に収まらない場合は、チャット会話専用に調整した特別なレスポンスを追加することを検討してください。

回答のかわりに特別なレスポンスを表示するには、ナレッジ検索コンポーネントの「優先バージョンの結果」プロパティをSpecial Responseに設定し、「優先バージョンのみ表示」falseに設定します。このように設定すると、コンポーネントによって特別なレスポンスが出力されます(存在する場合)。それ以外の場合、結果サイズの制限に達していなければ、回答全体が出力されます。

ノート

スキルがYAMLダイアログ・モードの場合、対応するプロパティ名はresultVersionおよびresultVersionExclusiveです。

次のスクリーンショットは、回答全体と特別なレスポンスの違いを示しています。最初のスクリーンショットは、回答全体を示しています。「製品を登録するにはどうすればよいですか」に対するレスポンスが、「製品の登録は非常に重要であることをご存知ですか」と始まっており、人が質問に答える方法ではないことに注意してください。つまり会話らしくありません。また、第3段落の途中で回答が途切れています。2番目のスクリーンショットは特別なレスポンスを示しています。これは会話らしく、切捨ても行われていません。


kf-answer-full.pngの説明が続きます


kf-special-response.pngの説明が続きます

特別なレスポンスを追加する方法の詳細は、B2Cサービスの使用回答のHTMLエディタを参照してください。

「詳細の表示」ボタンの削除およびすべてのテキストの表示

デフォルトでは、「ナレッジ検索」ダイアログ・フロー・コンポーネントには、アンサーの最初の数行と、ユーザーがクリックするボタンのみが表示され、ブラウザ・タブにアンサー全体が表示されます。

アンサーのすべてのコンテンツを表示する場合は、ナレッジ検索コンポーネントの「Web記事リンク・ラベル」Onに設定し、systemComponent_KnowledgeSearch_resultLinkLabelリソース・バンドル・キーの値をFreeMarkerリテラル表記${r""}に設定します。

スキルがYAMLダイアログ・モードの場合、System.KnowledgeSearchresultLinkLabelプロパティを空の文字列("")に設定してこれを行います。

ノート

完全な回答を表示することを選択した場合は、回答を数画面分のテキストのみに制限するようにしてください。そうしないと、ユーザーは通常のサイズのチャット・ウィジェットでテキストの読取りが困難になる場合があります。

多言語ナレッジ検索の実装

Oracle Fusion Service Knowledge ManagementとOracle B2C Service Knowledge Foundationの両方が、指定したロケールの戻り結果をサポートしています。

Oracle Fusion Service Knowledge Managementの場合、検索では、profile.localeで識別されるロケールに関連付けられている記事が自動的に返されます。これをオーバーライドするには、コンポーネントの「ロケールを使用した検索」プロパティを設定します(YAMLダイアログ・モード・スキルの場合、これはlocaleプロパティです)。一致する記事がロケールに存在しない場合、noResultが返されます。

Oracle B2C Service Knowledge Foundationの場合、サービスには異なるロケール用の個別のインタフェースが必要であり、必要なインタフェースに接続するようにナレッジ検索統合を構成する必要があります。「ナレッジ検索」ダイアログ・フロー・コンポーネントがスキルによって起動されると、ロケールがスキルのprofile.locale値と一致するインタフェース上で検索が実行されます。これをオーバーライドするには、コンポーネントの「ロケールを使用した検索」プロパティを設定します(YAMLダイアログ・モード・スキルの場合、これはlocaleプロパティです)。一致がない場合は、ナレッジ検索統合のデフォルト・インタフェースが使用されます。

複数言語のOracle B2C Service Knowledge Foundation検索スキルを作成するステップは、次のとおりです。

  1. メイン・インタフェースの「ナレッジ検索サービスの追加」統合。次に、スキルで検索する他のインタフェースのロケールを統合に追加し、デフォルト・ロケールを指定します。サービス統合に指定したユーザーのプロファイルで、インタフェースへのアクセスを有効にする必要があることに注意してください。

  2. 次のいずれかのオプションを使用して、複数言語スキルを作成します:

  3. ナレッジ検索コンポーネントをダイアログ・フローに追加します。コンポーネントでprofile.locale値を使用して検索するインタフェースを決定しない場合は、「ロケールを使用した検索」プロパティを目的のロケールに設定します。どのインタフェースもロケールをサポートしていない場合、コンポーネントはデフォルトのインタフェースを検索します。

Knowledge Foundationのサンプル・スキル

System.KnowledgeSearchコンポーネントの使用例については、CXS.KnowledgeSearchスキル(YAMLモードで開発された)を含むCX Serviceテンプレートをダウンロードします。手順については、Oracle Digital Assistant CXSの概要のパワー・ポイント・スライドを参照してください。

Oracle B2C Serviceチャットでのナレッジ検索コンポーネントの表示方法

「ナレッジ検索」ダイアログ・フロー・コンポーネントの結果がどのように表示されるかは、顧客ポータルを介してアクセスされるデフォルトのチャットに表示されるか、Oracle Inlay Toolkit埋込みチャット・インレーに表示されるかによって異なります。

  • リンク: リンクは、埋込みチャット・インレーではボタンとして表示されます。デフォルトのチャットでは、ラベルはテキストとして表示され、その後にクリック可能なURLが続きます。
  • 複数の結果: 複数の結果がある場合、結果はカードとして水平または垂直方向に表示されます。これは、コンポーネントのcardLayoutプロパティの値に応じて異なります(デフォルトはhorizontalです)。デフォルトのチャットでは、結果は垂直方向に表示されます。

イメージは結果に表示されないことに注意してください。

この表は、埋込みチャット・インレーおよびデフォルトのチャットでの単一および複数の結果の表示方法を示しています。

コンポーネント構成の例 埋込みチャット・インレー デフォルトのチャット

単一の結果の例(ビジュアル・モード):

  • 「最大結果数」プロパティ: 1
  • 「Web記事リンク・ラベル」プロパティ: On
  • 「Web検索ページ・リンク・ラベル」プロパティ: On
  • KnowledgeSearch - resultLinkLabelリソース・バンドル・エントリ: Show More
  • KnowledgeSearch - searchLinkLabelリソース・バンドル・エントリ: Search for Similar Answers

単一の結果の例(YAMLモード):

component: "System.KnowledgeSearch"
properties:
  ...      
  resultSizeLimit: 1
  resultLinkLabel: "Show More"
  searchLinkLabel: "Search for Similar Answers"
...
テキストで説明しています テキストで説明しています

複数の結果の例(ビジュアル・モード):

  • 「最大結果数」プロパティ: 3
  • 「Web記事リンク・ラベル」プロパティ: On
  • 「Web検索ページ・リンク・ラベル」プロパティ: On
  • KnowledgeSearch - resultLinkLabelリソース・バンドル・エントリ: Show More
  • KnowledgeSearch - searchLinkLabelリソース・バンドル・エントリ: Open Page with All Answers

複数の結果の例(YAMLモード):

component: "System.KnowledgeSearch"
properties:
  resultSizeLimit: 3 
  resultLinkLabel: "Show More"
  searchLinkLabel: "Open Page with All Answers"
...
テキストで説明しています テキストで説明しています

ナレッジ検索ダイアログ・フロー・コンポーネントは、Oracle B2C Serviceバージョン20A以降の埋込みチャット・インレーをサポートしています。埋込みチャット・インレーについて学習するには、Oracle Inlay Toolkitのドキュメントを参照してください。