第3章 アプリケーション開発 / 想定学習時間:30〜40分 / 最終確認:2026年8月

3-11. Genie Agentによる構造化データへの自然言語問い合わせ

🎯 この節の学習目標

1. AI/BI Genie とは:テーブルに「日本語で」質問する

これまでの節で扱ってきたRAGは、マニュアルや議事録のような非構造化の文書を検索して回答する仕組みでした。しかし業務の質問には「先月の地域別の売上合計は?」「解約率が最も高い契約プランはどれ?」のように、データベースのテーブル(構造化データ)を集計しないと答えられないものが多くあります。文書検索では、テーブルの中の数値を集計することはできません。

AI/BI Genie は、この課題に対する Databricks の機能です。ユーザーが自然言語で質問すると、Genie が SQL を生成してテーブルに対して実行し、その結果をもとに回答します。いわゆる Text-to-SQL(NL2SQL)をマネージドに提供する仕組みで、対象のテーブルはすべて Unity Catalog のガバナンス下にあるため、質問者がアクセス権を持つデータにしか答えられないという権限制御が自然に効きます。

Genie を使うには、Genieスペース(Genie space)という単位で設定を行います。

設定要素内容効果
対象テーブル質問に答えるために参照する Unity Catalog 上のテーブルを選ぶ対象を業務ドメインごとに絞るほど、SQL生成の精度が上がる
指示(instructions)ビジネス用語の定義や集計ルールをテキストで与える「売上=税抜金額の合計」など、社内固有の解釈を教えられる
サンプルクエリ代表的な質問と正しいSQLのペアを登録するGenie が模範解答を参考にSQLを組み立てられるようになる

💡 具体例:営業データ用のGenieスペース

ある小売企業(架空)が、営業部門向けに「売上分析Genieスペース」を作るとします。

営業担当者が「今期の店舗別売上トップ5は?」と日本語で質問すると、Genie がテーブル定義と指示・サンプルを踏まえてSQLを生成・実行し、表とともに回答を返します。

📝 試験のポイント

「アナリストでない社員が、SQLを書かずに売上テーブルへ質問できるようにしたい」という要件には AI/BI Genie が対応します。ベクトル検索(AI Search)は文書の意味検索の仕組みであり、テーブルの集計はできない点が選択肢の切り分けになります。

2. RAGとの対比:非構造化はAI Search、構造化はGenie

GenAIアプリケーションの設計で最初に問うべきは、「答えの根拠となるデータはどこにあるか」です。根拠が文書(非構造化)なのかテーブル(構造化)なのかで、選ぶべき部品が変わります。

観点AI Search + RAGAI/BI Genie
対象データ非構造化(PDF、マニュアル、FAQ、議事録)構造化(Unity Catalog のテーブル)
仕組み埋め込みベクトルによる意味検索で関連文書を取得し、LLMが回答を生成自然言語からSQLを生成・実行し、集計結果をもとに回答
得意な質問「返品手続きの方法は?」(文書に書いてあることを探す)「先月の返品件数は何件?」(データを集計して数える)
精度向上の手段チャンク化・埋め込みモデル・リランキング(第2章)テーブルの絞り込み・指示・サンプルクエリ・メタデータ整備

実際のアシスタントでは両方の質問が混在するため、後述のようにエージェントが質問の種類を判断して AI Search と Genie を使い分ける構成が実践的な解になります。

📝 試験のポイント

データソースからの判別問題が典型です。「製品マニュアルのPDFに質問したい」→ AI Search(旧 Vector Search)+RAG、「売上データベースに自然言語で質問したい」→ Genie。問題文中の「PDF・ドキュメント」か「テーブル・データベース・集計」かというキーワードで判別します。

3. エージェントのツールとしてのGenie(Genie Agent)

Genie は単体のUIとして使うだけでなく、エージェントのツール(サブエージェント)として呼び出すことができます。3-9 で学んだとおり、エージェントはLLMが実行時にツールを選択する構成でした。そこに「構造化データへの問い合わせ担当」として Genie スペースを組み込むと、文書の質問にもデータ集計の質問にも答えられるアシスタントが作れます。

ユーザーの質問「返品手続きは?」「先月の返品件数は?」
エージェントが質問の種類を判断
AI Search retriever非構造化:マニュアル・FAQを意味検索
Genie スペース構造化:SQLを生成しテーブルを集計
ツールの結果を統合
最終回答の生成根拠(文書抜粋・集計結果)を添えて回答

図:エージェントによる AI Search(文書)と Genie(テーブル)の使い分け

4. 回答精度を高める実践

Genie の回答精度は、LLMの性能そのものより「テーブルがどれだけ説明されているか」に左右されます。SQL生成の材料はテーブルのスキーマとメタデータだからです。次の整備が効果的です。

