やりたいこと
Autonomous Databaseで使用できるSelectAIを使ったチャットアプリを導入
使用する環境
- Oracle Cloud : Autonomous Database 19c (Always Free可)
- OCI Gen AI(Chicagoリージョンで利用)
動作イメージ
実際に実行されたSQLを確認している画面
これ(SelectAI)けっこうすごくないですか?
「部門ごとの従業員の数は?」という自然言語から、
結合・グループ化・COUNT関数が使われ、テーブル名も日本語からオブジェクト名になり、結合キーも認識して、SQLになっています。
このSelectAIを気軽に検証するために、上記のチャットアプリを導入してみたいと思います。AutonomousDatabaseがあれば簡単にできます。
前提手順
Autonomous Databaseの作成とSelectAIを使用できるようにするための手順は以下が分かりやすいです。
「検証1 サンプルスキーマを使用したSelect AI検証」
検証1を参考にさせていただき、まずはAutonomousDatabaseとSelectAI環境を整えましょう
ざっくりした手順は以下の通りです。
・Oracle CloudでChicagoリージョンを使えるようにする
※2024年4月現在、生成AI機能がChicagoリージョンのみ使えるため
・ADB作成(AlwaysFreeでも可)これはChicagoリージョン以外でもよいです。
・サンプルスキーマ作成(自分の使用したいスキーマ、テーブルでもOK!)
・SelectAIを行うための設定
・SelectAIをSQL*Plus上で試してみる
ここまでできれば、SQL*PlusからSelectAIは行えます。
今回は、SelectAIを使用するAPEXで作られたチャットアプリを導入してみます。
SelectAIを使用するチャットアプリを導入してみる
APEXで作られたチャットアプリを導入してみます。
コードは以下で公開されています。
「Configuring Generative AI in Oracle APEX using Select AI ※オラクル社サイト」
アプリダウンロード(SQL文のテキスト)※上記URL内にあるリンク
上記記事は生成AIの設定についても記載がありますが、すでに「前提手順」で終わっている内容のため、アプリをダウンロードして、以下に進みます。
OCIコンソールのAutonomous Database管理画面から、「データベース・アクション」→「すべてのデータベース・アクションの表示」をクリックします。
ADB作成時に指定したADMINユーザのパスワードでログインします。
以下と異なるログイン画面が表示されている場合は、次の手順を参照してください。
(1つ上の手順で上記の画面が表示されず、以下が表示された場合)
「サインイン」ボタンの下にある「管理サービス」を押すと、上記画面に変わります。
「ワークスペースの作成」ボタンを押します。
または、右上のメニューから「ワークスペースの管理」→「ワークスペースの作成」と進みます。
「既存のスキーマ」を押します。
前提手順で作成したデータベースユーザに関連付けたいためです。
Selectさせたいテーブルをもっているデータベースユーザーの情報を入力します。
ワークスペース名等は、データベースユーザー名などと同様で良いかと思います。
作成に成功しました。メッセージに従って1回サインアウトします。
右上のユーザ名アイコンから「サインアウト」をクリックします。
さきほどとは少し異なるサインイン画面が表示されました。
アプリケーションを導入するのは、この開発者用画面からワークスペースにログインする必要があります。
ワークスペースはさきほど作成しましたので、そのログイン情報を使ってログインします。
上部メニューの「アプリケーション・ビルダー」→「インポート」をクリックします。
「ドラッグ・アンド・ドロップ」のところに、さきほどサイトからダウンロードしたSQLファイルをドロップ&ドロップでいれて、「次」ボタンをクリックします。
最後に「アプリケーションの実行」でとうとうチャットアプリ起動です!
初回実行時のみ、使用するAIプロファイルを選択するポップアップが表示されます。
ADBセットアップ時に名前を指定していますが、1つしか表示されないと思いますので表示されたものを指定します。
AIプロファイルはHRユーザ(SelectAIしたいDBユーザ)に作成しているはずです。
選択したら上の方にある「< Setting」でポップアップ画面を消します。
チャットアプリが起動しました!
一番下の「Ask Database」にチェックを入れたときに、SelectAIでデータベースを問い合わせますので、まずチェックをいれましょう。
あとは試すのみです。
「部門ごとの従業員数は?」とチャットすると、、結果がでました!
※表や列名を日本語認識させるには、TABLEのコメント機能などでメタデータ追加が必要です。
結果の下にある「Explain」をクリックすると、実行されたSQL文も確認できます。
以上です。
あとはいろいろ試してみましょう!