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 |
取得中に、ベクトルを比較するために使用されるベクトル操作。 |
|
options |
jsonb |
未使用。 |
auto_processing |
自動処理モード。 |
|
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 |
ナレッジベースが処理しているデータのフォーマット。 :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 |
自動処理モード。 |
|
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データ |
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 |
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 |
'L2' |
NA |
|
options |
JSONB |
'{}'::JSONB |
未使用 |
auto_processing |
'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 |
'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 |
目的の自動処理モード |
||
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)