はじめに
マーケットプレイス版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) 対応版の提供開始とともに、セマンティック検索(Semantic Search) が新機能としてリリースされました。セマンティック検索の構成手順および利用方法は以下のQita記事にまとめました
今回、2025年4月の新機能として会話型検索(Conversational Search) がリリースされました。この記事では、WCC14c For OCIの会話型検索機能を有効化する手順について説明します。
なお、会話型検索で利用するOCI Generative AIに関する説明は割愛します。詳細は以下の製品ドキュメントおよびスライドをご確認ください
WCCの会話型検索について
会話型検索(Conversational Search) は、WCCに保存されているドキュメントを自然言語クエリで操作できます。対話型の質問応答、ドキュメントの要約、コンテキストに応じた応答をサポートし、ユーザーはドキュメントから必要な情報を効率的に取得できます
日本語で書かれたドキュメントに対して、日本語で問い合わせを行い、回答を日本語で受け取ることもできます
会話型検索の利用条件
会話型検索機能の利用条件は以下のとおりです(※2025年5月8日時点)
- WCCのセマンティック検索機能が有効化され、利用可能な状態であること
- OCI Generative AIをご利用いただけるリージョンがサブスクライブ済であること
OCI Generative AIが利用可能なリージョンは、Regions with Generative AIをご確認ください
会話型検索の構成手順
以下の製品ドキュメントに従って、WCCの会話検索機能を構成・有効化します
- ポリシーの追加
- WCCのデータベースユーザーに権限を付与する
- Generative AIサービスをAPIコールするためのAPIキーを作成する
- Generative AI RESTプロバイダへのアクセスを有効にする
- WCCの会話型検索のプロパティを構成する
1. ポリシーの追加
すべてのGenerative AIリソースへのアクセスを取得するために必要なポリシーを設定します(関連ドキュメント: 生成AIへのアクセス)
テナンシー全体のすべてのGenerative AIリソースにアクセスする場合は、次のポリシーを追加します
allow group <your-group-name> to manage generative-ai-family in tenancy
特定のコンパートメント内のすべてのGenerative AIリソースにアクセスする場合は、次のポリシーを追加します
allow group <your-group-name> to manage generative-ai-family in compartment <your-compartment-name>
2. WCCのデータベースユーザーに権限を付与する
セマンティック検索機能構成時に準備したクラウド・シェルからATPにSQL Plusで接続する環境をそのまま利用します(参考記事: 4.3 オブジェクトストレージからONNXファイルをATPにロードする)
- クラウド・シェル上でSQL Plusを起動し、adminユーザーでATPに接続します
satoshi_na@cloudshell:~ (us-chicago-1)$ sqlplus admin@wccmpatps23ai_low
SQL*Plus: Release 19.0.0.0.0 - Production on Wed May 7 05:48:48 2025
Version 19.19.0.0.0
Copyright (c) 1982, 2023, Oracle. All rights reserved.
Enter password:
Last Successful login time: Wed May 07 2025 04:21:27 +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>
- WCCで使用するデータベースユーザーに必要な権限を付与します。ここでは
WCCMP1412_OCS
に権限を付与します
SQL> GRANT DB_DEVELOPER_ROLE TO WCCMP1412_OCS;
Grant succeeded.
SQL> GRANT EXECUTE ON DBMS_CLOUD_AI TO WCCMP1412_OCS;
Grant succeeded.
SQL>
-
DBMS_NETWORK_ACL_ADMINプロシージャを使用して、ホストへの接続を許可するための接続権限をユーザー(ここでは
WCCMP1412_OCS
)に付与します
SQL> BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => '*',
ace => xs$ace_type(privilege_list => xs$name_list('connect'),
principal_name => 'WCCMP1412_OCS',
principal_type => xs_acl.ptype_db));
END; 2 3 4 5 6 7
8 /
PL/SQL procedure successfully completed.
SQL>
- SQL Plusを一旦終了します
3. Generative AIサービスをAPIコールするためのAPIキーを作成する
OCIコンソールからAPIキーを作成します。以下OCIチュートリアルにも手順が記載されていますので、あわせてご確認ください
-
左下のリソース→APIキーをクリックします
-
APIキー・ペアの作成を選択した状態で、秘密キーのダウンロードをクリックします。秘密キーがローカルPCにダウンロードされます
4. Generative AI RESTプロバイダへのアクセスを有効にする
データベース内の資格情報を安全に管理するには、資格情報ヘルパープロシージャ CREATE_CREDENTIAL および DROP_CREDENTIAL を使用します。これらのプロシージャは、PL/SQLパッケージ DBMS_VECTOR および DBMS_VECTOR_CHAIN の両方で使用できます
- Generative AIにアクセスするには、次の認証パラメータが必要です。既に
private_key(秘密キー)
とfingerprint(フィンガープリント)
は取得済みです。OCIコンソール等を利用し、user_ocid(ユーザーOCID)
,tenancy_ocid(テナンシーOCID)
,compartment_ocid(コンパートメントOCID)
の3つをそれぞれ確認し、メモします
{
"user_ocid" : "<user_ocid>",
"tenancy_ocid" : "<tenancy_ocid>",
"compartment_ocid": "<compartment_ocid>",
"private_key" : "<private_key>",
"fingerprint" : "<fingerprint>"
}
- クラウド・シェル上で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 Wed May 7 05:54:48 2025
Version 19.19.0.0.0
Copyright (c) 1982, 2023, Oracle. All rights reserved.
Enter password:
Last Successful login time: Wed May 07 2025 05:42:02 +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>
- 次のコマンドを実行して、OCI資格情報を作成して保存します。ここでは
OCI_CRED
で作成します
SQL> declare
jo json_object_t;
begin
jo := json_object_t();
jo.put('user_ocid','ocid1.user.oc1..XXXXXXXX');
jo.put('tenancy_ocid','ocid1.tenancy.oc1..XXXXXXXX');
jo.put('private_key','MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+Z9l9lH0IOylT
BvM1tAdZkB30cDng+dJ1hMXvrpjZinzKkeM/AQ/q7WGORFgJOpN7nAx4ntwnf...
...
...UkY/7pofWILp5ZoNXtsL9EEOk5+psxpdc7Q8G+bmQ6ja/XjNml4Q7WDPjuvSl
MUQIY9UlcfWJlz/6cNky39RA');
jo.put('fingerprint','XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX');
jo.put('compartment_ocid','ocid1.compartment.oc1..XXXXXXXX');
dbms_vector_chain.create_credential(
credential_name => 'OCI_CRED',
params => json(jo.to_string));
end; 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
39 /
PL/SQL procedure successfully completed.
SQL>
- 作成した資格情報を確認するために、以下のSQLクエリを実行します。
GENERATED_TEXT
にテキストが表示されればOKです
SQL> SELECT dbms_vector_chain.utl_to_generate_text(
'What is Oracle Text?',
json('{
"provider" : "OCIGenAI",
"credential_name": "OCI_CRED",
"url" : "https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/20231130/actions/chat",
"model" : "meta.llama-3.3-70b-instruct",
"chatRequest" : {
"maxTokens": 256
}
}')
) AS generated_text FROM dual;
2 3 4 5 6 7 8 9 10 11 12
GENERATED_TEXT
--------------------------------------------------------------------------------
Oracle Text is a feature of the Oracle Database that allows for full-text search
SQL>
5. WCCの会話型検索のプロパティを構成する
-
WCCのネイティブUIに管理ユーザー(ここでは
weblogic
ユーザー)でログインします。URLはhttps://<ロードバランサのパブリックIPアドレス>:16200/cs
です -
管理→SmartContent→Hybird Search Configurationを開きます
-
Conversational Search Configurationを以下の通りに構成します
-
Update Congigurationをクリックします
-
Test Connectionをクリックします。LLM connection successful. のメッセージが表示されることを確認します
動作確認(会話型検索の実行)
-
WCCのRedwood UIにアクセスします。URLは
https://<ロードバランサのパブリックIPアドレス>:16200/cs?IdcService=REDWOODUI
です -
ユーザー名とパスワードを入力します
-
画面下部のナビゲーションメニューの検索をクリックします
-
チャット画面の
こんにちは。私はあなたのチャット・アシスタントです。これを要約しますか。
の要約をクリックすると、Summarize のメッセージが入力されます -
日本語で問い合わせメッセージを入力し、結果を日本語で受け取ることもできます(ここでは
Autonomous Databaseの特徴をおしえて
などを入力)
おわりに
マーケットプレイス版Oracle WebCenter Content 14c For OCIの会話型検索機能を有効化する手順を紹介しました。セマンティック検索機能とあわせて、皆さまのお役に立てば幸いです