ヘッドレス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つのステップで構成されます。
前提条件
このチュートリアルを進める前に、まず次の情報を確認することをお勧めします。
このチュートリアルに従うには、次のものが必要です。
- Oracle Content Managementサブスクリプション
- コンテンツ管理者ロールを持つOracle Content Managementアカウント
- Oracle Digital Assistant (ODA)のサブスクリプション
- ODAインスタンス
- グローバル・アクセス用にNode.jsおよびNode Package Manager (NPM)がインストールされているWindowsまたはMacコンピュータ
オラクルが構築しているもの
チャットボット・サンプルは、ユーザーが販売販促資料を検索するために使用できるボットを含む単一のランディング・ページで構成されます。ビジターは、「Sales Enablement」ボットに、メニュー・アイテムのリスト、メニュー・アイテムのカテゴリ、または検索問合せに関連するストーリーとお知らせの取得を依頼できます。
オラクルが作成しているものを確認するには、チュートリアルの終了状態、Oracle Content Managementのコンテンツを使用するODAチャットボットを次に示します。
https://headless.mycontentdemo.com/samples/oce-oda-sample/
このチュートリアルの最後にあるランディング・ページと「Sales Enablement」ボットは次のようになります。

コンテンツ管理ODAチャットボット・フロー
Content Management ODAのチャットボット・サンプル・フローは次のとおりです。
クライアントは、チャットボット・インタフェースを使用してODAチャネルにリクエストを行います。
ODAチャネルには、このユーザー・リクエストを解決するスキルが関連付けられています。
解決されたエンティティまたは目的に基づいて、ODAスキルは次の様々なアクションを実行できます。
- 解決されたエンティティにカテゴリ値が含まれている場合は、次のようになります。
- ODAは、カスタム・コンポーネント・サービスを使用してコンテンツ管理を呼び出します。
- カスタム・コンポーネント・サービスは、コンテンツ管理インスタンスのカテゴリ値とサーバー構成を使用し、インスタンスにリクエストを送信します
- 次に、インスタンスはカスタム・コンポーネント・サービスにレスポンスを戻し、その後、ODAによってクライアントに送信されます。
- それ以外の場合、ODAは定義された会話フローに応じてメッセージを送信します。
- 解決されたエンティティにカテゴリ値が含まれている場合は、次のようになります。
クライアントによって受信されたレスポンスは、Web SDKによってレンダリングされ、ユーザーに表示されます。
このチュートリアルを終えると、Oracle Content Managementを利用するチャットボット・アプリケーションの構築方法を学習します。
タスク1: Oracle Content Managementの準備
まだOracle Content Managementインスタンスがない場合は、クイック・スタートを参照して、Oracle Cloudへの登録方法、Oracle Content Managementインスタンスのプロビジョニング方法、およびヘッドレスCMSとしてのOracle Content Managementの構成方法を学習します。
このチュートリアルでは、コンテンツ・モデルを作成する必要があります。空のリポジトリには、コンテンツ・タイプおよび関連コンテンツが含まれるダウンロード可能なアセット・パックを使用できます。
Oracle Content Managementを準備するには:
チャネルおよびアセット・リポジトリの作成
コンテンツを公開できるように、Oracle Content Managementでチャネルおよびアセット・リポジトリを最初に作成する必要があります。
Oracle Content Managementでチャネルおよびアセット・リポジトリを作成するには:
Oracle Content Management Webインタフェースに管理者としてログインします。
左側のナビゲーション・メニューで「コンテンツ」を選択し、ページ・ヘッダーの選択リストから「チャネルの公開」を選択します。

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

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

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

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

