Pipelines knowledge bases reference#

Pipelinesナレッジベースのこのリファレンスドキュメントには、 Knowledge Bases に関連するaidb拡張機能で使用可能なファンクションとビューに関する情報が含まれています。

ビュー#

helpb.Knowledge_bases#

aidb.kbs としても参照可能なaidb.knowledge_bases ビューは、データベース内のすべてのナレッジベースのリストを提供します。これには、ナレッジベース名、使用されるモデル、およびソースデータ型に関する情報が含まれています。

Column

Type

Description

id

integer

NA

name

text

ナレッジベースの名前。

vector_schema

text

Vector_tableのスキーマ。

vector_table

text

エンベディングが保存されるテーブルの名前。存在しない場合は新しく作成されます。 aidbが管理しています。

vector_key_column

text

埋め込みを計算するときにソースデータのキーを参照するキーを格納するために使用する列。デフォルトを使用し、aidbにこのテーブルの管理を任せることをお勧めします。

vector_data_column

text

埋め込みを保存する列。デフォルトを使用し、ailedbにこのテーブルを管理させることをお勧めします。

model_name

text

埋め込み計算と取得に使用するモデルの名前。

topk

integer

取得中に返される結果のデフォルトの数。 SQLのLIMITに似ています。

distance_operator

helpb.DistanceOperator

取得中に、ベクトルを比較するために使用されるベクトル操作。

options

jsonb

未使用。

auto_processing

helpb.PipelineAutoProcessingモード

自動処理モード。

owner_role

text

このパイプラインを作成したPostgresロール。バックグラウンド自動処理は、このロールとしてパイプラインを実行します。

batch_size

integer

このパイプラインの実行時に同時に処理するレコードの数。

background_sync_interval

interval

バックグラウンドの自動処理に使用されます。これは、パイプラインの実行間の間隔です。

source_type

text

このパイプラインがデータソースとしてテーブルまたはボリュームを使用するかどうかを示します。

source_schema

text

source_tableのスキーマ。

source_table

text

パイプラインの入力として使用されるテーブルの名前。ナレッジベースがソースとしてボリュームを使用する場合、使用されません。

source_data_column

text

Pipelinesがエンベディングを計算するソーステーブルの列名。これは、取得操作で返される列でもあります。

source_data_format

helpb.PipelineDataFormat

ナレッジベースが処理しているデータのフォーマット。 :ref:``aidb.PipelineDataFormat` <#aidbpipelinedataformat>` 型を使用します。

source_key_column

text

ベクタテーブルにエンベディングを保存するためのキーとして使用する列。これは、エンベディングからソースデータへの参照を提供します。

source_volume_name

text

データソースとして使用するボリュームの名前。 aidb.create_volume_knowledge_base()で構成されたナレッジベースにのみ適用されます。

helpb.knowledge_base_stats#

aidb.kbstat としても参照可能なaidb.knowledge_base_stats ビューは、ナレッジベースパイプラインの自動処理に関する現在の統計を提供します。

Column

Type

Description

knowledge base

text

ナレッジベースの名前。

auto processing

helpb.PipelineAutoProcessingモード

自動処理モード。

table: unprocessed rows

bigint

テーブルナレッジベースの場合 最後に実行されてから新しいまたは変更された可能性のある未処理の行の数。

volume: scans completed

bigint

ボリュームナレッジベースの場合 これまでに実行されたソースボリュームの完全なリストの数。

count(source records)

bigint

ナレッジベースのソースのレコードの数。ボリュームナレッジベースの場合、これは最後のフルスキャン中に見られたレコードの数です。

count(embeddings)

bigint

宛先テーブルに保存されているエンベディングの数。

タイプ#

helpb.DistanceOperator#

aidb.DistanceOperator 型は、取得中に使用できる距離演算子を表す列挙型です。

Value

Description

L2

ユークリッド距離

Inner

内積

Cosine

コサイン類似度

L1

L1距離

Hamming

ハミング距離

Jaccard

Jaccard距離

SQL定義

CREATE TYPE DistanceOperator AS ENUM (
  L2,
  InnerProduct,
  Cosine,
  L1,
  Hamming,
  Jaccard
);

helpb.PipelineDataFormat#

aidb.PipelineDataFormat 型は、ソースデータとして使用できるデータ形式を表す列挙型です。

Value

Description

Text

テキストデータ

Image

画像データ

Pdf

PDFデータ

SQL定義

CREATE TYPE PipelineDataFormat AS ENUM (
  Text,
  Image,
  Pdf
);

helpb.PipelineAutoProcessingモード#

aidb.PipelineAutoProcessingMode タイプは、パイプラインの自動処理がどのように動作するか定義するために使用される列挙型ですナレッジベースや準備者など。

