4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

マーケットプレイス版Oracle WebCenter Content For OCIでセマンティック検索を有効にする

Posted at

はじめに

マーケットプレイス版Oracle WebCenter Content For OCI(以降WCC For OCI)は、Oracle Cloud Infrastructure上のVMベースのソリューションとして提供されます。WCC For OCIを使用すると、顧客は数回クリックするだけで環境をプロビジョニング/セットアップでき、クラウド上でコンテンツ・ソリューションを提供できるようになります。

詳細は製品ドキュメントおよび概要紹介資料をご確認ください

この記事で説明すること、しないこと

2025年2月にWCC For OCIの14c(14.1.2.0.0) 対応版がリリースされました。また、WCC14c For OCIのみ利用できる新機能としてセマンティック検索(Semantic Search) もあわせてリリースされました

この記事では、WCC14c For OCIのセマンティック検索機能を有効化する手順について説明します

なお、セマンティック検索で利用するOracle Database 23aiのAI Vector Searchに関する説明は割愛します。詳細は以下の製品ドキュメントおよびスライドをご確認ください

WCCのセマンティック検索とは

ユーザーが自然文で検索文を入力すると、WCC側でその意味や文脈を考慮し、関連性の高いコンテンツを検索し、提供します。全文検索のように検索キーワードの取捨選択に時間をかけることなく、効率的な検索ができるようになります
image.png

加えて、ユーザーに付与されたアクセス権限により、セマンティック検索の結果が変わります。従来の検索機能と同じで、セマンティック検索もWCCのアクセス権限管理に応じた検索結果を返します
image.png

最後に、ユーザーはドキュメントをWCCにアップロードするだけで、特別な操作不要です。セマンティック検索で利用する索引はバックグラウンドで自動的に作成されます
image.png

セマンティック検索の利用条件

WCCのセマンティック検索を利用する条件は以下の通りです(※2025年4月21日時点)

  1. マーケットプレイス版WCC14c For OCIを利用すること
  2. データベースとしてOracle Database 23aiを利用すること(Oracle Database 23aiの新機能Oracle AI Vector Searchを利用します)

セマンティック検索の構成手順

以下の製品ドキュメントに従って、WCCのセマンティック検索機能を構成・有効化します

作業手順は以下の通りです

  1. Oracle Database 23ai環境を構築する
  2. マーケットプレイスからWCC14c For OCIをプロビジョニングする
  3. セマンティック検索ができるようにWCCを構成する
  4. 埋め込みモデルをデータベースにロードする
  5. WCCが使用する埋め込みモデルを指定し、索引を作成する

1. Oracle Database 23ai環境を構築する

OCI上にOracle Database 23aiの環境を作成します。今回は、以下のOCIチュートリアルを参考にAutonomous Transaction Processing - Serverless(以降ATP-S)の環境を作成します

データベース・バージョンの選択23aiを選択します
image.png

2. マーケットプレイスからWCC14c For OCIをプロビジョニングする

2.1 プロビジョニング

マーケットプレイスからWCC14c For OCIの環境をプロビジョニングします。プロビジョニング時は前の手順で作成したOracle Database 23aiのATP-Sを指定します

プロビジョニング手順を説明したQiita記事が公開されていますので、こちらを参考に作成します

スタック作成時のバージョンは 14.1.2.0.0_x.x.x(yyyy/mm/dd) を選択します(ここでは14.1.2.0.0_25.2.1(2025/2/27)を選択)
image.png

2.2 プロビジョニング完了後の追加作業

プロビジョニング完了後、以下Qiita記事の追加作業をすべて実施します(ローカライゼーションの設定、日本語フォントの追加、全文検索機能の有効化)

WCCのセマンティック検索機能を利用する場合、OracleTextSearch(Oracle DatabaseのOracle Textを利用した全文検索機能)の有効化は必須です

3. セマンティック検索ができるようにWCCを構成する

3.1 Smart Contentコンポーネントを有効化する

  1. WCCのネイティブUIにアクセスします。URLはhttps://<ロードバランサのパブリックIPアドレス>:16200/cs/です

  2. 管理ユーザーでサインインします(ここではweblogicユーザーでサインインしました)

  3. 管理→管理サーバー→コンポーネント・マネージャを開き、拡張コンポーネント・マネージャをクリックします
    image.png

  4. 無効なコンポーネントからSmartContentを選択し、有効化をクリックします
    image.png

  5. Fusion Middleware Control(もしくはWebLogic Remote Console)からUCM_Serverを再起動します