Oracle Content Managementサンプル資産パックのインポート
このチュートリアルに必要なすべてのコンテンツ・タイプ、アセットおよびタクソノミを含む事前構成済のContent Managementサンプル・アセット・パックをダウンロードできます。
このチュートリアルで使用しているコンテンツのコピーを、Content Managementサンプル・アセット・パックからアップロードできます。これにより、コンテンツ・タイプを試してコンテンツを変更できます。コンテンツ管理サンプル・アセット・パックをインポートする場合は、アセット・パック・アーカイブOCESamplesAssetPack.zipをダウンロードし、選択したディレクトリに抽出できます。
Oracle Content Managementのダウンロード・ページから、コンテンツ管理サンプル・アセット・パック(OCESamplesAssetPack.zip)をダウンロードします。ダウンロードしたzipファイルをコンピュータ上の場所に抽出します。抽出後、この場所にはOCEODAChatbot_data.zipというファイルが含まれます。
Oracle Content Management Webインタフェースに管理者としてログインします。
左側のナビゲーション・メニューで「コンテンツ」を選択し、ページ・ヘッダーの選択リストから「リポジトリ」を選択します。ここで、ODAChatbotRepositoryを選択し、上部のアクション・バーの「コンテンツのインポート」をクリックします。

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

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

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

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

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

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

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

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

「タクソノミ」ページで、SE2カテゴリ(SEC)分類を選択し、アクション・バーの「公開」をクリックして使用できるようにします。同じ方法でSE2 Products (SEP)分類を公開します。
タスク2: Oracle Digital Assistantスキルの作成
ODAチャットボット・アプリケーションでOracle Content Managementコンテンツを消費するために、GitHub上のオープンソース・リポジトリにあるContent Management ODAチャットボット・サンプルを使用できます。
ノート: ODAチャットボット・サンプルの使用はオプションであり、このチュートリアルで使用して、すぐに開始できるようにしてください。独自のチャットボット・アプリケーションを構築することもできます。
ODAでチャットボット・スキルを構築するには:
- サンプル・リポジトリのクローン
- ODAスキルをインスタンスにインポートします
- カスタム・コンポーネント・サービスを設定および構成します
- Oracle Content Management Content SDKの操作
- コンテンツSDKを使用したコンテンツのフェッチ
- カスタム・コンポーネント・サービスのパッケージ化およびデプロイ
サンプル・リポジトリのクローン
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
コード ベースが完成しました。このチュートリアルで使用するフォルダを詳しく見てみましょう。
ODAChatbotフォルダはチャットボット・スキルです。

sales-enablement-custom-componentフォルダはODAカスタム・コンポーネントです。

WebAppフォルダはWebアプリケーションです。

ノート: site-integration-chatbot-sampleフォルダは、サイト統合チャットボットサンプルの一部です。このサンプルの詳細は、ここから学びます。
ODAスキルのインスタンスへのインポート
コード・ベースのODAChatbotフォルダは、このチュートリアルで使用されるODAスキルです。次のステップに従って、ODAインスタンスでスキルを作成およびトレーニングします:
Oracle Digital Assistantインスタンスで、左側のナビゲーション・メニューを開き、「開発」、「スキル」の順にクリックします。

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

クローンされたスキルに一意の表示名を指定します。たとえば、「AB - ODA Chatbot」などのイニシャルを最初に追加します。その他の値はすべて変更しません。「後でクローン・スキルを開く」を選択し、「クローン」をクリックします。
ノート:名前は、文字で始まる必要があり、文字、数字、期間およびアンダースコアのみを含めることができます。100文字を超えることはできません。

「トレイン」をクリックし、「Trainer Ht」が選択されていることを確認し、「送信」をクリックしてスキルをトレーニングします。
ノート:このチュートリアルでは「Ht」トレーニングを使用します。これは迅速ですが、説明がわかりにくい方法です。本番作業では、Tmトレーニングを使用し、これによりインテント解決が向上します。