Value

Description

Live

新しいデータは追加中にすぐに処理されますPostgresトリガーを使用

Background

バックグラウンドでの継続処理Postgresバックグラウンドワーカーを使用

Disabled

自動処理なし

CREATE TYPE PipelineAutoProcessingMode AS ENUM (
    Live,
    Background,
    Disabled
);

ファンクション#

promoteb.create_table_knowledge_base#

指定されたテーブルのナレッジベースを作成します。

パラメーター#

Parameter

Type

Default

Description

name

TEXT

Required

ナレッジベースの名前。

model_name

TEXT

Required

使用するモデルの名前。

source_table

regclass

Required

ソースとして使用するテーブルの名前。

source_data_column

TEXT

Required

使用するソーステーブルの列名。

source_data_format

helpb.PipelineDataFormat

Required

その列のデータの形式"Text"、"Image"、"PDF"。

source_key_column

TEXT

'id'

行を参照するキーとして使用するソーステーブル内の一意の列。

vector_table

TEXT

NULL

NA

vector_data_column

TEXT

'embeddings'

NA

vector_key_column

TEXT

'id'

NA

topk

INTEGER

1

NA

distance_operator

helpb.DistanceOperator

'L2'

NA

options

JSONB

'{}'::JSONB

未使用

auto_processing

helpb.PipelineAutoProcessingモード

'Disabled'

このパイプラインの自動処理を構成します。

index_type

TEXT

'vector'

ベクトルテーブルに使用するインデックスのタイプ。

batch_size

int

100

同時に処理するレコードの数。

background_sync_interval

interval

'30 seconds'

バックグラウンド自動処理が構成されている場合のパイプライン実行間の間隔。

invoker_role

TEXT

NULL

テーブル、パイプライン、およびバックグラウンドジョブ実行を所有するロール。

distance_operator

index_type

L2

vector_l2_ops

InnerProduct

vector_ip_ops

Cosine

vector_cosine_ops

L1

vector_l1_ops

  • index_type がivfflat に設定されている場合、システムはベクターテーブルに IVFFlat インデックスを作成します。

  • index_type がdisabled に設定されている場合、インデックスは作成されません。

SELECT aidb.create_table_knowledge_base(
               name => test_knowledge_base,
               model_name => bert,
               source_table => test_source_table,
               source_data_column => content,
               source_key_column => doc_id,
               source_data_format => Text
       );

agentb.create_volume_knowledge_base#

指定されたPGFSボリュームのナレッジベースを作成します。

パラメーター#

Parameter

Type

Default

Description

name

TEXT

Required

ナレッジベースの名前

model_name

TEXT

Required

モデルの名前

source_volume_name

TEXT

Required

ボリュームの名前

vector_table

TEXT

NULL

ベクタテーブルの名前

vector_data_column

TEXT

'embeddings'

ベクター列の名前

vector_key_column

TEXT

'id'

キーカラムの名前

topk

INTEGER

1

返される結果の数

distance_operator

aidb.distanceoperator

'L2'

距離演算子

options

JSONB

'{}'::JSONB

オプション

auto_processing

helpb.PipelineAutoProcessingモード

'Disabled'

このパイプラインの自動処理を構成します。

index_type

TEXT

'vector'

ベクトルテーブルに使用するインデックスのタイプ。

batch_size

int

100

同時に処理するレコードの数。

background_sync_interval

interval

'30 seconds'

バックグラウンド自動処理が構成されている場合のパイプライン実行間の間隔。

invoker_role

TEXT

NULL

テーブル、パイプライン、およびバックグラウンドジョブ実行を所有するロール。

distance_operator

index_type

L2

vector_l2_ops

InnerProduct

vector_ip_ops

Cosine

vector_cosine_ops

L1

vector_l1_ops

  • index_type がivfflat に設定されている場合、システムはベクターテーブルに IVFFlat インデックスを作成します。

  • index_type がdisabled に設定されている場合、インデックスは作成されません。

SELECT aidb.create_volume_knowledge_base(
               name => demo_vol_knowledge_base,
               model_name => simple_model,
               source_volume_name => demo_bucket_vol
       );

promoteb.set_auto_knowledge_base#

このナレッジベースの自動処理モードを設定します。

パラメーター#

Parameter

Type

Default

Description

knowledge_base_name

TEXT

自動処理を有効にするナレッジベースの名前

mode

helpb.PipelineAutoProcessingモード

目的の自動処理モード

batch_size

INTEGER DEFAULT NULL

無効別名手動またはバックグラウンド処理で1つのバッチで処理するレコードの数

background_sync_interval

INTERVAL DEFAULT NULL

バックグラウンド処理の目的の同期間隔

例#