実践内容
カラム説明・メタデータの整備テーブル・カラムに COMMENT を付け、「amt = 税抜注文金額(円)」のように意味を明記する。略語だらけのスキーマはSQL生成ミスの主因になる
サンプルSQLの登録よくある質問と正しいSQLのペアを登録する。複雑な結合や独自の集計ルールほど、模範例の効果が大きい
用語辞書(指示)の整備「アクティブ顧客とは直近90日以内に購入した顧客」など、社内用語の定義を指示として与え、質問文とスキーマの語彙のずれを埋める
対象テーブルの絞り込み1つのスペースに何でも入れず、業務ドメイン単位でスペースを分ける。候補が少ないほど正しいテーブル選択がしやすい

💡 具体例:精度が出ないときの改善

「先月の売上は?」という質問に対して、Genie が誤って税込金額のカラムを集計してしまうケースを考えます。このとき有効なのは、(1) amountamount_with_tax それぞれのカラムに説明コメントを付ける、(2) 指示に「『売上』は税抜金額 amount の合計を指す」と明記する、(3) 正しい集計SQLをサンプルクエリとして登録する、という改善です。モデルを変える前に、まず判断材料となるメタデータを整えるのが定石で、3-9 の「ツール説明の質が精度を決める」と同じ考え方です。

📝 試験のポイント

「Genie(Text-to-SQL)の回答精度が低い。まず何をすべきか?」という問題では、カラム説明などのメタデータ整備・指示・サンプルクエリの追加が正解の軸になります。LLMの変更やファインチューニングは、その後に検討する手段です。

✅ この節のまとめ

練習問題

問1. 営業部門の社員が、SQLを書かずに「地域別の今月の売上は?」のような質問を売上テーブルに対して行えるようにしたい。最も適切な Databricks の機能はどれか。

  1. AI Search(旧 Vector Search)のインデックスに売上テーブルを登録する
  2. AI/BI Genie のスペースに売上関連テーブルを設定し、自然言語で問い合わせられるようにする
  3. 売上テーブルをCSVに書き出してプロンプトに貼り付ける
  4. Foundation Model API に質問をそのまま送る
解答と解説を見る

正解:B

構造化データへの自然言語問い合わせは Genie の役割で、SQLの生成・実行と権限制御をマネージドに提供します。Aのベクトル検索は文書の意味検索の仕組みで、テーブルの集計はできません。Cはデータ量の制約とコンテキスト長の限界があり、最新データへの追従もできません。DはLLM単体に送るだけで、社内テーブルの内容を参照できず、根拠のない回答(ハルシネーション)につながります。

問2. 「製品マニュアルのPDF群への質問対応」と「注文データベースの集計質問への対応」を1つのアシスタントで実現したい。各データへの対応として適切な組み合わせはどれか。

  1. PDFもデータベースも AI Search のインデックスに入れる
  2. PDFもデータベースも Genie スペースに登録する
  3. PDFは AI Search + RAG、データベースは Genie を使い、エージェントが質問に応じて使い分ける
  4. PDFは Genie、データベースは AI Search + RAG を使う
解答と解説を見る

正解:C

非構造化文書は AI Search による意味検索(RAG)、構造化テーブルは Genie によるSQL生成・実行という使い分けが設計の基本です。AはデータベースをAI Searchに入れても集計質問に答えられません。BはGenieが文書の意味検索を担えないため、PDFへの質問に対応できません。Dは対応関係が逆です。

問3. Genie スペースを構築したが、「売上」に関する質問で誤ったカラムを集計するなど、SQL生成の精度が低い。最初に行うべき改善として最も適切なのはどれか。

  1. より大型のLLMが使われるよう基盤モデルを変更する
  2. テーブル・カラムの説明(COMMENT)を整備し、用語の定義を指示に追加し、代表的な質問のサンプルSQLを登録する
  3. 対象テーブルをワークスペース内の全テーブルに広げる
  4. ユーザーにSQLで質問してもらうよう運用を変更する
解答と解説を見る

正解:B

GenieのSQL生成の材料はスキーマとメタデータであり、カラム説明・指示(用語辞書)・サンプルSQLの整備が精度改善の第一手です。Aのモデル変更は判断材料が乏しいままでは効果が限定的です。Cは候補が増えてテーブル選択を誤りやすくなり、逆効果です。Dは「SQLを書かずに質問できる」という要件そのものを放棄しています。

問4. エージェントのツールとしての Genie に関する記述のうち、正しいものはどれか。

  1. Genie は単体のUIでのみ利用でき、エージェントから呼び出すことはできない
  2. Genie スペースは Multi-Agent Supervisor の担当エージェントとして登録でき、マネージドMCPサーバー経由でツールとして公開することもできる
  3. Genie をエージェントに組み込むと、Unity Catalog の権限制御は適用されなくなる
  4. Genie はSQLを生成するだけで、実行はユーザーが手動で行う必要がある
解答と解説を見る

正解:B

Genie スペースはサブエージェント(ツール)として Multi-Agent Supervisor やカスタムエージェントに組み込め、マネージドMCPサーバーを通じてMCPツールとして公開することもできます(3-10参照)。Aは単体利用に限定している点が誤りです。CはUnity Catalogのガバナンスが引き続き効くため誤りです。DはGenieが生成したSQLを実行して結果を返すため誤りです。