ヘッドレスOracle Content ManagementによるOracle Digital Assistantチャットボットの構築

イントロダクション

Oracle Digital Assistantは、デジタル・アシスタントを作成およびデプロイできるプラットフォームです。デジタル・アシスタントは、AI駆動のインタフェースであり、ユーザーが様々なタスクを自然言語での会話で実行するのに役立ちます。ただし、コンテンツ管理システム(CMS)ですべてのコンテンツに対応する必要がある場合はどうなりますか。幸いなことに、Oracle Content Managementは、十分なヘッドレスのCMS機能を備え、すべてのコンテンツ管理およびガバナンスのニーズに対して優れたソリューションを備えています。

このチュートリアルでは、Oracle Content ManagementをヘッドレスのCMSとJavaScriptでのコンテンツ配信用のソフトウェア開発キット(SDK)を利用して、Oracle Digital Assistantでチャットボットを構築します。このチャットボット・サンプルは、GitHubで入手できます。

チュートリアルは次の4つのステップで構成されます。

  1. Oracle Content Managementの準備
  2. Oracle Digital Assistantスキルの構築
  3. チャットボットのWebアプリケーションの設定
  4. アプリケーションのデプロイ

前提条件

このチュートリアルを進める前に、まず次の情報を確認することをお勧めします。

このチュートリアルに従うには、次のものが必要です。

オラクルが構築しているもの

チャットボット・サンプルは、ユーザーが販売販促資料を検索するために使用できるボットを含む単一のランディング・ページで構成されます。ビジターは、「Sales Enablement」ボットに、メニュー・アイテムのリスト、メニュー・アイテムのカテゴリ、または検索問合せに関連するストーリーとお知らせの取得を依頼できます。

オラクルが作成しているものを確認するには、チュートリアルの終了状態、Oracle Content Managementのコンテンツを使用するODAチャットボットを次に示します。

https://headless.mycontentdemo.com/samples/oce-oda-sample/

このチュートリアルの最後にあるランディング・ページと「Sales Enablement」ボットは次のようになります。

この図は、「Sales Enablement」チャットボット・ウィンドウが開いているサイト・ランディング・ページと進行中の会話を示しています。

コンテンツ管理ODAチャットボット・フロー

Content Management ODAのチャットボット・サンプル・フローは次のとおりです。

  1. クライアントは、チャットボット・インタフェースを使用してODAチャネルにリクエストを行います。

  2. ODAチャネルには、このユーザー・リクエストを解決するスキルが関連付けられています。

  3. 解決されたエンティティまたは目的に基づいて、ODAスキルは次の様々なアクションを実行できます。

    • 解決されたエンティティにカテゴリ値が含まれている場合は、次のようになります。
      • ODAは、カスタム・コンポーネント・サービスを使用してコンテンツ管理を呼び出します。
      • カスタム・コンポーネント・サービスは、コンテンツ管理インスタンスのカテゴリ値とサーバー構成を使用し、インスタンスにリクエストを送信します
      • 次に、インスタンスはカスタム・コンポーネント・サービスにレスポンスを戻し、その後、ODAによってクライアントに送信されます。
    • それ以外の場合、ODAは定義された会話フローに応じてメッセージを送信します。
  4. クライアントによって受信されたレスポンスは、Web SDKによってレンダリングされ、ユーザーに表示されます。

このチュートリアルを終えると、Oracle Content Managementを利用するチャットボット・アプリケーションの構築方法を学習します。

タスク1: Oracle Content Managementの準備

まだOracle Content Managementインスタンスがない場合は、クイック・スタートを参照して、Oracle Cloudへの登録方法、Oracle Content Managementインスタンスのプロビジョニング方法、およびヘッドレスCMSとしてのOracle Content Managementの構成方法を学習します。

このチュートリアルでは、コンテンツ・モデルを作成する必要があります。空のリポジトリには、コンテンツ・タイプおよび関連コンテンツが含まれるダウンロード可能なアセット・パックを使用できます。

Oracle Content Managementを準備するには:

  1. チャネルおよびアセット・リポジトリの作成
  2. Oracle Content Managementサンプル資産パックのインポート