SELECT aidb.set_auto_knowledge_base(test_knowledge_base, Live);
SELECT aidb.set_auto_knowledge_base(test_knowledge_base, Disabled, batch_size => 100);
SELECT aidb.set_auto_knowledge_base(test_knowledge_base, Background);
SELECT aidb.set_auto_knowledge_base(test_knowledge_base, Background, batch_size => 100, background_sync_interval => 10 seconds);

helpb.bulk_embedding#

このパイプラインのソースレコードのエンベディングを計算し、ベクター宛先に保存します。

このファンクションの動作は、構成されたauto_processingモードによって異なります。

  • ライブおよび無効な自動処理 すべてのソースレコードを直接処理します。

  • バックグラウンド自動処理 処理するすべてのソースレコードをマークしますが、操作は実行しません。バックグラウンドワーカーが実行します。

パラメーター#

Parameter

Type

Default

Description

knowledge_base_name

TEXT

エンベディングを生成するナレッジベースの名前。

silent

BOOL

false

印刷ステータスと進行状況ログを無効にします。

例#

aidb=# SELECT aidb.bulk_embedding(kb_volume_image_manual);
__OUTPUT__
INFO:  kb_volume_image_manual: (re)setting state table to process all data...
INFO:  kb_volume_image_manual: Starting... Batch size 10, count(known source records): 0, scans completed: 0, count(embeddings): 0
INFO:  kb_volume_image_manual: Batch iteration finished, count(known source records): 10, scans completed: 0, count(embeddings): 10
[...]
INFO:  kb_volume_image_manual: Batch iteration finished, count(known source records): 177, scans completed: 0, count(embeddings): 177
INFO:  kb_volume_image_manual: finished, count(known source records): 177, scans completed: 1, count(embeddings): 177

promoteb.retrieve_key#

ソースデータを検索せずに、一致する埋め込みからキーを取得します。

パラメーター#

Parameter

Type

Default

Description

knowledge_base_name

TEXT

取得に使用するナレッジベースの名前

query_string

TEXT

取得に使用するクエリ文字列

number_of_results

INTEGER

0

返される結果の数

例#

SELECT * FROM aidb.retrieve_key(test_knowledge_base, shoes, 2);
__OUTPUT__
  key  |      distance
- ------+--------------------
 43941 | 0.2938963414490189
 19337 | 0.3023805122617119
(2 rows)

helpb.retrieve_text#

埋め込みをソーステーブルに結合することにより、一致する埋め込みからソーステキストデータを取得します。

パラメーター#

Parameter

Type

Default

Description

knowledge_base_name

TEXT

取得に使用するナレッジベースの名前

query_string

TEXT

取得に使用するクエリ文字列

number_of_results

INTEGER

0

返される結果の数

返品#

Column

Type

Description

key

text

取得したデータのキー

value

text

取得したデータの値

distance

double precision

クエリから取得されたデータの距離

例#

SELECT * FROM aidb.retrieve_text(test_knowledge_base, jacket, 2);
__OUTPUT__
  key  |                       value                        |      distance
- ------+----------------------------------------------------+--------------------
 19337 | United Colors of Benetton Men Stripes Black Jacket | 0.2994317672742334
 55018 | Lakme 3 in 1 Orchid  Aqua Shine Lip Color          | 0.3804609668507203
(2 rows)

aidb.delete_knowledge_base#

ナレッジベースの構成のみをデータベースから削除します。

パラメーター#

Parameter

Type

Default

Description

knowledge_base_name

TEXT

削除するナレッジベースの名前

例#

select aidb.delete_knowledge_base(test_knowledge_base);
__OUTPUT__
 delete_knowledge_base
- -----------------

(1 row)

promoteb.create_volume#

ナレッジベースのデータソースとして使用するために、PGFSストレージ場所からボリュームを作成します。

パラメーター#

Parameter

Type

Default

Description

name

TEXT

作成するボリュームの名前

server_name

TEXT

ボリュームに使用するストレージ場所の名前

path

TEXT

保存場所のボリュームへのパス

mime_type

TEXT

ボリューム内のデータの種類テキストまたはイメージ

例#

select aidb.create_volume(demo_bucket_vol, demo_bucket, demo_bucket/demo_folder, Text);
__OUTPUT__
 create_volume
- --------------
(1 row)

promoteb.list_volumes#

データベースに作成されたすべてのボリュームをリストします。

例#

select * from aidb.list_volumes();

promoteb.delete_volume#

データベースからボリュームを削除します。

パラメーター#

Parameter

Type

Default

Description

volume_name

TEXT

削除するボリュームの名前

例#

select aidb.delete_volume(demo_bucket_vol);
__OUTPUT__
 delete_volume
- ------------
(1 row)