9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SELECT AI RAGがオンプレでも使えると聞いて試してみた (Oracle AI Database 26ai)

9
Last updated at Posted at 2026-03-08

以前の記事でSELECT AIをオンプレ版26aiで動かす方法をご紹介しました。

ところが以下マニュアルによるとSELECT AI RAGもオンプレ版26aiで使えるようです。

ということで、今回はSELECT AI RAGをオンプレで動かしてみましたので、その手順をまとめようと思います。
ベクトル化に使うEmbeddingモデルですが、以下記事でせっかくONNXインポートした multilingual-e5-large があるため、そちらを使います。

つまりEmbedding処理とSELECT AI RAGは、クラウドではなくオンプレで実装する形となります。

なお推論モデルや非構造化ファイルを配置するObject StorageについてはOCIのサービスを利用します。

目次

事前準備

SELECT AI RAG実装に入るまでの事前準備ですが、以前投稿した各記事がご参考になります。

26ai EE (Linux x86-64) インストール

以下記事を参考に構築します。
(RAC向け手順ですが、GI関連の手順をSkipすればシングル構成で構築できます。)

DBMS_CLOUD、DBMS_CLOUD_AI パッケージの導入

SELECT AI RAGの実装に必要な DBMS_CLOUD および DBMS_CLOUD_AI パッケージはデフォルトでインストールされていないため、以下記事を参考に導入します。

(オプション) 高精度な In-Database Embeddingの有効化

高精度なモデルでIn-Database Embeddingを行う場合は以下手順を実行します。
もしクラウド上のEmbeddingモデルを使う場合はSkipしてください。

  • OML4Pyインストール (2.1.1)
  • ONNXエクスポート
  • DB事前準備
  • ONNXインポート
  • In-Memory Sharingの有効化

VARCHAR2の制限拡張

SELECT AI RAGを使ってObject Storage上の非構造化ファイルをベクトル化する際に ORA-51810 が発生したため、それを回避する目的で本手順を実施します。
(もしかしたら利用するEmbeddingモデルによっては発生しないかも?)

手順は以下マニュアルをご参照ください。

CDBのVARCHAR2、NVARCHAR2およびRAW列の最大サイズを増加する

OCI Object Storage準備

SELECT AI RAGにおいて、非構造化ファイルはObject Storageに配置する必要があるため、OCI Object Storageのバケットを用意します。
手順は以下OCIチュートリアルをご参照ください。

SELECT AI RAGセットアップ

これ以降で使用するDBユーザですが、以下記事で準備したDBユーザ lonnx を使います。

検証用DBユーザに必要な権限と外部REST API実行を許可するACLを設定します。
syssystem で実行します。

-- 権限付与
GRANT EXECUTE on DBMS_CLOUD to lonnx;
GRANT EXECUTE on DBMS_CLOUD_AI to lonnx;
GRANT EXECUTE on DBMS_CLOUD_PIPELINE to lonnx;

-- ACL設定
BEGIN
        DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
             host => '*',
             ace  => xs$ace_type(privilege_list => xs$name_list('http'),
                     principal_name => 'lonnx',
                     principal_type => xs_acl.ptype_db)
       );
END;
/

OCI Generative AI Service上の推論モデル、およびOCI Object Storageを使うため、OCI用クレデンシャルを作成します。

BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'OCI_GENAI',
        user_ocid       => 'your user ocid',
        tenancy_ocid    => 'your tenancy ocid',
        private_key     => 'your user private key',
        fingerprint     => 'your fingerprint related to your user private key'
    );
END;
/

Embedding用AIプロファイルを作ります。
今回はインポートした multilingual-e5-large によるIn-Database Embeddingを使うため、それ用の定義が必要です。
マニュアルは以下をご参照ください。

Select AIプロファイルでのデータベース内トランスフォーマ・モデルの使用

本検証では DOC_MODEL という名前でONNXインポートしたため、コマンドは以下のようになります。

BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
     profile_name => 'EMBEDDING_PROFILE',
     attributes   => '{"provider" : "database",
                       "embedding_model": "DOC_MODEL"}'
  );
END;
/

上記で定義したAIプロファイルを使い、以下の通りベクトル索引を作成します。
location にはご自身のOCI Object Storage URIを記入してください。
また下記例では refresh_rate の設定値から、1分おきにObject Storageに追加されたファイルを確認する定義となっています。
もし追加されたファイルがあればチャンク分割、およびベクトル化を行い、ベクトル索引を更新します。