チャネルおよびアセット・リポジトリの作成

コンテンツを公開できるように、Oracle Content Managementでチャネルおよびアセット・リポジトリを最初に作成する必要があります。

Oracle Content Managementでチャネルおよびアセット・リポジトリを作成するには:

  1. Oracle Content Management Webインタフェースに管理者としてログインします。

  2. 左側のナビゲーション・メニューで「コンテンツ」を選択し、ページ・ヘッダーの選択リストから「チャネルの公開」を選択します。

    この図は、「コンテンツ」ページ・ヘッダーのドロップダウン・メニューで選択された「公開チャネル」オプションを示しています。

  3. 右上隅にある「Create」をクリックして、新しいチャネルを作成します。このチュートリアルの目的でチャネルにODAChatbotChannelという名前を付け、アクセスをパブリックのままにします。チャネルを作成するには、「保存」をクリックします。

    この図は、公開チャネル定義パネルを示しています。チャネル名フィールドには「ODAChatbotChannel」が表示されています。

  4. 左側のナビゲーション・メニューで「コンテンツ」を選択し、ページ・ヘッダーの選択リストから「リポジトリ」を選択します。

    この図は、「コンテンツ」ページ・ヘッダーのドロップダウン・メニューで選択された「リポジトリ」オプションを示しています。

  5. 右上隅にある「Create」をクリックして、新しいアセット・リポジトリを作成します。このチュートリアルの目的で、アセット・リポジトリに'ODAChatbotRepository'という名前を付けます。

    この図は、リポジトリ定義パネルを示しています。リポジトリ名フィールドには「ODAChatbotRepository」が表示されています。

  6. 「チャネルの公開」フィールドで、ODAChatbotChannelチャネルを選択して、ODAChatbotRepositoryリポジトリのコンテンツをODAChatbotChannelチャネルに公開できることをOracle Content Managementに指示します。終了したら、「Save」をクリックします。

    このイメージは、「公開チャネル」フィールドにODAChatbotChannelがあるリポジトリ定義パネルを示しています。

Oracle Content Managementサンプル資産パックのインポート

このチュートリアルに必要なすべてのコンテンツ・タイプ、アセットおよびタクソノミを含む事前構成済のContent Managementサンプル・アセット・パックをダウンロードできます。

