9
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【LiveLabs】Oracle Autonomous DatabaseでSelect AIを使ってRAGアプリを作成する ー後編

Last updated at Posted at 2025-08-12

はじめに

本記事は、無償の学習コンテンツであるOracle Live Labsの以下ワークショップをもとにした内容の後編となります。

Develop AI RAG Apps with Autonomous Database Select AI

前回、Select AI with RAGを使ってRAGアプリを作成ために、AIプロファイルやベクトル索引の作成をしました。

目次

  1. Select AI APIを使って質問をする
  2. Select AIデモアプリを使う

実装までの手順を確認したいという場合は、前編をご覧ください。

<前編>

  1. 前提事項
  2. プロファイルの作成
  3. ベクトル索引の作成

1. Select AI APIを使って質問をする

Select AIでは、自然言語プロンプトを使用してデータベースと対話するために使用できるactionパラメータがいくつかあります。

パラメータ  用途
runsql (デフォルト)自然言語プロンプトからSQLコマンドを実行
showsql 自然言語プロンプトのSQL文を表示
explainsql プロンプトから生成されたSQLを自然言語で説明
narrate 結果を会話形式で生成
chat 一般的なAIチャット(データベースへの問い合わせはせず、LLMに直接プロンプトを渡す)

詳細は、以下のドキュメントをご参照ください。

AIキーワードを使用したプロンプトの入力

Select AIでは、以下の図の例のようなイメージでRAGを実装しています。

<narrateパラメータを使用した場合の例>

image.png

[OCI Technical Deep Dive] Autonomous Database 技術アップデートより抜粋

1-1. 会話形式の回答生成

Select AIのnarrateオプションを使って会話形式の回答を取得します。

select dbms_cloud_ai.generate (
    profile_name => 'support_site',
    action => 'narrate',
    prompt => 'how do I unsubscribe from the service?'
) as support_question;

image.png

回答として以下の結果が表示されました。

To unsubscribe from the service, log in to your account and navigate to the subscription or billing section. Look for an option to cancel your subscription and follow the prompts. Ensure you read and understand any terms regarding cancellation, such as potential fees or loss of access to services. If you encounter any issues, contact customer support for assistance.

Sources:

1-2. チャンクの類似度を確認

runsqlアクションを実行し、各チャンクとその類似度(またはベクトル距離)スコアを確認します。

select dbms_cloud_ai.generate (
    profile_name => 'support_site',
    action => 'runsql',
    prompt => 'how do I unsubscribe from the service?'
);

image.png

1-3. SQL文の確認

showsqlアクションを実行し、ベクトル検索を実行するために使用されたSQLコマンドを確認します。

select 
dbms_cloud_ai.generate (
    profile_name => 'support_site',
    action => 'showsql',
    prompt => 'how do I unsubscribe from the service?'
)  as support_question;

image.png

2. Select AIデモアプリを使う

前編の前提において、Resource ManagerでSelect AI APEXデモアプリがインストールされている状態です。このステップでは、デモアプリに対して質問をしてみます。

2-1. Select AIデモアプリにアクセスする

OCIコンソールから「リソース・マネージャ」→「スタック」→「スタックの詳細」→「ジョブの詳細」→「出力」からデモアプリのリンク、ADBユーザー名およびパスワードが確認できます。

image.png

APEXのデモアプリのリンクをコピーしてアクセスします。

image.png

2-2. AIプロファイルの選択

ADB Chatページに飛ぶと、AI設定パネルが表示されます。

ドロップダウンのリストから、使用するAIプロファイルを選択します。前編で作成したSUPPORT_SITEプロファイルを選択して閉じます。

image.png

プロファイルを選択すると、チャットが使用できるようになります。

image.png

データベースにあるデータを元に回答を取得したい場合はページ下部の Ask your database チェックをオンにし、インターネットの情報をもとにした一般的な回答を取得したい場合はオフにして使用します。

2-3. デモアプリで質問をする (一般的な回答)

例えば、ワークショップの例にならって以下の問い合わせを、Ask your databaseオフの状態で投げてみます。

"My movie is frozen on the opening scene"
(「最初のシーンで映画の映像がフリーズしてしまう」という内容)

image.png

インターネット上の情報を元にした回答なので、一般的に考え得る策が生成されました。

ちなみに、試しに日本語でも聞いてみたところ以下の回答が出ました。

image.png

2-4. デモアプリで質問をする (DBのデータを元にした回答)

全く同じ問い合わせを、Ask your databaseオンの状態で投げてみます。

image.png

MOVIESTREAMのサービスに特化した、具体的な回答が得られました。

また、ソースのリンク(以下)も提示してくれているのでそちらも併せて確認できます。

リンク先を確認すると、"Issue: Video Not Playing at All" の項目に記載されている内容を元にした回答であることがわかります。

image.png

<応用>
回答の内容で対応しても解決しなかった場合を想定して、いくつか追加で質問をしてみます。

image.png

2つ追加で質問をしましたが、2つ目では最終的にはカスタマーサポートに問い合わせるようにガイドされています。

まとめ

今回はOracle LiveLabsのワークショップの内容に沿って、Select AI with RAGを使った簡易的なRAGアプリを作成しました。

自然言語でデータベース内のデータに対して問い合わせができるSelect AIの機能とRAGの仕組みを組み合わせることで、ハルシネーションのリスクを軽減することができます。

参考情報

OCIチュートリアル
111: SELECT AIを試してみよう

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?