SQL検索(NL2SQL)

SQL検索(NL2SQL)を使用して、自然言語リクエストをOCI生成AIのエンタープライズ・データの検証済SQLに変換します。

NL2SQLは、エンタープライズAIエージェントが、基礎となるデータを移動またはコピーすることなく、フェデレーテッド・エンタープライズ・データを操作するのに役立ちます。セマンティック・エンリッチメント・レイヤーを使用して、ビジネス用語をデータベース・フィールド、表および結合にマップし、自然言語入力からSQLを生成します。

NL2SQLはSQLのみを生成します。問合せは実行されません

開始する前に

NL2SQLを使用する前に、データベースを作成し、必要なデータベース接続を構成します。

少なくとも、次のものが必要です。

  • ソースのOracle Autonomous Database
  • データベース・ツール・サービス・エンリッチメント接続
  • データベース・ツール・サービス問合せ接続

セマンティック・ストアの作成

NL2SQLを使用するには、OCI セマンティック・ストア・リソースを作成します。

セマンティック・ストアは、構造化データを含むベクトル・ストアに支えられており、次の2つのDBTools接続が含まれています。

  • エンリッチメントの接続
  • クエリー接続

コンソール

コンソールでベクトル・ストアを作成し、「構造化データ」を選択します。「構造化データ」を選択すると、エンリッチメント設定やデータベース接続の詳細など、セマンティック・ストア構成オプションが表示されます。

OCI Generative AI APIの使用

OCI生成AI APIで、CreateSemanticStore操作を使用してセマンティック・ストアを作成します。

ベースURL エンドポイント・パス 認証
https://generativeai.${region}.oci.oraclecloud.com/20231130 /semanticStores IAMセッションのみ

CreateSemanticStore APIは、OCI生成AIサービスAPIの一部であり、OCI IAMベースの認証を使用します。

DBTools接続

NL2SQLでは、異なる目的で2つのデータベース接続を使用します。

エンリッチメントの接続

エンリッチメント接続は、エンリッチメント中に使用される、より高い権限を持つ接続です。次の権限が必要です。

  • 問合せの実行
  • DDL操作の実行
  • データベースからのサンプル値へのアクセス

OCI Generative AIは、この接続を使用してスキーマ情報を読み取り、SQL生成に必要なメタデータを構築します。

クエリー接続

「問合せ接続」は、問合せユーザーのかわりに問合せを実行するために使用される、権限の低い接続です。

この分離は、生成と実行の責任を明確にし、より安全なアクセス制御をサポートするのに役立ちます。

エンリッチメント

エンリッチメント・プロセスは、接続されたデータベースから表や列などのスキーマ・メタデータを読み取ります。OCI Generative AIは、このメタデータを使用して、より優れたSQLを生成します。

エンリッチメントが実行されるタイミングを選択できます。

  • 作成時: エンリッチメントは、セマンティック・ストアの作成後に自動的に開始されます
  • 手動: エンリッチメントは、後で別のAPIコールを介して実行されます

エンリッチメントを手動でトリガーするには、GenerateEnrichmentJob APIをコールします。

自然言語からのSQLの生成

エンリッチメントが完了したら、GenerateSqlFromNl APIをコールして、自然言語入力をSQLに変換します。

このAPI:

  • 自然言語入力を受け入れます
  • エンリッチされたセマンティック・メタデータを使用します。
  • 生成されたSQLを返します。

このAPIでは、データベースに対してSQLは実行されません。

クエリー実行

DBTools MCP Serverは、完全な実行フローを編成します。

  1. SQLを生成するためにNL2SQLサービスを呼び出します。
  2. リクエストを承認します。
  3. ソース・データベースに対して問合せを実行します。
  4. 適切なガードレールを適用します。
  5. 実行にエンド・ユーザーのアイデンティティを使用します。

これにより、エージェントは、既存の権限の下でソース・システムで実行を維持しながら、エンタープライズ・データを操作できます。

エージェント・ワークフローでのNL2SQLの使用

NL2SQLは、より広範なエージェント・ワークフローの一部にすることができます。

クライアントは次のことができます。

  1. レスポンスAPIにリクエストを送信して、エージェント・プランニングおよびリクエスト検証を開始します
  2. GenerateSqlFromNlをコールして、自然言語リクエストをSQLに変換します
  3. 必要に応じて、DBTools MCP Serverを使用して問合せを実行します。
  4. 生成されたSQLまたは問合せ結果をレスポンスAPIに渡して、ワークフローの次のステップに戻します

これにより、構造化データ・アクセスと、より広範なエージェント推論およびオーケストレーションを組み合せることができます。

NL2SQLがエージェントに適合する方法

NL2SQLは、OCI Generative AIのエンタープライズ・データ機能です。これは、ビジネス言語リクエストをSQLに変換して、構造化されたエンタープライズ・データをエージェントが処理する必要がある場合に役立ちます。

ファイル検索、コード・インタプリタ、ファンクション・コールおよびMCPコールとは異なり、NL2SQLはレスポンスAPIのtoolsエントリとして構成されていません。独自のAPIフローとサポート・リソースを使用しており、次のことを中心としています。

  • セマンティック・ストアー
  • DBTools接続
  • エンリッチメント
  • SQLFromNlの生成

NL2SQL API

NL2SQLツールには、次のAPIを使用できます。

セマンティック・店舗
  • CreateSemanticStore
  • ListSemanticStores
  • GetSemanticStore
  • UpdateSemanticStore
  • ChangeSemanticStoreCompartment
  • DeleteSemanticStore
拡充ジョブ
  • ListEnrichmentJobs
  • GetEnrichmentJob
  • GenerateEnrichmentJob
  • CancelEnrichmentJob
  • GenerateSqlFromNl
SQLの生成
GenerateSqlFromNl