このチュートリアルで使用しているコンテンツのコピーを、Content Managementサンプル・アセット・パックからアップロードできます。これにより、コンテンツ・タイプを試してコンテンツを変更できます。コンテンツ管理サンプル・アセット・パックをインポートする場合は、アセット・パック・アーカイブOCESamplesAssetPack.zipをダウンロードし、選択したディレクトリに抽出できます。

  1. Oracle Content Managementのダウンロード・ページから、コンテンツ管理サンプル・アセット・パック(OCESamplesAssetPack.zip)をダウンロードします。ダウンロードしたzipファイルをコンピュータ上の場所に抽出します。抽出後、この場所にはOCEODAChatbot_data.zipというファイルが含まれます。

  2. Oracle Content Management Webインタフェースに管理者としてログインします。

  3. 左側のナビゲーション・メニューで「コンテンツ」を選択し、ページ・ヘッダーの選択リストから「リポジトリ」を選択します。ここで、ODAChatbotRepositoryを選択し、上部のアクション・バーの「コンテンツのインポート」をクリックします。

    このイメージは、ODAChatbotRepositoryアイテムが選択された「リポジトリ」ページを示しています。

  4. ローカル・コンピュータから「ドキュメント」フォルダにOCEODAChatbot_data.zipをアップロードします。

    この図は、OCEODAChatbot_data.zipファイルのアップロード確認画面を示しています。

  5. アップロード後、OCEODAChatbot_data.zipを選択し、「OK」をクリックしてコンテンツをアセット・リポジトリにインポートします。

    この図は、「OK」ボタンが有効な、選択したOCEODAChatbot_data.zipファイルを示しています。

  6. コンテンツが正常にインポートされたら、「アセット」ページに移動し、ODAChatbotRepositoryリポジトリを開きます。関連するすべてのイメージ、コンテンツ項目およびタクソノミがアセット・リポジトリに追加されています。

    このイメージは、インポートされたすべてのアセットを含むODAChatbotRepositoryリポジトリを示しています。

  7. 左上の「すべて選択」「公開」の順にクリックして、インポートされたすべてのアセットを、前に作成した公開チャネルODAChatbotChannelに追加します。

    このイメージは、ODAChatbotRepositoryリポジトリを示しています。すべてのアセットが選択され、アクション・バーの「公開」オプションが表示されています。

  8. 公開する前に、すべてのアセットを検証する必要があります。最初にODAChatbotChannelを選択したチャネルとして追加し、「検証」ボタンをクリックします。

    このイメージは、「検証結果」ページを示しており、「チャネル」フィールドにODAChatbotChannelチャネルが追加され、検証するすべてのアセットおよび「検証」ボタンが有効になります。

  9. アセットの検証が完了したら、右上隅にある「公開」ボタンをクリックして、選択したチャネルにすべてのアセットを公開できます。

    このイメージは、「検証結果」ページを示しており、「チャネル」フィールドにODAChatbotChannelチャネルが追加され、すべてのアセットが検証され、「公開」ボタンが有効になります。

    これが完了すると、すべてのアセットが公開されている「アセット」ページに表示されます。(アセット名の上にあるアイコンでわかります。)

    このイメージは、「アセット」ページを示しており、すべてのアセットが公開されています。

  10. 左側のナビゲーション・メニューで「コンテンツ」を選択し、ページ・ヘッダーの選択リストから「タクソノミ」を選択します。

    このイメージは、「コンテンツ」ページ・ヘッダーのドロップダウン・メニューで選択された「タクソノミ」オプションを示しています。

  11. 「タクソノミ」ページで、SE2カテゴリ(SEC)分類を選択し、アクション・バーの「公開」をクリックして使用できるようにします。同じ方法でSE2 Products (SEP)分類を公開します。

タスク2: Oracle Digital Assistantスキルの作成

ODAチャットボット・アプリケーションでOracle Content Managementコンテンツを消費するために、GitHub上のオープンソース・リポジトリにあるContent Management ODAチャットボット・サンプルを使用できます。

ノート: ODAチャットボット・サンプルの使用はオプションであり、このチュートリアルで使用して、すぐに開始できるようにしてください。独自のチャットボット・アプリケーションを構築することもできます。

ODAでチャットボット・スキルを構築するには:

  1. サンプル・リポジトリのクローン
  2. ODAスキルをインスタンスにインポートします
  3. カスタム・コンポーネント・サービスを設定および構成します
  4. Oracle Content Management Content SDKの操作
  5. コンテンツSDKを使用したコンテンツのフェッチ
  6. カスタム・コンポーネント・サービスのパッケージ化およびデプロイ

サンプル・リポジトリのクローン

Content Management ODAのチャットボット・サンプルは、GitHubのオープンソース・リポジトリで入手できます。最初に、サンプル・リポジトリをGitHubからローカル・コンピュータにクローニングし、このサンプルと連携するようにディレクトリを変更する必要があります。


    git clone https://github.com/oracle/oce-integration-samples.git
    cd oce-integration-samples/oce-oda-chatbot-sample/headless-chatbot-sample

コード ベースが完成しました。このチュートリアルで使用するフォルダを詳しく見てみましょう。

ノート: site-integration-chatbot-sampleフォルダは、サイト統合チャットボットサンプルの一部です。このサンプルの詳細は、ここから学びます。

ODAスキルのインスタンスへのインポート

