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

Searching a semantic knowledge base

The schema-search functions: semantic_kb_search, get_metadata, comment search, and filters

Semantic aliases

Named, parameterized SQL queries with vectorized descriptions, enabling reusable, governed text-to-SQL

例 text-to- SQLエージェント

How an AIDB agent uses the KB's search tools to discover schema and generate correct SQL

Examples

A worked end-to-end example over a sample schema

関連ドキュメント#

  • Agents reference 、ツールとしてセマンティックKB検索機能を呼び出すデータベース内エージェントの構築をカバーします。

  • Semantic knowledge base tools 、KB機能のネイティブツールカタログエントリをリストします。

  • Knowledge bases reference 、データのセマンティックおよびハイブリッド検索のためのベクター知識ベースをカバーします。