3.2 セマンティック検索機能の有効化

  1. 管理ユーザーでサインインします
  2. 管理→管理サーバー→一般構成を開きます
  3. 追加の構成変数 に以下2つのパラメータを追加し、保存をクリックします
追加の構成変数(config.cfg)
IsDataBaseHybridSearchEnabled=True
SemanticSearchSupport=true

image.png

  1. UCM_Serverを再起動します

4. 埋め込みモデルをデータベースにロードする

Oracle Database 23aiは、ONNX形式の埋め込みモデルをデータベース内にロードして、埋め込みベクトルの生成を行うことできます。WCC14c For OCIでは、この機能を利用してセマンティック検索を構成します

データベースにロードするONNX形式の埋め込みモデルの入手方法は2つあります。どちらを使ってもWCCのセマンティック検索は動作しますが、日本語対応を考慮すると2点目の多言語埋め込みモデルのintfloat/multilingual-e5-base の利用をお勧めします

ここでは、多言語埋め込みモデルのintfloat/multilingual-e5-baseを利用した場合について説明します

4.1 ONNXファイルを生成する

以下Qiita記事を参考に、OML4Pyの環境を作成し、intfloat/multilingual-e5-base のモデルをONNX形式でエクスポートします

4.2 ONNXファイルをオブジェクトストレージにアップロードする

  1. エクスポートしたONNX形式のファイル(ここではmultilingual-e5-base.onnx)を、オブジェクトストレージのバケットにアップロードします
    image.png

  2. バケットにアップロードしたmultilingual-e5-base.onnxへのURLをメモします

  3. OCIコンソールを利用し、認証トークンを作成し、メモします。認証トークンの作成方法は以下ドキュメントをご確認ください

4.3 オブジェクトストレージからONNXファイルをATPにロードする

  1. OCIコンソールのクラウド・シェルを利用して、ATPにSQL Plusで接続できるように環境を準備します。今回は、以下のQiita記事を参考に準備します

  1. クラウド・シェル上でSQL Plusを起動し、adminユーザーでATPに接続します
satoshi_na@cloudshell:~ (us-chicago-1)$ sqlplus admin@wccmpatps23ai_low

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Apr 21 08:19:48 2025
Version 19.19.0.0.0

Copyright (c) 1982, 2023, Oracle.  All rights reserved.

Enter password: 
Last Successful login time: Mon Apr 21 2025 08:18:10 +00:00

Connected to:
Oracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems
Version 23.8.0.25.05

SQL> 
  1. 以下のSQLを実行し、WCCが使用するデータベースユーザーに必要な権限を付与します。WCCが利用するデータベースユーザーは<マーケットプレイス作成時に指定したプレフィックス>_OCSです。ここではプレフィックスにWCCMP1412を指定したので、権限を付与するデータベースユーザーはWCCMP1412_OCSです
GRANT DB_DEVELOPER_ROLE TO WCCMP1412_OCS;
GRANT CREATE MINING MODEL TO WCCMP1412_OCS;
CREATE DIRECTORY STAGING AS 'STAGE';
GRANT READ ON DIRECTORY STAGING TO WCCMP1412_OCS;
GRANT WRITE ON DIRECTORY STAGING TO WCCMP1412_OCS;
  1. SQL Plus一旦終了し、WCCのデータベースユーザー(ここではWCCMP1412_OCS)で再接続します
satoshi_na@cloudshell:~ (us-chicago-1)$ sqlplus WCCMP1412_OCS@wccmpatps23ai_low

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Apr 21 08:32:59 2025
Version 19.19.0.0.0

Copyright (c) 1982, 2023, Oracle.  All rights reserved.

Enter password: 
Last Successful login time: Mon Apr 21 2025 08:27:34 +00:00

Connected to:
Oracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems
Version 23.8.0.25.05

SQL>
  1. オブジェクトストレージにアクセスするためのクレデンシャルを作成します。usernameには認証トークンを発行したユーザー名、passwordには前の手順で発行した認証トークンをそれぞれ設定します
begin
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'OBJ_STORE_CRED',
    username => '<ユーザー名>',
    password => '<認証トークン>'
  );
end;
/
  1. オブジェクトストレージからONNXファイルをダウンロードします。credential_nameには直前の手順で作成したOBJ_STORE_CREDobject_urlにはバケット内のONNXファイルのURLを、それぞれ設定します
BEGIN
  DBMS_CLOUD.GET_OBJECT(
    credential_name => 'OBJ_STORE_CRED',
    object_uri => 'https://objectstorage.us-chicago-1.oraclecloud.com/n/orasejapan/b/atp23ai-bucket/o/multilingual-e5-base.onnx',
    directory_name => 'staging',
    file_name => 'multilingual-e5-base.onnx'
  );
