56 ナレッジ検索
Oracle B2C Service Knowledge Foundationまたは「Oracle Fusionサービス」 Knowledge Managementを使用している場合は、組込みの「ナレッジ検索」ダイアログ・フロー・コンポーネントを使用して、そのサービスの記事を検索および表示できます。
スキルをナレッジ・ファンデーション・サービスと統合するには、次の手順を実行します:
-
「ナレッジ検索統合の追加」。 これは、サービス・インタフェースごとに1回のみ行う必要があります。
-
「ナレッジ検索コンポーネントの使用」の説明に従って、スキルのダイアログ・フローに1つ以上のナレッジ検索コンポーネントを追加します。
ナレッジ検索サービスの追加
スキルのナレッジ検索コンポーネントを使用して、Oracle B2C Service Knowledge Foundationまたは「Oracle Fusionサービス」 Knowledge Managementの記事を検索および取得するには、最初にサービスと統合するナレッジ検索サービスを作成する必要があります。
Knowledge Foundationのナレッジ検索サービスを作成する前に、Oracle B2C Serviceアカウント・マネージャがサイト・レベルでConnect Knowledge Foundation APIを有効にし、II_CONNECT_ENABLED構成設定がオンになっていることを確認します。 それ以外の場合、ナレッジ・サービス・コンポーネントを起動すると、グローバル・エラーが返されます。 例外コードはACCESS_DENIED
で、メッセージにはSOAP_SERVER_DISABLED
のメッセージ・ベース文字列が含まれます。 複数のインタフェースと統合する予定がある場合は、サービス統合に使用するユーザーのプロファイルで、インタフェースに対してアクセスが有効になっている必要があります。
ナレッジ検索サービスを作成するには、次のステップを実行します:
-
Oracle Digital Assistantで、
をクリックしてサイド・メニューを開き、「設定」、「追加サービス」、「ナレッジ検索」タブの順に選択します。
-
「+サービスの追加」をクリック
「新規ナレッジ検索統合サービス」ダイアログが表示されます。
-
次の情報を指定します:
フィールド 必須 説明 名前 Y 統合の一意の名前。 説明 N 統合の説明。 サービス・タイプ Y Oracle B2C Service Knowledge Foundationまたは「Oracle Fusionサービス」 Knowledge Managementのいずれと統合するかを選択します。 ホスト Y サービスの完全修飾ドメイン。 たとえば: interfacename.custhelp.com
。Service Cloudのバージョン Y (Oracle B2C Serviceの場合のみ) Oracle B2C Serviceのバージョンが20A以降か、それより前かを示します。 認証タイプ Y (「Oracle Fusionサービス」の場合のみ)。 デフォルトでは、サインイン・ユーザーと匿名ユーザーの両方が記事にアクセスできるように設定されています。 警告: 24.02では、サインイン・ユーザーのみが記事完全にテストされていませんにアクセスできるようにするオプション。
User Name Y ナレッジ・サービス・アカウントのユーザー名。 Oracle B2C Serviceの場合、ユーザーは、「プロファイル・パーミッション管理」タブで選択したパブリック・ナレッジ・ファンデーションAPIアカウント認証およびセッション認証権限を持つOracle B2C Serviceプロファイルに関連付けられている必要があります。 このサービス統合に複数のインタフェースが含まれる場合、プロファイルでインタフェースに対してアクセスが有効になっている必要があります。
ユーザーには、スキルで取得する必要がある記事へのアクセス権も必要です。
パスワード Y ユーザーのパスワードです。 検索パスまたはカスタムURL N コンポーネント検索ボタンをデフォルトの検索リンクではなくカスタムURLに移動する場合は、ここでそれを指定できます。 <SEARCH_TERM>
プレースホルダーを使用して、URLに検索語を配置する場所を指定できます。B2Cサービスの場合、絶対URLを使用する場合、スキルは「製品およびカテゴリによる結果のフィルタ」で説明されている検索フィルタをURLに追加しないことに注意してください。
結果パスまたはカスタムURL N コンポーネントにデフォルトの結果リンクではなくカスタムURLに移動するボタンを表示する場合は、ここでそれを指定できます。 <ANSWER_ID>
プレースホルダーを使用して、URLに記事IDを配置する場所を指定できます。 -
「作成」をクリックします。
「Oracle Fusionサービス」 Knowledge Managementと統合する場合は、ステップ7に進みます。
-
Oracle B2C Serviceの場合、ホスト・サイトに複数のインタフェースがある場合は、メイン(デフォルトのロケール)インタフェースを選択するように求められます。
次のステップでは、さらにインタフェースを追加できます。 デフォルトのインタフェースを変更することもできます。
-
Oracle B2C Serviceサービスにロケールごとに異なるインタフェースがある場合は、「+ロケールの追加」をクリックしてサービス統合に含めます。 追加するインタフェースを選択し、インタフェースのホストを指定する必要があります。 ロケールごとに1つのインタフェースのみを追加できます。
サービス統合に使用するユーザーのプロファイルでは、インタフェースに対してアクセスを有効にする必要があります。
ナレッジ検索コンポーネントでマルチ・インタフェース・サービス統合を使用する場合は、「ロケールを使用して検索」プロパティを使用して検索するインタフェースを指定します。 (「YAMLベース」ダイアログ・フローは、
locale
プロパティです。) プロパティのデフォルト値はprofile.locale
です。 どのインタフェースもロケールをサポートしていない場合、コンポーネントはデフォルト・インタフェースを検索します。 -
「設定の確認」をクリックして、Oracle Digital Assistantがサービスに正常に接続できるかどうかを確認します。
ナレッジ・ファウンデーション検索条件のテスト
検索語をテストするには:
-
Oracle Digital Assistantで、
をクリックしてサイド・メニューを開き、「設定」、「追加サービス」、「ナレッジ検索」タブの順に選択します。
-
ナレッジ検索サービスを選択し、検索語をテストするService Cloudホストをクリックします。
サービス検索ページが表示されます。 検索語を入力して結果を表示します。
ナレッジ検索コンポーネントの使用
「ナレッジ検索」ダイアログ・フロー・コンポーネントを使用して、ナレッジ・サービスの情報を検索および表示します。
このコンポーネントを使用して、検索語、検索するナレッジ検索サービス、検索する製品またはカテゴリ(あるいはその両方)および表示する結果の数を指定します。 ラベルおよびプロンプトを構成することもできます。 Oracle B2C Service Knowledge Foundationでは、アンサーまたは特別なレスポンスを表示するかどうか、および検索するマルチ・ロケール・インタフェースを指定できます。 コンポーネント・プロパティの詳細および遷移は、ビジュアル・フロー・デザイナの「ナレッジ検索」 (およびYAMLモードで開発されたダイアログの場合はSystem.KnowledgeSearch)で説明されています。
特定の質問セットに対する回答を提供するだけでなく、ナレッジ検索を使用して未解決のインテントを処理することもできます。 ユーザーの発話がスキルの信頼度しきい値内のインテントに解決されない場合、スキルは発話を検索語として使用してナレッジ・ベースを検索できます。 たとえば、ナレッジ・ベースには、返品ポリシー、返品コストの出荷、およびウェアラブル製品を返品できるかどうかに関する記事が含まれている場合があります。 製品オーダー・スキルには、正確なナレッジ・ベース検索を使用してこれらの回答を返すように特別に調整されたインテントを含めることができます。 保証に関する質問など、スキルが具体的に処理しない関連質問を尋ねると、質問は未解決のインテントに解決され、スキルはユーザー質問を検索語として使用してナレッジ・ベース検索を実行できます。
この方法を実装するには、次のステップを実行します:
-
関連する一連の質問を特定の検索語に関連付けます。:スキルで使用するナレッジ・ベースの回答ごとに、一連の発話例(トレーニング・コーパス)を使用してインテントを作成します。 ユーザー発話がそのインテントに解決されたら、ダイアログ・フローを、インテントのアンサーを返す検索語を使用してナレッジ・ベースを検索する状態に遷移します。 トレーニング・コーパスと自然言語パーサー(NLP)は、スキルがその意図したトレーニング・コーパスと同様の質問を解決するのに役立ちます。
-
未解決のインテントの検索語としてのユーザー発話の使用:ユーザー発話がスキル信頼度レベル内のインテントに解決されない場合、検索語をユーザー発話に設定してナレッジ・ベースを検索する状態にダイアログ・フローを遷移できます。 つまり、ロールオーバー検索を実行します。
このコンポーネントを使用する前に、まず「ナレッジ検索統合の作成」を使用する必要があります。
関連する質問と検索語の関連付け
ナレッジ・ベース検索の検索語としてユーザー発話を単純に使用することもできますが、多くの場合、インテントおよび自然言語解析機能を活用して、スキルが特定の質問に対して可能なかぎり最良の回答を表示するようにすることをお薦めします。
スキルに組み込むナレッジ・ベースのアンサーごとにインテントを作成することで、インテントの例発話(トレーニング・コーパス)を使用して、様々な質問をそのアンサーに関連付けることができます。 トレーニング・コーパスを使用して、自然言語パーサー(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を使用することもできます。 - 変数設定コンポーネントを使用してフローを開始し、インテント名(
intentName
など)を保持する変数を作成し、その値として次のFreeMarker式を入力します:${skill.system.nlpresult.value.intentMatches.summary[0].intent}
- 追加した変数の設定コンポーネントの後に、検索語に別の変数の設定コンポーネント(
searchTerm
など)を追加し、その値として次のFreeMarker式を入力します:${searchTerms.value[intentName.value]}
この式では、前に定義した
searchTerms
マップを使用して、解決されたインテントに基づいて検索語を決定します。 - 2番目の変数の設定コンポーネントの後に、ナレッジ検索コンポーネントを追加し、そのコンポーネントを「検索する用語」プロパティに
${searchTerm.value}"
に設定します。 -
ナレッジ検索コンポーネントの状態で、「検索サービス名」をナレッジ検索サービスの名前に設定します。
-
ナレッジ検索コンポーネントの後に、
actions
、error
およびnext
遷移の状態を追加します。 -
「検証」をクリックして、ダイアログ・フローにエラーがないことを確認します。
-
「トレイン」をクリックして、例の発話でスキルをトレーニングします。
- スキルの「インテント」ページで、検索語に関連付けられている各インテントをこのフローにマップします。
ヒント:
「結果の前に表示するテキスト」、「Web記事リンク・ラベル」および「Web検索ページ・リンク・ラベル」プロパティのデフォルト値は、スキルのリソース・バンドルに格納されます。 デフォルトを変更するには、スキルの「リソース・バンドル」ページをclicking
この手法を使用したYAMLベースのダイアログ・フローの例については、「例: YAMLダイアログ・フローでの関連質問と検索語の関連付け」を参照してください。
検索条件としてのユーザー発話の使用
「ナレッジ検索」ダイアログ・フロー・コンポーネントの一般的な用途は、スキルが処理するように設計されていないユーザーの質問またはリクエストを試して解決することです。 ユーザーの発話がインテントに解決されない場合は、コンポーネントを使用して、「検索する用語」プロパティがユーザー発話に設定されたナレッジ・ベースを検索できます。 結果が見つからない場合、またはユーザーが結果を見つけられない場合は、ライブ・エージェントへの転送や質問の言い換えなどの他のオプションを提供できます。
これを行うには、コンポーネントの「検索する用語」プロパティを${skill.system.nlpresult.value.query}
(ユーザーの発話を取得する式)に設定します。
「YAMLベース」ダイアログ・フローでは、searchTerm
プロパティを使用して、${iResult.value.query}
に設定します。 サンプルのYAMLコードについては、「例: 検索条件としてのユーザー発話の使用」を参照してください。
ノート:
この手法では、スキル内の未解決のインテントが処理されます。 フローがデジタル・アシスタントの未解決インテントをナビゲートすると、リクエストはスキルのインテント・エンジンを経由せず、発話は${skill.system.nlpresult.value.query}
にありません。 この場合、検索文字列に${system.message.messagePayload.text}
を使用する状態を作成することを検討してください。 次に、デジタル・アシスタントを開き、「設定>構成」ページで「スキル状態マッピング」に移動し、「Digital AssistantカスタムUnresolvedIntentスキル」および「Digital AssistantカスタムUnresolvedIntentの状態」をこの状態を指すように設定します。
ナレッジ・ファウンデーション検索語のすべての単語を含む結果のみを検索
デフォルトでは、Oracle B2C Service Knowledge Foundationは、検索語のいずれかの単語を含むアンサーを検索します。 検索語のすべての単語を含むアンサーのみを検索で返す場合は、「ナレッジ検索」ダイアログ・フロー・コンポーネントの「カスタム・プロパティ」プロパティに次のキーと値のペアを追加します:
word_connector: "AND"
ノート:
word_connector
キーは、Knowledge Foundationでのみサポートされています。 「Oracle Fusionサービス」は、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"
製品およびカテゴリ別結果のフィルタ
「ナレッジ検索」ダイアログ・フロー・コンポーネントで、指定した製品またはカテゴリ(あるいはその両方)の検索結果のみを返すようにできます。
結果を製品またはカテゴリに関連する結果に制限するには、「結果フィルタ」プロパティを使用します。 必要に応じて、Product
、Category
および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番目のスクリーンショットは、より会話型で切り捨てられていない特別なレスポンスを示しています。
特別なレスポンスの追加の詳細は、「B2C Serviceの使用」での「アンサーのHTMLエディタ」を参照してください。
詳細の表示ボタンを削除し、すべてのテキストを表示
デフォルトでは、「ナレッジ検索」ダイアログ・フロー・コンポーネントには、ユーザーがクリックするボタンとともにアンサーの最初の数行のみが表示され、ブラウザ・タブにアンサー全体が表示されます。
アンサーのすべてのコンテンツを表示する場合は、ナレッジ検索コンポーネントの「Web記事リンク・ラベル」をOn
に設定し、systemComponent_KnowledgeSearch_resultLinkLabel
リソース・バンドル・キーの値をFreeMarkerリテラル表記${r""}
に設定します。
スキルがYAMLダイアログ・モードの場合、System.KnowledgeSearch
のresultLinkLabel
プロパティを空の文字列(""
)に設定してこれを行います。
ノート:
完全なアンサーを表示する場合は、いくつかのスクリーン・フル・テキストにアンサーを制限する必要があります。 そうしないと、ユーザーは通常サイズのチャット・ウィジェットでテキストを読み取るのが困難になる場合があります。多言語知識検索の実装
「Oracle Fusionサービス」 Knowledge ManagementおよびOracle B2C Service Knowledge Foundationは、指定されたロケールの結果を返すサポートです。
「Oracle Fusionサービス」 Knowledge Managementの場合、profile.locale
で識別されるロケールに関連付けられた記事が自動的に返されます。 これをオーバーライドするには、コンポーネントの「ロケールを使用して検索」プロパティを設定します(YAMLダイアログ・モード・スキルの場合、これはlocale
プロパティです)。 一致する記事がロケールに存在しない場合、noResult
が返されます。
Oracle B2C Service Knowledge Foundationの場合、サービスにはロケールごとに個別のインタフェースが必要で、希望のインタフェースに接続するようにナレッジ検索統合を構成する必要があります。 「ナレッジ検索」ダイアログ・フロー・コンポーネントがスキルによって起動されると、ロケールがスキルのprofile.locale
値と一致するインタフェース上で検索が実行されます。 これをオーバーライドするには、コンポーネントの「ロケールを使用して検索」プロパティを設定します(YAMLダイアログ・モード・スキルの場合、これはlocale
プロパティです)。 一致しない場合、ナレッジ検索統合のデフォルト・インタフェースが使用されます。
複数言語のOracle B2C Service Knowledge Foundation検索スキルを作成するステップは、次のとおりです:
-
メイン・インタフェースの「ナレッジ検索サービスの追加」統合。 次に、スキルで検索する他のインタフェースのロケールを統合に追加し、デフォルトのロケールを指定します。 サービス統合に指定するユーザーのプロファイルでは、インタフェースへのアクセスを有効にする必要があります。
-
次のいずれかのオプションを使用して複数言語スキルを作成します:
-
ネイティブ言語サポートを備えたスキルを作成し、リソース・バンドルを使用して、サポートする言語ごとに会話テキストを作成します(「スキルのネイティブ言語サポート」を参照)
-
「各言語のリソース・バンドルを使用しない複数言語スキルの作成」の説明に従って、英語をプライマリ言語として指定し、翻訳モードを使用するスキルを作成します。
-
-
ナレッジ検索コンポーネントをダイアログ・フローに追加します。 コンポーネントで
profile.locale
値を使用して検索するインタフェースを決定しない場合は、「ロケールを使用して検索」プロパティを目的のロケールに設定します。 どのインタフェースもロケールをサポートしていない場合、コンポーネントはデフォルト・インタフェースを検索します。
Knowledge Foundationのサンプル・スキル
System.KnowledgeSearch
コンポーネントの使用例については、CXS.KnowledgeSearchスキル(YAMLモードで開発された)を含むCX Serviceテンプレートをダウンロードします。 手順については、「Oracle Digital Assistant CXSの概要」 Power Pointのスライドを参照してください。
Oracle B2C Serviceチャットでのナレッジ検索コンポーネントの表示方法
「ナレッジ検索」ダイアログ・フロー・コンポーネントの結果の表示方法は、カスタマ・ポータルを介してアクセスされるデフォルトのチャットに表示されるか、Oracle Inlay Toolkit埋込みチャット・インレーに表示されるかによって異なります。
- リンク: リンクは、埋込みチャット・インレーにボタンとして表示されます。 デフォルトのチャットでは、ラベルはテキストとして表示され、その後にクリック可能なURLが続きます。
- 複数の結果: 複数の結果がある場合、結果はコンポーネントの
cardLayout
プロパティの値に応じて水平または垂直にカードとして表示されます(デフォルトは水平)。 デフォルトのチャットでは、結果は垂直に表示されます。
イメージは結果に表示されないことに注意してください。
この表は、埋込みチャット・インレーおよびデフォルト・チャットでの単一および複数の結果の表示を示しています。
コンポーネント構成の例 | 埋込みチャット・インレー | デフォルト・チャット |
---|---|---|
単一結果の例(ビジュアル・モード):
単一結果の例(YAMLモード):
|
![]() |
![]() |
複数の結果の例(ビジュアル・モード):
複数の結果の例(YAMLモード):
|
![]() |
![]() |
「ナレッジ検索」ダイアログ・フロー・コンポーネントは、Oracle B2C Serviceバージョン20A以降の埋込みチャット・インレーをサポートしています。 埋込みチャット・インレーの詳細は、「Oracle Inlay Toolkitのドキュメント」を参照してください。