ODAチャットボット・スキル
スキルは、ユーザーと対話して、特定のタイプのタスク(食べ物のオーダー、予約、連絡先情報の変更など)を実行するように設計された、個別のチャットボットです。ODAChatbotスキルは、テキスト・メッセージと、選択リストなどの単純なUI要素の組合せを通じて、適切な販売支援のお知らせやストーリーを見つけるのに役立ちます。
デジタル・アシスタントとスキルの開発に取り込む前に、知っておく必要がある概念がいくつかあります:
インテント -ユーザーがスキルによって実行されることを期待するアクションまたはタスクのカテゴリ。このスキルには、次の2つの目的があります。
- こんにちは:このインテントは、ユーザーへのようこそメッセージを表示します。
- StoryIntent:このインテントは、Oracle Content Managementの適切なメニューおよびコンテンツ・アイテムを示します。
エンティティ -ユーザー入力から情報の重要な部分を特定する変数で、これにより、スキルはタスクを実行できるようになります。このスキルには、次の7つのエンティティがあります。
- TopMenu:メニュー・アイテムを含む値リスト・エンティティです。
- HomeMenu:「ホーム」メニューのカテゴリを含む値リスト・エンティティです。
- CafeSupremoMenu:「Cafe Supremo」メニューのカテゴリを含む値リスト・エンティティです。
- LearningMenu:「学習」メニューのカテゴリを含む値リスト・エンティティです。
- SellingMenu:「販売」メニューのカテゴリを含む値リスト・エンティティです。
- MenuBag:これは、メニュー・アイテム・エンティティのコンポジット・バッグ・エンティティです。つまり、HomeMenu、CafeSupremoMenu、LearningMenuおよびSellingMenuエンティティです。
- StoryCategory:すべてのストーリー・カテゴリを含む値リスト・エンティティです。
インテントとエンティティは両方とも自然言語処理(NLP)の一般的な概念です。NLPは、テキストの意図と関連情報をテキストから抽出する科学的な方法です。
コンポーネント -スキルがユーザーに応答できるように様々な関数をスキルに提供します。これらは、テキストの出力などの汎用関数や、バックエンドから情報を返し、カスタム・ロジックを実行できるカスタム・コンポーネントになります。スキルには、REST APIを介してOracle Content Managementからコンテンツ・アイテムをフェッチする、sales-enablement-custom-componentというカスタム・コンポーネント・サービスが1つあります。
ダイアログ・フロー -スキルとユーザー間の対話の定義。ダイアログ・フローでは、スキルがユーザー入力に対してどのように応答し、ユーザー入力に従ってどのように動作するかが記述されます。
チャネル -ユーザーはメッセージング・プラットフォームまたはクライアント・メッセージング・アプリからデジタル・アシスタントおよびスキルにアクセスできます。1つのデジタル・アシスタントまたはスキルには、様々なサービスで同時に実行できるように複数のチャネルを構成できます。このチュートリアルでは、Oracle Webチャネルを使用してWebアプリケーションのスキルにアクセスします。
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,
});
}ストーリー・データ
ストーリのすべてのコンテンツ・アイテムを取得するには、いくつかのデータ・コールが必要です。
最初に、ユーザーが要求したカテゴリのすべてのコンテンツ・アイテムを取得します。
取得するコンテンツ・アイテムごとに、メディア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にデプロイできます。このチュートリアルでは、カスタム・コンポーネント・サービスを埋込みコンテナにデプロイします。これを実現するには、まずカスタム・コンポーネント・サービスをデプロイ可能なファイルにパッケージ化する必要があります。
JavaScript IDEに作業を保存します。
端末ウィンドウを開き、sales-enablement-custom-componentフォルダに移動します。
sales-enablement-custom-componentフォルダに、次のnpmコマンドを入力します。
bots-node-sdk packpackage.jsonファイルのpreackスクリプトのため、このコマンドはまずpreapackコマンドを実行してパッケージを確認します。このコマンドは、ノード・プロジェクトとその依存関係をsales-enablement-custom-component-1.0.0.tgzというデプロイ可能なtarballにパッケージ化します。
tarballには、devDependenciesを除くすべての依存関係が含まれている必要があります。
ODAチャットボット・スキルで、左側のバーの「コンポーネント」アイコンをクリックして、コンポーネント・サービス・ページを開きます。新しいサービスを作成するには、「+サービス」をクリックします。

