Semantic knowledge bases#
セマンティックナレッジベースセマンティックKBは、データベースの スキーマテーブル、ビュー、列、およびそれらのコメントを検索可能なベクターストアにインデックス付けするため、あなたまたは Agents reference は、正確な名前ではなく意味で適切なリレーションと列を見つけることができます。 。これは、** text-to- SQL**の基礎です。自然言語の質問を、独自のスキーマに対する正しいSQLクエリーに変換します。
セマンティックKBとベクターナレッジベース#
セマンティックKBと Knowledge bases reference は、どちらもエンベディングを保存し、類似性検索に回答しますが、それらは異なるものにインデックスを付け、異なる問題を解決します。
Vector knowledge base |
Semantic knowledge base |
|
|---|---|---|
What it embeds |
Your data (rows, documents, images) |
Your schema (table, view, and column metadata) |
What you search |
Content, by meaning |
Schema structure, by meaning |
Created by |
aidb.create_pipeline() with a AI pipelines |
aidb.create_semantic_kb() |
Typical use |
Retrieval-augmented generation, semantic search |
Natural-language schema discovery, agent tools, text-to-SQL |
データベースの 内容 を検索する場合は、ベクトルナレッジベースを使用してください。 データベースの形状 を検索し、質問がマップするテーブルと列を見つけたい場合は、セマンティックKBを使用します。
セマンティックKBインデックスとは#
セマンティックKBはスキーマをクロールすると、構造要素ごとに1つのエントリを埋め込みます。
テーブル は、テーブル定義とテーブルコメントを提供します。
ビュー は、ビュー定義とビューコメントを提供します。
Columns は、各列の定義名前、タイプ、NULL可能性、デフォルトおよび列のコメントに貢献します。
各エントリには、Table 、View 、またはColumn
のentity_type があります。コメントは重要です。 COMMENT ON
ステートメントの自然言語インテントは構造定義とともに埋め込まれ、直接照合できるため、適切にコメントされたスキーマは、より有用なセマンティックKBを生成します。
セマンティックKBを作成および管理する#
aidb.create_semantic_kb()
を使用して1つ以上のスキーマにセマンティックKBを作成します。渡されたモデルにスキーマメタデータを埋め込み、KBの内部ベクトルテーブルを構築し、すぐにスキーマをクロールします。
SELECT aidb.create_semantic_kb(
name => analytics_kb,
model => my_embedding_model,
schemas => ARRAY[sales],
auto_processing => Live
);
model
は埋め込みモデルであり、常に必要です。セマンティックKBは、すべてのメタデータおよびそのメンバーである Semantic aliases に
単一の埋め込みモデル
を使用するため、検索は常に同じ空間内のベクトルを比較します。
管理機能は次のとおりです。
Function |
Purpose |
|---|---|
aidb.create_semantic_kb(name, model, schemas, auto_processing, bypass_triggers, vector_index) |
Create a KB over one or more schemas. Returns the KB name. |
aidb.list_semantic_kbs() |
List every KB with its model, schemas, and processing mode. |
aidb.refresh_semantic_kb(name) |
Re-crawl the KB's schemas from scratch to pick up structural changes. |
aidb.update_semantic_kb_auto_processing(name, auto_processing) |
Change how the KB keeps itself current. |
aidb.semantic_kb_stats(kb_name) |
Return entity counts (total, tables, views, columns) and the number of pending schema changes. |
aidb.delete_semantic_kb(name) |
Delete a KB and its indexed metadata. |
シングルKBのショートカット#
セマンティックKBが1つだけ存在する場合、すべてのファンクションからname
/kb_name
を省略でき、呼び出しはそのKBに解決されます。作成時に名前を省略すると、KBは固定名default_semkb
で登録されます。
2番目のKBが存在すると、名前を省略した呼び出しがあいまいエラーで失敗するため、それ以降は名前を明示的に渡します。
KBを最新の状態に保つ#
auto_processing
モードは、スキーマの変更にKBが反応する方法を制御します。
Mode |
Behavior |
|---|---|
Disabled (default) |
自動更新はありません。スキーマが変更されたときに`aidb.refresh_semantic_kb()`を呼び出します。 |
Live |
DDLは、スキーマが変更されるとすぐに、影響を受けるリレーションを再クロールします。 |
Background |
バックグラウンドワーカーはキューされたDDLイベントを処理するため、再インデックスは書き込みパス外で発生します。 |
内部的に、Background
モードはAIDBのパイプライン機構によって駆動され、SemanticKB
パイプラインステップがキューに入れられたスキーマ変更イベントを消費します。そのパイプラインを自分で作成または管理することはありません。
aidb.create_semantic_kb() が設定します。
セマンティックKBの使用方法#
直接、 SQLで . Searching a semantic knowledge base
aidb.semantic_kb_search()およびその仲間たちを呼び出して、質問がマップするスキーマエンティティを見つけます。エージェントから KB検索機能はネイティブの agent tools として登録されているため、AIDBエージェントはスキーマを検出し、 例 text-to- SQLエージェント で質問に回答できます。
保存されたクエリーを介して。 繰り返しの質問を Semantic aliases としてキャプチャします。意味によって検索ができる自然言語の説明を含むパラメーター化SQL 。
このセクションでは#
Page |
What it covers |
|---|---|
The schema-search functions: semantic_kb_search, get_metadata, comment search, and filters |
|
Named, parameterized SQL queries with vectorized descriptions, enabling reusable, governed text-to-SQL |
|
How an AIDB agent uses the KB's search tools to discover schema and generate correct SQL |
|
A worked end-to-end example over a sample schema |
関連ドキュメント#
Agents reference 、ツールとしてセマンティックKB検索機能を呼び出すデータベース内エージェントの構築をカバーします。
Semantic knowledge base tools 、KB機能のネイティブツールカタログエントリをリストします。
Knowledge bases reference 、データのセマンティックおよびハイブリッド検索のためのベクター知識ベースをカバーします。