コード・ベースのODAChatbotフォルダは、このチュートリアルで使用されるODAスキルです。次のステップに従って、ODAインスタンスでスキルを作成およびトレーニングします:

  1. Oracle Digital Assistantインスタンスで、左側のナビゲーション・メニューを開き、「開発」「スキル」の順にクリックします。

    このイメージは、左側のナビゲーション・メニューが開き、「スキル」オプションが強調表示されたOracle Digital Assistanceインスタンスを示しています。

  2. ODA Chatbotスキルを検索します。

    ノート:インスタンスにこのスキルがない場合は、ODAChatbotフォルダのコンテンツを選択し、1つのzipファイルに圧縮します。ODAインスタンスの「スキル」ページで、「スキルのインポート」をクリックし、作成したzipファイルをインポートします。ODAChatbotフォルダを直接圧縮すると、インポート時にエラーが発生します。

  3. ODAチャットボット・スキル・カードで、オプション・アイコンをクリックし、「クローン」をクリックします。

    この図は、左側のナビゲーション・メニューを開いたOracle Digital Assistanceインスタンスを示しています。

  4. クローンされたスキルに一意の表示名を指定します。たとえば、「AB - ODA Chatbot」などのイニシャルを最初に追加します。その他の値はすべて変更しません。「後でクローン・スキルを開く」を選択し、「クローン」をクリックします。

    ノート:名前は、文字で始まる必要があり、文字、数字、期間およびアンダースコアのみを含めることができます。100文字を超えることはできません。

    この図は、左側のナビゲーション・メニューを開いたOracle Digital Assistanceインスタンスを示しています。

  5. 「トレイン」をクリックし、「Trainer Ht」が選択されていることを確認し、「送信」をクリックしてスキルをトレーニングします。

    ノート:このチュートリアルでは「Ht」トレーニングを使用します。これは迅速ですが、説明がわかりにくい方法です。本番作業では、Tmトレーニングを使用し、これによりインテント解決が向上します。

    この図は、左側のナビゲーション・メニューを開いたOracle Digital Assistanceインスタンスを示しています。

ODAチャットボット・スキル

スキルは、ユーザーと対話して、特定のタイプのタスク(食べ物のオーダー、予約、連絡先情報の変更など)を実行するように設計された、個別のチャットボットです。ODAChatbotスキルは、テキスト・メッセージと、選択リストなどの単純なUI要素の組合せを通じて、適切な販売支援のお知らせやストーリーを見つけるのに役立ちます。

デジタル・アシスタントとスキルの開発に取り込む前に、知っておく必要がある概念がいくつかあります:

Oracle Digital Assistantおよびスキルの詳細は、製品のドキュメンテーションを確認してください。

カスタム・コンポーネント・サービスの設定および構成

コード・ベースのsales-enablement-custom-componentフォルダは、このチュートリアルで使用されるODAカスタム・コンポーネントです。最初に、このODAカスタム・コンポーネントの依存関係をダウンロードする必要があります。headless-chatbot-sample/sales-enablement-custom-componentディレクトリから次のコマンドを実行します。

npm install

次に、Oracle Content Management Content SDK (および他のリクエスト)が正しいチャネル・トークンを使用して正しいインスタンスURLおよびAPIバージョンをターゲットにできるように、いくつかの情報を構成する必要があります。

これらの値は、新しい配信クライアントをインスタンス化するために、component/server-config-utils.jsで使用されます。

server-config-utils.jsファイルをテキスト・エディタで開きます。次のようなものが表示されます。


    contentServer: "https://instance-name.cec.ocp.oraclecloud.com",
    contentVersion: "v1.1",
    channelToken: "4b7b22ad5f5245f28579641d5489a98f",

各キーと値のペアを、インスタンスURL、ターゲットにするAPIバージョン、および公開チャネルに関連付けられたチャネル・トークンを反映するように変更します。たとえば、このチュートリアルで作成したチャネルはODAChatbotChannelです。

Oracle Content Management Content SDKの操作

Oracle Content Managementは、アプリケーションのコンテンツを検出して使用するためのSDKを提供します。SDKはNPMモジュールとして公開され、プロジェクトはGitHubでホストされています。

SDKの詳細は、ここを参照してください。

SDKは、package.jsonファイルでこのプロジェクトのランタイム依存性として登録されています。

コンテンツSDKを使用したコンテンツのフェッチ

コンテンツSDKを利用して、ODAカスタム・コンポーネントを介してチャットボット・スキルのコンテンツをフェッチできるようになりました。

Components/services.jsフォルダには、Content SDKを使用してOracle Content Managementからデータを取得するためのコードが含まれています。

component/server-config-utils.jsファイルは、Content SDKをインポートして、指定した構成を使用して配信クライアントを作成します。

