Fabric データ エージェントを使うと、OneLake 上の SQL データ(Lakehouse、Data Warehouse、Fabric SQL Database、Mirrored Databases)に対して自然言語で質問でき、ガバナンスが適用された読み取り専用の回答を得られます。 裏では、エージェントは組み込みの自然言語からSQLへの変換(NL2SQL)ツールを使って、各質問をT-SQLクエリに変換し、選択したスキーマと照らして検証し、ソースのSQL分析エンドポイントを通じて実行します。
この記事では、エージェントが SQL ソースに使用できる 2 つのクエリ生成ツールについて説明します。
- NL2SQL — 標準ランタイム上のデータ エージェントによって使用される一般公開 (GA) ツール。
- Advanced NL2SQL — プレビュー ランタイム上のデータ エージェントによって使用される、複数ステップの推論を含む プレビュー ツールです。
どちらのツールも、スキーマの選択、データ ソース命令、クエリの例など、各 SQL ソースに対して指定したのと同じ構成に基づいて作成されます。 これらの入力の構成の詳細については、データ エージェントでのデータ ソースの追加と構成Fabric参照してください。
NL2SQL
NL2SQL は、SQL ソースの既定のクエリ生成ツールであり、標準ランタイム上のデータ エージェントによって使用されるツールです。 1 回のパスで T-SQL クエリが生成されます。
- 選択したスキーマと、提供したデータソースの指示を読み取ります。
- サンプル クエリ ライブラリに対するベクトルの類似性を使用して、ユーザーの質問に最も似た上位のクエリ例を取得します。
- そのコンテキストで基盤となる SQL クエリが生成され、承認されたスキーマに対して検証され、SQL 分析エンドポイントを介して実行されます。
NL2SQL は、安定した予測可能な動作に最適化されており、リリース間で一貫した出力が重要な運用データ エージェントに推奨される選択肢です。 スキーマの選択、データ ソースの指示、NL2SQL をフィードするクエリの例の詳細については、データ エージェントでのデータ ソースの追加と構成Fabric参照してください。
Advanced NL2SQL (プレビュー)
Advanced NL2SQL は、プレビュー ランタイムで使用できる NL2SQL ツールの新しいバージョンです。 これは同じツールで、SQLソースを通じた自然言語からSQLへの変換ですが、1つの大きな違いがあります。クエリを一回のパスで生成するのではなく、クエリを返す前に複数の推論ステップを計画し実行することです。 たとえば、スキーマを検査したり、関連する例を選択したり、あいまいなフィルター値を解決したり、クエリにコミットする前に明確な質問をしたりできます。
Advanced NL2SQLは、NL2SQLにはない品質向上と設定体験を提供します:
- 次の例では、クエリの一貫性が高くなります。 NL2SQL は、常に例のクエリに厳密に従うとは限りません。また、例に含まれていないロジックや制約が追加される場合があります。 Advanced NL2SQL は、クエリ ライブラリの例で示されているパターンにより厳密に準拠しています。
- フィルター値を正しく置き換えます。 質問が明示的に示すのではなく、複数のカテゴリフィルターまたはブール型フィルターを意味する場合、NL2SQL はそれらの一部を見逃したり、誤って適用したりする可能性があります。 高度なNL2SQLは、暗黙のフィルターを推論し、適切な値をクエリに代入します。
- あいまいな質問の処理。 質問があいまいな場合、NL2SQL は仮定にコミットし、クエリを生成する傾向があります。 Advanced NL2SQL では、あいまいさを検出し、SQL を生成する前に明確な質問をユーザーに求め、意図の読み間違いによる誤った回答を減らすことができます。
- スキーマの詳細も理解しています。 オブジェクト名だけではスキーマ要素の意味を説明できず、データソースの命令はすべてのオブジェクトを記述するのに十分なスペースがないかもしれません。 スキーマオブジェクトの記述を用いることで、作成者は個々のテーブル、列、その他のスキーマ要素に文脈を提供でき、Advanced NL2SQLがスキーマを解釈し、より正確なクエリを生成できます。
高度なNL2SQLは、すでにNL2SQLで設定しているスキーマ選択、データソース命令、例クエリを使用します。 また、スキーマオブジェクト記述など、Advanced NL2SQLでのみ利用可能な構成も利用できます。
Advanced NL2SQL を使用する
Advanced NL2SQL は、プレビュー ランタイムの一部です。 これを使用するには、データ エージェントをプレビュー ランタイムに切り替えます。 ランタイムを切り替える方法と、切り替えたときに他に何が変わるかについては、Fabric データ エージェント ランタイムを参照してください。
Advanced NL2SQL はプレビュー段階であるため、リリース間で動作が変わる可能性があります。 これを使用して、今後の改善点を評価し、GAに卒業する前にフィードバックを提供します。一貫性のある出力を必要とする運用データ エージェントの場合は、NL2SQL を使用して標準ランタイムを維持します。