11
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?

【Select AI】クエリできすぎくんを使ってSelect AIを検証してみた(Part 2)

11
Last updated at Posted at 2026-01-15

はじめに

この記事は【Select AI】クエリできすぎくんを使ってSelect AIを検証してみた(Part 1)の続きになります。まだPart 1をご覧になっていない方は、是非こちらもご覧ください。
「クエリできすぎくん」の環境構築方法から基本的な使い方を、ステップバイステップでご説明しています。

本記事ではPart 1でカバーしきれなかった「チャット・分析」の「カテゴリ予測」、「クエリ書き換え」、「追加指示」を試してみたいと思います。

カテゴリ予測

チャット・分析からSelect AIを試す際に、「カテゴリ予測」という機能があります。

image.png

「クエリできすぎくん」では、ユーザーからの質問に最も適したAIプロファイル(カテゴリ)を、自動で選択させることが出来ます。そうすることで、それぞれのAIプロファイルが対象とするデータを最小限にすることが可能で、精度向上やコストの削減につながります。

AIプロファイル(カテゴリ)の自動選択をさせるために、カテゴリの学習を行います。

カテゴリ予測をするための準備

先ずはいくつかAIプロファイルを作成し、そのあと、AIプロファイルのカテゴリを学習させたいと思います。

プロファイル作成