次のコマンドはSDKをインポートします。

createDeliveryClient = require('@oracle/content-management-sdk');

次のコマンドは、配信クライアントを作成します。

deliveryClient = createDeliveryClient(serverconfig);

sales-enablement-custom-component/components/services.jsファイルには、チャットボットのコンテンツ・アイテムを取得するためのすべてのコードが含まれています。チャットボットのすべてのコンテンツをフェッチする主要な機能が1つあります。

ODAChatbotRepositoryリポジトリから特定の分類カテゴリのすべてのデータを取得するために、次の関数が呼び出されます。

function getStoryData(client, categoryName) {
     if (categoryName === 'Announcements') {
       return fetchItemsForAnnouncements(client, false)
         .then((topLevelItem) => {
           const { totalResults } = topLevelItem;
           const promises = [];
           // for each item, retrieve the result object and add it to the promise
           topLevelItem.items.forEach((item) => {
             promises.push(
               retrieveAnnouncementsObject(client, item.id)
                 .then((resultobject) => ({ ...resultobject })),
             );
           });
           // execute all the promises before returning the data
           return Promise.all(promises)
             .then((arrayOfItems) => ({
               totalResults,
               items: arrayOfItems.flat(),
             }));
         });
     }
     return fetchItemsForCategoryName(client, categoryName, false)
       .then((topLevelItem) => {
         const { totalResults } = topLevelItem;
         const promises = [];
         // for each item, retrieve the result object and add it to the promise
         topLevelItem.items.forEach((item) => {
           promises.push(
             retrieveResultObject(client, item.id)
               .then((resultobject) => ({ ...resultobject })),
           );
         });
         // execute all the promises before returning the data
         return Promise.all(promises)
           .then((arrayOfItems) => ({
             totalResults,
             items: arrayOfItems.flat(),
           }));
       });
    }

getStoryData関数は、リクエストがお知らせまたはストーリー・カテゴリのどちらに対して行われたかに応じて、2つの異なるコール・セットを作成します。

お知らせデータ

お知らせのすべてのコンテンツ・アイテムを取得するには、1つのデータ・コールが必要です。

getStoryData関数はfetchItemsForAnnouncementsをコールし、SE2-Announcementsタイプのすべてのコンテンツ・アイテムを取得します。次に、retrieveAnnouncementsObject関数が呼び出され、結果オブジェクトのタイトルおよびサマリー・フィールドにfetchItemsForAnnouncementsのデータが移入されます。

function fetchItemsForAnnouncements(client, limit) {
     return client.getItems({
       q: '(type eq "SE2-Announcement")',
       fields: 'all',
       expand: 'all',
       limit: limit ? 4 : 100,
       totalResults: true,
     });
    }

ストーリー・データ

ストーリのすべてのコンテンツ・アイテムを取得するには、いくつかのデータ・コールが必要です。

  1. 最初に、ユーザーが要求したカテゴリのすべてのコンテンツ・アイテムを取得します。

  2. 取得するコンテンツ・アイテムごとに、メディアURLを取得するコールを実行します。

getStoryData関数はfetchItemsForCategoryNameをコールし、SE2-Storyタイプのすべてのコンテンツ・アイテムと、ユーザーが指定した分類カテゴリ名を取得します。

function fetchItemsForCategoryName(client, categoryName, limit) {
     return client.getItems({
       q: `(taxonomies.categories.name eq "${categoryName}" and type eq "SE2-Story")`,
       fields: 'all',
       expand: 'all',
       limit: limit ? 4 : 100,
       totalResults: true,
     });
    }

fetchItemsForCategoryNameによってフェッチされたコンテンツ・アイテムには、メディアIDフィールドがあります。retrieveMediaURL関数は、このメディアIDを使用してメディアURLをフェッチします。

function retrieveMediaURL(client, identifier) {
     return client.getItem({
       id: identifier,
       fields: 'all',
       expand: 'all',
     }).then((asset) => {
       let url = null;
       if (asset.fields && asset.fields.renditions && asset.fields.fileType !== 'mp4') {
         const object = asset.fields.renditions.filter((item) => item.name === 'Small')[0];
         const format = object.formats.filter((item) => item.format === 'jpg')[0];
         const self = format.links.filter((item) => item.rel === 'self')[0];
         url = self.href;
       } else {
         url = asset.fields.native.links[0].href;
       }
       return [url, asset.fields.fileType];
     });
    }