END;
/
  1. ONNXファイルがダウンロードできたか?を確認します。multilingual-e5-base.onnxが表示されることを確認します
SQL> SELECT OBJECT_NAME, CREATED FROM TABLE(DBMS_CLOUD.LIST_FILES('staging'));

OBJECT_NAME
--------------------------------------------------------------------------------
CREATED
---------------------------------------------------------------------------
all_MiniLM_L12_v2.onnx
31-MAR-25 06.27.55.905020 AM +00:00

multilingual-e5-base.onnx
07-APR-25 07.21.55.235137 AM +00:00


SQL> 
  1. ONNXファイルをデータベースにロードします。ここでは、モデル名をmultilinguale5baseと指定しました
BEGIN
  DBMS_VECTOR.LOAD_ONNX_MODEL(
    'staging',
    'multilingual-e5-base.onnx',
    'multilinguale5base',
    json('{"function":"embedding","input":{"input":["DATA"]}}')
  );
END;
/
  1. ロードしたモデルを確認します。multilinguale5baseがロードされていることを確認します
SQL> SELECT MODEL_NAME, MINING_FUNCTION, ALGORITHM, ALGORITHM_TYPE, round(MODEL_SIZE/1024/1024) MB FROM user_mining_models;

MODEL_NAME
--------------------------------------------------------------------------------
MINING_FUNCTION                ALGORITHM                      ALGORITHM_
------------------------------ ------------------------------ ----------
        MB
----------
MULTILINGUALE5BASE
EMBEDDING                      ONNX                           NATIVE
       270

MINILM_MODEL
EMBEDDING                      ONNX                           NATIVE
       127

SQL> 
  1. ロードしたモデルmultilinguale5baseを利用した埋め込みベクトルの生成を確認します
SQL> SELECT TO_VECTOR(VECTOR_EMBEDDING( multilinguale5base USING 'こんにちは' as data)) AS embedding;

EMBEDDING
--------------------------------------------------------------------------------
[-1.92252826E-003,3.63082401E-002,-2.13882537E-004,2.37099547E-002,2.24683508E-0

SQL>

以上で埋め込みモデルをデータベースにロードできました

5. WCCが使用する埋め込みモデルを指定し、索引を作成する

  1. WCCのネイティブUIに管理ユーザーでサインインします。ここではweblogicユーザーでサインインします

  2. 管理→SmartContent→Hybrid Index Configurationをクリックします
    image.png

  3. EmbeddingModelNameに前の手順でロードしたモデル名(ここではmultilinguale5base)を入力します。その他のパラメータはデフォルト値のままとします

  4. Update Configurationをクリックします
    image.png

  5. バックグランドでハイブリッド索引の作成が開始されます。さらに、WCCのユーザーインタフェース上にIndex build in progress. Semantic search might give inconsistent resultアラートが表示されます
    image.png

  6. アラートをクリックすると、ハイブリッド索引の作成ステータスを確認できます

  7. しばらく待つとハイブリッド索引の作成が終了(staus=Completed)し、アラートが消えます
    image.png

以上でセマンティック検索の構成は完了です

埋め込みモデルを更新する場合は、Cleanup Data and Hybird Indexをクリックし、既存のハイブリッド索引と関連データを削除します。その後、EmbeddingModeNameに新しい埋め込みモデルの名前を入力し、Update Configurationをクリックします。
この操作により、WCCは新しく設定された埋め込みモデルを使用して、既存のドキュメントに新しい埋め込みベクトルを作成します

動作確認(セマンティック検索の実行)

実際にセマンティック検索をWCCのユーザーインタフェースから実行します。セマンティック検索は、マーケットプレイス版WCC For OCIのみ利用可能なRedwood UIからのみ実行できます

  1. WCCのRedwood UIにアクセスします。URLはhttps://<ロードバランサのパブリックIPアドレス>:16200/cs?IdcService=REDWOODUIです

  2. ユーザー名パスワードを入力します

  3. 画面下部のナビゲーションメニューの検索をクリックします
    image.png

  4. 検索の横のファイルをクリックし、AI Searchを選択します
    image.png

  5. 検索文を自然文で入力します(例: Oracle Fusion Middlewareの開発計画をおしえて 障害報告のあげかたをおしえてなど)

  6. 検索結果として、意味的に類似したコンテンツを含む文書を関連性の高い順に表示されます
    image.png

おわりに

マーケットプレイス版Oracle WebCenter Content 14c For OCIのセマンティック検索機能を有効化する手順を紹介しました。皆さまのお役に立てば幸いです

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?