「サービスの作成」ダイアログで、次の手順を実行します。
「名前」フィールドに、SalesEnablementCustomComponentと入力します。
「説明」フィールドには、オプションの説明を追加できます。
「埋込みコンテナ」オプションが選択されていることを確認してください。
sales-enablement-custom-component-1.0.0.tgzファイルを「パッケージ・ファイル」フィールドにドラッグ・アンド・ドロップするか、アップロードします。
「作成」をクリックする。

「ステータス」フィールドに「準備完了」が表示されるのを待ちます。数秒かかる場合があります。
スキルの埋込みコンテナにデプロイされたカスタム・コンポーネント・サービスを使用すると、コンポーネントをテストできます。
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つのステップで構成されます。
Oracle Digital Assistant Webチャネルの作成
Oracle WebクライアントがスキルにアクセスできるようにするOracle Digital Assistantユーザー・チャネルを作成します。このチャネルを使用できるのはWebクライアントのみであるため、クライアント認証を必要とするように構成します。
Oracle Digital Assistantインスタンスで、左側のナビゲーション・メニューを開き、「開発」、「チャネル」の順にクリックします。

「チャネル」ページで、「+チャネル」をクリックしてチャネルを追加します。
「チャネルの作成」ページで、次のスクリーンショットに示すように次の情報を入力します。
- 名前:文字で始まり、文字、数字、ピリオドおよびアンダースコア(_)のみを含む一意の名前(AB_ODAChatbotなど)。
- 説明: (オプション)チャネルの使用対象。
- チャネル・タイプ: Oracle Web。
- 許可されるドメイン: * (単一のアスタリスクで任意のドメインを使用できます。)
- クライアント認証有効:オフのままにします。

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

「チャネルが有効」オプションを「オン」に切り替えます。
このチャネルに対して表示されるチャネルIDに注意してください。このチュートリアルの後半では、Webアプリケーションでこの値を使用します。

Webブラウザのアドレス・フィールドに表示されるインスタンスURL (たとえば、oda-xxxx.data.digitalassistant.oci.oraclecloud.com)から、Oracle Digital Assistantのホストおよびドメイン(完全修飾ドメイン名として参照)にも注意してください。この値は、チュートリアルの後半で使用します。
これで、Webページのチャットボットをスキルに接続するようにインスタンスが設定されました。
Webアプリケーションの構成
次のステップでは、Webアプリケーションを構成します。
最新バージョンのOracle Web SDKをダウンロードし、選択したフォルダに解凍します。サイド・メニューを開き、「ダウンロード」をクリックして、デジタル・アシスタント・インスタンスからこのSDKのダウンロード・ページに移動することもできます。
Oracle Web SDKフォルダからネイティブ・クライアント-sdk-js/web-sdk.jsファイルをコピーし、WebApp/scriptsフォルダに配置します。

SDKは、Oracle Digital Assistantとスキル(またはデジタル・アシスタント)の間にあるOracle Chat Serverに接続します。次に、チャット・サーバーは、処理のためにメッセージをスキルに渡し、スキルのレスポンスをクライアントに送信します。
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' ...ファイルを保存して閉じます。
WebアプリケーションとともにOracle Webチャネルの準備ができました。これで、チャットボット・アプリケーションを実行し、アクションが実行される準備ができました。
タスク4:アプリケーションのデプロイ
コンテンツ管理ODAチャットボット・サンプルを構築したので、稼働する前に問題をデバッグしてアプリケーションをプレビューできるように、ローカル・ブラウザで表示する必要があります。
WebブラウザでWebApp/index.htmlファイルを開きます。
チャット・ウィンドウが開いた状態でWebアプリケーションが表示されます。チャット・ウィジェットが開いていない場合は、チャット・アイコンをクリックして開きます。
スキルと会話して、Webアプリケーションが適切に構成されていることを確認します。
ヘッドレスOracle Content ManagementによるOracle Digital Assistantチャットボットの構築
F52684-01
2022年1月
Copyright © 2021, 2022, Oracle and/or its affiliates.
原本著者: Oracle Corporation