Examples#
次の例は、AIパイプラインを使用して大量のナレッジベースKB埋め込みを実行する方法を示しています。各ステージで予想される出力を含みます。これらの例は、標準のPostgresテーブルと外部S3バケットボリュームからのデータの取り込みをカバーしています。
例1 Postgresテーブルからの大量埋め込み#
このワークフローは、ソースデータがデータベース内に既に保存されている場合に使用されます。
ステップ1AIモデルを初期化する#
テキストエンコード操作をサポートするモデルを登録します。
SELECT aidb.create_model(model__6545, bert_local);
__OUTPUT__
create_model
- -------------
model__6545
(1 row)
ステップ2ソースデータを準備する#
テーブルを作成し、埋め込むレコードを挿入します。
CREATE TABLE source_table__6545 (
id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
content TEXT NOT NULL
);
INSERT INTO source_table__6545 (id, content)
VALUES (43941, Catwalk Women Brown Heels),
(55018, Lakme 3 in 1 Orchid Aqua Shine Lip Color),
(19337, United Colors of Benetton Men Stripes Black Jacket);
ステップ3パイプラインを定義する#
ソーステーブルをナレッジベースの宛先に接続するパイプラインを作成します。
SELECT aidb.create_pipeline(
name => pipeline__6545,
source => source_table__6545,
source_key_column => id,
source_data_column => content,
step_1 => KnowledgeBase,
step_1_options => aidb.knowledge_base_config(
model => dummy,
data_format => Text
)
);
__OUTPUT__
INFO: Created pipeline "pipeline__6545"
INFO: Created knowledge base "public.pipeline_pipeline__6545" for pipeline "pipeline__6545"
create_pipeline
- ----------------------------------------------------------------------
(pipeline__6545,Table,public,pipeline_pipeline__6545,source_id,value)
(1 row)
ステップ4実行と確認#
処理エンジンをトリガーし、生成されたベクトルテーブルを検査します。
SELECT aidb.run_pipeline(pipeline__6545);
- - View the generated embeddings
SELECT * FROM pipeline_pipeline__6545 ORDER BY id;
__OUTPUT__
id | pipeline_id | source_id | part_ids | value
- ---+-------------+-----------+----------+---------------
1 | 49 | 43941 | {0} | [0.1,0.2,0.3]
2 | 49 | 55018 | {0} | [0.1,0.2,0.3]
3 | 49 | 19337 | {0} | [0.1,0.2,0.3]
(3 rows)
例2 S3バケットPGFSからの大量埋め込み#
このワークフローは、外部クラウドストレージに保存されている非構造化データに使用されます。
ステップ1外部ストレージとボリュームを構成する#
S3バケットの場所を定義し、AIDBボリュームにマッピングします。
SELECT pgfs.create_storage_location(
bucket__6545,
s3://noah-html-test,
options => {"region": "eu-central-1", "skip_signature": "true"}
);
SELECT aidb.create_volume(volume__6545, bucket__6545, /, Text);
ステップ2ボリュームコンテンツをリストする#
処理可能なファイルを確認します。
SELECT * FROM aidb.list_volume_content(volume__6545);
__OUTPUT__
file_name | size | last_modified
- -----------------+-------+-------------------------
Bilge Ince.html | 8878 | 2025-02-19 09:58:29 UTC
all_tags.html | 11170 | 2025-02-19 09:58:29 UTC
hello_world.html | 108 | 2025-02-19 09:58:30 UTC
simple.html | 662 | 2025-02-19 09:58:29 UTC
(4 rows)
ステップ3ボリュームパイプラインを作成して実行する#
SELECT aidb.create_pipeline(
name => volume_pipeline__6545,
source => volume__6545,
step_1 => KnowledgeBase,
step_1_options => aidb.knowledge_base_config(
model => dummy,
data_format => Text
)
);
SELECT aidb.run_pipeline(volume_pipeline__6545);
ステップ4埋め込みを検証する#
SELECT source_id, part_ids, value FROM pipeline_volume_pipeline__6545 ORDER BY source_id;
__OUTPUT__
source_id | part_ids | value
- -----------------+----------+---------------
Bilge Ince.html | {0} | [0.1,0.2,0.3]
all_tags.html | {0} | [0.1,0.2,0.3]
hello_world.html | {0} | [0.1,0.2,0.3]
simple.html | {0} | [0.1,0.2,0.3]
(4 rows)