BEGIN
       DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
         index_name  => 'MY_INDEX',
         attributes  => '{"vector_db_provider": "oracle",
                          "location": "your oci object storage uri",
                          "object_storage_credential_name": "OCI_CRED",
                          "profile_name": "EMBEDDING_PROFILE",
                          "vector_dimension": 1024,
                          "vector_distance_metric": "cosine",
                          "chunk_size":500,
                          "chunk_overlap":200,
                          "refresh_rate":1
      }');
END;
/

最後に推論モデル用のAIプロファイルを作成します。
本検証ではOCI Generative AI Serviceの gpt-oss-120b を利用しています。
なお oci_compartment_id にはご自身のコンパートメントOCIDを記入してください。

BEGIN
    DBMS_CLOUD_AI.CREATE_PROFILE(
        profile_name => 'GENAI_PROF',
        attributes => '{
            "provider": "oci",
            "credential_name": "OCI_CRED",
            "region": " ap-osaka-1",
            "oci_compartment_id": "your compartment ocid",
            "model":"openai.gpt-oss-120b",
            "vector_index_name": "MY_INDEX",
            "embedding_model":"database: DOC_MODEL"
        }'
    );
END;
/

動作確認

sqlplusから動作確認してみます。
事前にObject Storageへ複数のファイルをアップロードします。
下記例では、架空の製品に関するロードマップがどうなっているか問い合わせています。

-- 利用プロファイル設定
EXEC DBMS_CLOUD_AI.SET_PROFILE('GENAI_PROF');

-- 動作確認
SET ECHO ON
SET FEEDBACK 1
SET NUMWIDTH 10
SET LINESIZE 80
SET TRIMSPOOL ON
SET TAB OFF
SET PAGESIZE 10000
SET LONG 10000
SELECT AI narrate スマートヘルメットのロードマップは?;

RESPONSE
--------------------------------------------------------------------------------
スマートヘルメットの2024 年ロードマップ

**1四半期**
- 音声認識機能の改善。AI とクラウド技術を活用し、自然で正確な音声入力・出力を実
現。
- ノイズキャンセリングやサラウンドサウンドなどを追加し、音質を向上。

**2四半期**
- HUD(ヘッドアップディスプレイ)機能の強化。高解像度・高コントラストのディスプ
レイを採用。
- HUD のカスタマイズを可能にし、表示したい情報やレイアウトを自由に設定できるよう
にする。

**3四半期**
- セキュリティ機能の向上。生体認証や暗証番号などを導入し、盗難・紛失防止と個人情
報・データ保護に貢献。

**4四半期**
- エコモード機能の開発。太陽光発電や省電力機能を備え、バッテリー持続時間を延長す
るとともに、環境にやさしいエネルギー利用を推進。

Sources:
  - product_roadmap.pdf (https://xxx/b/docs/o/product_roadmap.pdf)

複数ファイルがベクトル索引に含まれる中、適切なファイルを参照して回答を生成してくれました。
SELECT AI RAG、およびONNXインポートした multilingual-e5-large によるベクトル検索がちゃんと機能しているようです。

おまけ (即席チャットアプリ Ask Oracle のご紹介)

せっかくならチャットアプリで動作確認したい、という方は Ask Oracle が利用頂けます。
Ask Oracle はAPEXアプリで、github上に公開されているexportファイルをご自身のAPEXにインポートすれば、すぐにちゃんとしたチャットアプリとして利用できます。

今回の動作確認を Ask Oracle で試した画面が以下になります。

スクリーンショット 2026-02-23 190240.png

スクリーンショット 2026-02-23 190307.png

スクリーンショット 2026-02-23 190455.png

チャットアプリの基本機能はもちろん、SELECT AIシリーズ全般に対応した機能も備えています。
例えばSELECT AI RAGであれば、AIプロファイルをプルダウンから選択して簡単に切り替えられます。
SELECT AI Agentについても、Agentチームを切り替えることで手軽に色々なAIエージェントを利用できます。

Ask Oracle のexportファイルは下記よりダウンロードできます。

You can download the Ask Oracle APEX app here

なおAPEXとORDSのインストールは以前投稿した以下の記事が参考になります。

APEX、ORDSのインストール

以上、オンプレ26aiにおけるSELECT AI RAGの動作検証でした。
元々OCIのADBでしか使えなかったSELECT AI関連機能のほとんどが、今やオンプレ版26aiでも使えるようになっています。
26aiはfree版もありますので、是非お気軽にお試しください!

9
4
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
9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?