カスタム・コンポーネント・サービスのパッケージ化およびデプロイ

カスタム・コンポーネントは、スキルの埋込みコンテナ、リモート・ノード・サーバーまたはOracle Mobile Hubにデプロイできます。このチュートリアルでは、カスタム・コンポーネント・サービスを埋込みコンテナにデプロイします。これを実現するには、まずカスタム・コンポーネント・サービスをデプロイ可能なファイルにパッケージ化する必要があります。

  1. JavaScript IDEに作業を保存します。

  2. 端末ウィンドウを開き、sales-enablement-custom-componentフォルダに移動します。

  3. sales-enablement-custom-componentフォルダに、次のnpmコマンドを入力します。

    bots-node-sdk pack

    package.jsonファイルのpreackスクリプトのため、このコマンドはまずpreapackコマンドを実行してパッケージを確認します。このコマンドは、ノード・プロジェクトとその依存関係をsales-enablement-custom-component-1.0.0.tgzというデプロイ可能なtarballにパッケージ化します。

    tarballには、devDependenciesを除くすべての依存関係が含まれている必要があります。

  4. ODAチャットボット・スキルで、左側のバーの「コンポーネント」アイコンをクリックして、コンポーネント・サービス・ページを開きます。新しいサービスを作成するには、「+サービス」をクリックします。

    このイメージは、スキルの空のサービス・ページを示しています。

  5. 「サービスの作成」ダイアログで、次の手順を実行します。

    1. 「名前」フィールドに、SalesEnablementCustomComponentと入力します。

    2. 「説明」フィールドには、オプションの説明を追加できます。

    3. 「埋込みコンテナ」オプションが選択されていることを確認してください。

    4. sales-enablement-custom-component-1.0.0.tgzファイルを「パッケージ・ファイル」フィールドにドラッグ・アンド・ドロップするか、アップロードします。

    5. 作成」をクリックする。

    この図は、「サービスの作成」ダイアログを示しています。

  6. 「ステータス」フィールドに「準備完了」が表示されるのを待ちます。数秒かかる場合があります。

  7. スキルの埋込みコンテナにデプロイされたカスタム・コンポーネント・サービスを使用すると、コンポーネントをテストできます。

Oracle Digital Assistantおよびカスタム・コンポーネントの詳細は、トレーニング・ドキュメンテーションを参照してください。

タスク3:チャットボット用のWebアプリケーションの設定

以前に作成したODAスキルは、複数のプラットフォームにデプロイして使用できます。ODAでサポートされている各種チャネルの詳細は、ドキュメンテーションを確認してください。

このチュートリアルでは、Oracle Webチャネルを作成して、Oracle Webチャット・ウィジェットがスキルに接続できるようにします。

ノート: Webクライアントへのチャットの追加の問題の1つは、Oracle Webチャネル、Webクライアントおよびチャット・セッションへのアクセスを保護しないかぎり、ハッカーがスキルおよびアクティブな会話にアクセスできることです。単純なブラウザ・コンソールでは、REST URIを検査し、会話のユーザーIDとチャネルIDを取得できます。Oracle Webチャネルの保護方法の詳細は、このチュートリアルを参照してください。

ODAチャットボット・スキルのWebへのデプロイは、次の2つのステップで構成されます。

  1. Oracle Digital Assistant Webチャネルの作成

  2. Webアプリケーションの構成

Oracle Digital Assistant Webチャネルの作成