1. 以下の様に入力し、「作成」をクリックします。

  • Profile名:任意(本記事ではprofile_grokcodefast1_department

同じ名前のAIプロファイルは作成不可なので、ユニークな名前にします

  • カテゴリ:任意(本記事では部門関連

「カテゴリ」はSelect AIの標準機能ではなく、「クエリできすぎくん」のみで提供している機能になります。
Select AIのAIプロファイル自体にはカテゴリという概念はなく、クエリできすぎくんが“どのAIプロファイルを使うか”を判断するための仕組みとして利用されています。

  • テーブル選択:DEPARTMENT(「テーブル・ビュー一覧を取得」をクリックすると表示されます)
  • Region:us-chicago-1
  • Model:任意
  • Embedding Model:任意
  • Enforce Object List:任意
  • Comments:任意(表やビューへのコメントをLLMに送信する場合にはtrueにします。本記事ではtrueを選択します)
  • Annotations:任意(表やビューへのアノテーションをLLMに送信する場合にはtrueにします。本記事ではtrueを選択します)
  • Constraints:任意

image.png

2. 同じようにもう一つAIプロファイルを作成します。

  • Profile名:任意(本記事ではprofile_grokcodefast1_dep_projt
  • カテゴリ:任意(本記事ではプロジェクトと部門の組み合わせ
  • テーブル選択:DEPARTMENT、PROJECT

その他は先程と同じにし、「作成」をクリック

image.png

本記事では表数が非常に少ないため、カテゴリ分けをする必要はありませんが、表やビューの数が非常に多い場合には、カテゴリー分けが有用になると思います。

モデル管理

次に、作成したAIプロファイルのカテゴリを学習させます。

1. こちらから、カテゴリを学習させるためのサンプルデータをダウンロードします。

2. 「モデル管理」タブ内の画面から、ダウンロードしたExcelファイルをドラッグアンドドロップし、「Excelアップロード(全削除&挿入)」をクリックします。
image.png

アップロードすると、「アップロード完了」のメッセージが出てきます。
image.png

3. 「学習を実行」をクリックします。
image.png

4. カテゴリの学習が行われているか確認してみます。「部門ごとのプロジェクト数」と質問してみます。
image.png

「プロジェクトと部門の組み合わせ」カテゴリが選択されました。DEPARTMENT表とPROJECT表のデータを使って回答可能な質問なので、正しくカテゴリを分析出来たことがわかります。

クエリ書き換え

次に、クエリの書き換えを試してみたいと思います。
クエリの書き換えには「用語集」を利用するパターンと、「スキーマ情報」を利用するパターンの2種類があります。
image.png

「クエリ書き換え」はSelect AIの標準機能ではなく、「クエリできすぎくん」のみで提供している機能になります。

用語集

先ずは、用語種を利用するパターンを試してみます。

用語集の登録

1. こちらから用語集をダウンロードします。

image.png

用語集には、「重点プロジェクト」の考え方と、「ボーナス額」の計算ロジックを記載しています。

2. ダウンロードしたExcelファイルをアップロードします。Excelファイルをドラッグアンドドロップすると、自動でアップロードされます。
image.png

用語集の中身を変更したい場合には、Excelファイルを編集し、再度アップロードし直します。

用語集を使ってクエリを書き換え

1. 「チャット・分析」に戻り、「重点プロジェクトと、その担当部署」と質問を入力します。
image.png

2. 「クエリ書き換えを有効化」にチェックを入れ、「実行」をクリックします。
image.png

3. 書き換えを実行すると、用語集で登録した情報を基に、LLMがより分かりやすい・回答を生成しやすいように、質問を書き換えてくれました。
image.png

4. 「実行」をクリックすると、書き換え後の質問を基に、クエリを生成してくれました。
image.png

クエリの実行結果を確認してみると、重点プロジェクト(予算が8000000以上のプロジェクト)と、その担当部署を表示してくれました。
image.png

5. 「クエリ書き換えを有効化」のチェックを入れず、再度同じ質問をしてみます。
image.png
重点プロジェクトがどの様なものかLLMは知らないので、「重点」というところが無視されてしまいました。

6. AI分析をしてみると、どの様なクエリが生成されているか自然言語で教えてくれます。
image.png

スキーマ情報

次に、スキーマ情報を利用するパターンを試してみます。
ここで使われるのは、表名・列名・コメントなどのメタデータのみで、レコードの中身(実データ)は一切参照されません。

スキーマ情報を使ってクエリを書き換え

1. 「部門ごとのプロジェクト数」と入力し、「クエリ書き換えを有効化」にチェックを入れます。
image.png

2. 「今回はスキーマ情報を利用」のみにチェックを入れて、「書き換えを実行」をクリックします。
image.png
そうすると、スキーマ情報(表やビューの名前、列の名前)を使って、より詳細な質問に書き換わりました。

生成されたSQL:
image.png

クエリの実行結果:
image.png

追加指示

クエリ生成の際に、追加指示や例示を入れてみます。

コメントやアノテーション、フィードバック、用語集等でも情報を補足出来ますが、出力形式や表現方法、振る舞い方など、より全体的な指示をしたい場合には、追加指示から補足をする事が出来ます。

1. 先程と同じ「部門ごとのプロジェクト数」と入力します。
image.png

2. 「追加指示・例示を設定」にチェックをいれ、「列名は日本語にして下さい。」と指示を追記します。
image.png

3. 「実行」ボタンをクリックすると、SQLクエリが生成されます。日本語の列別名つけてくれています。
image.png

4. 先ほど追加指示をしないで同じ質問をした際には、列名が英語になっていましたが、実行結果を確認すると、列名が日本語で表示されています。
image.png

Select AIでも追加指示は行う事が出来ます。GENERATE関数を使用し、下記の様に記載することが出来ます。

v_parameter := 
'あなたはSQLクエリ作成のエキスパートです。下記のルールに従ってSQLを生成してください。

対象範囲の厳守
 - 指定したテーブル、カラム以外は利用しません。
 - 各カラムに設定されたコメントの意味を正確に反映してください。
----------------------<中略>----------------------
 - 入庫予定は「product_unit, product_id, weekまたはinbound_week直近1件で取得します。
 - 週カラムはsale_week/plan_week/inbound_weekなど命名規則が異なるため、OOで正規化します。';

v_prompt := '冷凍餃子の今週の売上、納入予定と直近の入庫予定をおしえて。';

v_prompt := v_prompt || v_parameter;

-- SELECT AI実行
SELECT DBMS_CLOUD_AI.GENERATE(
               prompt       => v_prompt,
               profile_name => 'profile_name',
               action       => 'runsql'
           )
FROM dual;

最後に

今回試した「カテゴリ予測」、「クエリ書き換え」、「追加指示」を全て使ってみたいと思います。

1. 「重点プロジェクトを担当している部署毎の、担当プロジェクト数」と記入し、カテゴリ予測をします。
image.png

正しいカテゴリが選択されました。
image.png

2. 「クエリ書き換えを有効化」をクリックし、「用語集を利用」と「スキーマ情報を利用」の両方にチェックが入っている事を確認。「書き換えを実行」をクリックします。
image.png

用語集とスキーマ情報の両方を利用して、質問が書き換わりました。より詳細で分かりやすい質問に変更することが出来ました。
image.png

3. 「追加指示・例示を設定」にチェックをいれ、「列名は日本語にして下さい。」と指示を追記します。
image.png

「実行」をクリックすると、SQLクエリが生成され、その実行結果も表示されました。期待通りの回答が返って来ています。
image.png

「クエリできすぎくん」では、Select AIの機能検証に非常に有用な機能が沢山提供されています。「カテゴリ予測」と「クエリ書き換え」を使用することで、より効率的にSelect AIを使用する事が可能です。是非お試し下さい。

11
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
11
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?