Text-to-SQL#
Text-to- SQLは、 「前四半期に最も費やした顧客はどこですか?」 などの自然言語の質問を、独自のスキーマに対する正しいクエリーに変換します。セマンティックKBにより、これが信頼できます。テーブル名と列名を推測するのではなく、質問は最初にKBのインデックス付けされたスキーマに基づいています。
2つの補完的なパスが Searching a semantic knowledge base にビルドされます。
エージェント駆動。 Agents reference は、関連するスキーマを検出するツールとしてKBの検索機能を呼び出し、 SQLを生成および実行します。オープンエンドの会話型分析に最適です。
アプリケーション駆動 アプリケーションは エイリアスを見つける および エイリアスを実行する を呼び出して、確認されたパラメーター化されたクエリーに質問を解決します。決定論的で管理された回答が必要な繰り返しの質問に最適です。
text-to- SQLエンジンとしてのエージェント#
セマンティックKB検索機能は、ネイティブ agent tools として登録されます。これらのツールを与えられたエージェントは、質問がマップするテーブルと列を自分自身で見つけ、それらに基づいてSQLを書くことができます。利用するツール
Tool |
Role in text-to-SQL |
|---|---|
One ranked list of the schema entities (and any matching aliases) relevant to the question. |
|
Narrower schema lookups when the agent needs only tables, only columns, or lean definitions. |
|
Finds entities through the intent captured in COMMENT ON text. |
|
run_sql_query |
Runs the read-only SQL the agent generates and returns the rows. |
すべての検索ツールは読み取り専用であるため、エージェントは書き込みのリスクなしで自由にスキーマを探索できます。
ワークフロー#
"Which customers ┌───────────────────────┐
spent the most ─────▶│ agent (pg_agent) │
last quarter?" └───────────┬───────────┘
│ 1. discover schema
▼
┌───────────────────────┐
│ semantic_kb_search │ schema entities
│ (+ get_metadata, …) │ + matching aliases
└───────────┬───────────┘
│ 2. generate SQL grounded in the results
▼
┌───────────────────────┐
│ run_sql_query │ execute read-only SQL
└───────────┬───────────┘
▼
answer rows
Discover. エージェントは
semantic_kb_searchおよび必要に応じてより狭いファンクションを呼び出して、質問がマップする正確なテーブル、列、コメントに加えて、既に一致する Semantic aliases を取得します。これらはsource_type = 'alias'で結果に表示されます。Generate、grounded. エージェントは、取得した定義に対してSQLを書き込みます。実際のスキーマコンテキスト実際の列名、タイプ、コメントに対する生成は、テーブル名のみに対して生成するよりもはるかに正確です。
Run. エージェントは
run_sql_queryでSQLを実行し、行を結果ます。
このようなエージェントを構築するには、作成時にセマンティックKBツールを提供します。 Managing agents および tool catalog を参照してください。
代わりにエイリアスに手を伸ばす場合#
エイリアスは、エージェント生成の決定論的な対応物です。
Semantic aliases は、レビューされたパラメーター化されたSELECT
であるため、検証する要求ごとの生成なしで信頼できる結果を返します。次の場合にエイリアスを使用します。
同じ質問が繰り返し発生し、1つの正規クエリーに値します。
エイリアスが単一の読み取り専用の
SELECTとして実行され、execute_roleを介して最小特権ロールで実行できるガバインド実行が必要です。
エイリアスはsemantic_kb_search
結果内の表面に表示されるため、エージェントは質問にキュレートされたクエリが存在することを
確認
できます。ただし、エイリアスの実行は、aidb.execute_semantic_alias()
を介して直接実行されます。エイリアス機能は意図的にエージェントツールではありません。
raw生成との比較#
根拠あり、推測ではありません。 モデルは、関連するリレーションの実際の定義とコメントを参照するため、存在する列を適切なタイプで参照します。
信頼できる回答が発生します。 エイリアスとしてキャプチャしたすべての質問は、生成の必要がなくなった質問であり、モデルが間違ったSQLを生成する可能性のあるサーフェスを縮小します。
構築による読み取り専用。 スキーマ検索ツールとエイリアスはすべて読み取り専用であるため、検出パスと回答パスはデータを変更できません。
次のステップ#
Examples のサンプルスキーマのフロー全体を説明します。
Searching a semantic knowledge base の検索機能と Semantic aliases のエイリアス機能を確認します。