Oracle WebクライアントがスキルにアクセスできるようにするOracle Digital Assistantユーザー・チャネルを作成します。このチャネルを使用できるのはWebクライアントのみであるため、クライアント認証を必要とするように構成します。

  1. Oracle Digital Assistantインスタンスで、左側のナビゲーション・メニューを開き、「開発」「チャネル」の順にクリックします。

    この図は、左側のナビゲーション・メニューが開き、「チャネル」オプションが強調表示されたOracle Digital Assistanceインスタンスを示しています。

  2. 「チャネル」ページで、「+チャネル」をクリックしてチャネルを追加します。

  3. 「チャネルの作成」ページで、次のスクリーンショットに示すように次の情報を入力します。

    • 名前:文字で始まり、文字、数字、ピリオドおよびアンダースコア(_)のみを含む一意の名前(AB_ODAChatbotなど)。
    • 説明: (オプション)チャネルの使用対象。
    • チャネル・タイプ: Oracle Web。
    • 許可されるドメイン: * (単一のアスタリスクで任意のドメインを使用できます。)
    • クライアント認証有効:オフのままにします。

    この図は、左側のナビゲーション・メニューが開き、「チャネル」オプションが強調表示されたOracle Digital Assistanceインスタンスを示しています。

  4. 作成」をクリックする。

  5. 「ルート先」ドロップダウン・リストで、このチュートリアルに使用するスキルを選択します。

    このイメージは、「ルート先」ドロップダウン・リストが開いている「チャネル」ページを示しています。

  6. 「チャネルが有効」オプションを「オン」に切り替えます。

  7. このチャネルに対して表示されるチャネルIDに注意してください。このチュートリアルの後半では、Webアプリケーションでこの値を使用します。

    この図は、チャットボットのルーティング情報を含む「チャネル」ページを示しています。

  8. Webブラウザのアドレス・フィールドに表示されるインスタンスURL (たとえば、oda-xxxx.data.digitalassistant.oci.oraclecloud.com)から、Oracle Digital Assistantのホストおよびドメイン(完全修飾ドメイン名として参照)にも注意してください。この値は、チュートリアルの後半で使用します。

これで、Webページのチャットボットをスキルに接続するようにインスタンスが設定されました。

Webアプリケーションの構成

次のステップでは、Webアプリケーションを構成します。

  1. 最新バージョンのOracle Web SDKをダウンロードし、選択したフォルダに解凍します。サイド・メニューを開き、「ダウンロード」をクリックして、デジタル・アシスタント・インスタンスからこのSDKのダウンロード・ページに移動することもできます。

  2. Oracle Web SDKフォルダからネイティブ・クライアント-sdk-js/web-sdk.jsファイルをコピーし、WebApp/scriptsフォルダに配置します。

    このイメージは、WebApp/scriptsフォルダのWeb-sdkファイルを示しています。

    SDKは、Oracle Digital Assistantとスキル(またはデジタル・アシスタント)の間にあるOracle Chat Serverに接続します。次に、チャット・サーバーは、処理のためにメッセージをスキルに渡し、スキルのレスポンスをクライアントに送信します。

  3. WebApp/scripts/settings.jsファイルをエディタで開きます。次のchatWidgetSettingsプロパティを設定します:

    • URI: Oracle Webチャネルの作成時に書き留めたホスト名およびドメイン名(xxx.xxx.digitalassistant.xxx.xxx.xxx.comなど)。https://を含めないでください。

    • channelId:以前に作成したチャネルのチャネルID。

    次に例を示します:

    let chatWidgetSettings = {
          URI: 'xxxx.xxx.digitalassistant.xxx.xxx.com',
          clientAuthEnabled: isClientAuthEnabled, 
          channelId: '12a45b92-2c85-88aa-810d-1dc0d1cfe472'
          ...
  4. ファイルを保存して閉じます。

WebアプリケーションとともにOracle Webチャネルの準備ができました。これで、チャットボット・アプリケーションを実行し、アクションが実行される準備ができました。

タスク4:アプリケーションのデプロイ

コンテンツ管理ODAチャットボット・サンプルを構築したので、稼働する前に問題をデバッグしてアプリケーションをプレビューできるように、ローカル・ブラウザで表示する必要があります。

  1. WebブラウザでWebApp/index.htmlファイルを開きます。

  2. チャット・ウィンドウが開いた状態でWebアプリケーションが表示されます。チャット・ウィジェットが開いていない場合は、チャット・アイコンをクリックして開きます。

  3. スキルと会話して、Webアプリケーションが適切に構成されていることを確認します。