Knowledge bases reference#
Reference for knowledge base (KB) functions and views. For guide-style documentation, see Knowledge bases reference .
Catalog views#
aidb.knowledge_bases#
Also accessible as aidb.kbs . Lists all knowledge bases in the
database with their full configuration.
Column |
Type |
Description |
|---|---|---|
id |
integer |
Internal identifier |
name |
text |
Knowledge base name |
vector_schema |
text |
Schema of the embeddings table |
vector_table |
text |
Embeddings storage table |
model_name |
text |
Embedding model used |
distance_operator |
Vector distance function used for retrieval |
|
distance_operator_sql |
text |
The distance operator in SQL-operator syntax (for example, <->, <=>) |
vector_data_column |
text |
Embeddings column |
vector_key_column |
text |
Key column in the embeddings table |
vector_index |
jsonb |
Vector index configuration |
pipeline_ids |
integer[] |
IDs of all pipelines attached to this knowledge base |
pipeline_names |
text[] |
Names of all pipelines attached to this knowledge base |
aidb.knowledge_base_metrics#
Also accessible as aidb.kbm . Aggregated stats for each knowledge
base — pipeline count, embedding row count, and the worst pipeline
status. For per-pipeline progress (backlog, errors, source / destination
counts), see aidb.pipeline_metrics .
Column |
Type |
Description |
|---|---|---|
name |
text |
Knowledge base name (schema.vector_table). |
pipelines |
integer |
Number of pipelines attached to this KB. |
embeddings |
bigint |
Row count of the vector table. |
status |
text |
Worst status across all attached pipelines (see AI pipelines ). |
Example#
SELECT * FROM aidb.kbm;
__OUTPUT__
name | pipelines | embeddings | status
- -----------------------------+-----------+------------+----------
public.product_catalog_kb | 1 | 1842 | UpToDate
public.customer_feedback_kb | 2 | 915 | UpToDate
(2 rows)
The legacy view names aidb.knowledge_base_stats and aidb.kbstat
are kept as aliases of aidb.knowledge_base_metrics for backward
compatibility.
Types#
aidb.DistanceOperator#
Vector distance function used during retrieval.
Value |
Description |
|---|---|
L2 |
Euclidean distance |
InnerProduct |
Inner product |
Cosine |
Cosine similarity |
L1 |
L1 distance |
Hamming |
Hamming distance |
Jaccard |
Jaccard distance |
aidb.PipelineDataFormat#
Format of data in a pipeline source or volume.
Value |
Description |
|---|---|
Text |
Plain text |
Image |
Binary image data |
PDF documents |
aidb.PipelineAutoProcessingMode#
Auto-processing mode for a knowledge base pipeline.
Value |
Description |
|---|---|
Live |
Immediate processing via Postgres triggers on each data change |
Background |
Periodic processing via a Postgres background worker |
Disabled |
No automatic processing; run manually with aidb.run_pipeline() |
Knowledge base functions#
To change a pipeline’s auto-processing mode, use aidb.update_pipeline .
aidb.retrieve_key#
Returns the source record keys and distances for the top matching
embeddings, without fetching source data. In part_ids , also returns
the IDs of the matching parts for each step in a multi-step pipeline.
For example, if a single source record is split into 10 parts by a
ChunkText step, then part_ids indicates which chunk matched.
Parameters#
Parameter |
Type |
Default |
Description |
|---|---|---|---|
knowledge_base_name |
TEXT |
Required |
Name of the knowledge base (schema.vector_table). |
query |
TEXT or BYTEA |
Required |
Query text or image bytes. Must match the data format of the embedding model. |
topk |
INTEGER |
1 |
Number of results to return. Must be a positive integer — 0 or a negative value raises an error. |
deduplicate |
BOOLEAN |
true |
Return each source result only once even if multiple "parts" (for example, chunks/pages) match. See Deduplication and intermediate results . |
Returns#
Column |
Type |
Description |
|---|---|---|
key |
text |
Source record key |
distance |
double precision |
Vector distance from the query |
part_ids |
bigint[] |
Which parts (for example, chunk or page) of the source record produced the matching vector |
pipeline_name |
text |
Name of the pipeline that supplied this row. Useful when the KB has multiple attached pipelines. |
Example#
SELECT * FROM aidb.retrieve_key(public.customer_feedback_kb, late delivery, topk=>3);
__OUTPUT__
key | distance | part_ids | pipeline_name
- -----+--------------------+----------+------------------
1042 | 1.1931772046185758 | {0,0} | feedback_eu_pipe
318 | 1.1980633963685476 | {2,0} | feedback_na_pipe
1057 | 1.2150919866080878 | {2,0} | feedback_eu_pipe
(3 rows)
aidb.retrieve_text#
Returns source text and distances for the top matching embeddings by
joining the embeddings table with the source table. In part_ids ,
also returns the IDs of the matching parts for each step in a multi-step
pipeline. For example, if a single source record is split into 10 parts
by a ChunkText step, then part_ids indicates which chunk
matched. The return column intermediate_steps contains the actual
intermediate step output.
Parameters#
Parameter |
Type |
Default |
Description |
|---|---|---|---|
knowledge_base_name |
TEXT |
Required |
Name of the knowledge base (schema.vector_table). |
query |
TEXT or BYTEA |
Required |
Query text or image bytes. Must match the data format of the embedding model. |
topk |
INTEGER |
1 |
Number of results to return. Must be a positive integer — 0 or a negative value raises an error. |
deduplicate |
BOOLEAN |
true |
Return each source result only once even if multiple "parts" (for example, chunks/pages) match. See Deduplication and intermediate results . |
Returns#
Column |
Type |
Description |
|---|---|---|
key |
text |
Source record key |
value |
text |
Source text content. NULL when the original source content is non-text (for example, PDF or Image); other columns still surface match metadata. |
distance |
double precision |
Vector distance from the query |
part_ids |
bigint[] |
Which part of the source record matched (for example, a chunk or page) |
pipeline_name |
text |
The name of the pipeline processing this source record |
intermediate_steps |
jsonb |
The matching results from any step configured with intermediate_destination — that is, the values belonging to part_ids. Empty (` []`) if no step in the pipeline has intermediate storage enabled. See End-to-end example: Multi-step pipeline with intermediate storage . |
intermediate_steps is a JSON array with one entry per step that has
intermediate storage enabled, each shaped like:
{"value": "...", "operation": "ChunkText", "step_order": 1, "destination_table": "public.pipeline_my_pipeline_step_1"}
Example#
SELECT * FROM aidb.retrieve_text(my_kb, waterproof jacket, 3);
__OUTPUT__
key | value | distance
- ------+----------------------------------------------------+--------------------
19337 | Men Stripes Waterproof Shell Jacket | 0.2994317672742334
55018 | Women All-Weather Hiking Anorak | 0.3804609668507203
(2 rows)
aidb.delete_knowledge_base#
Cascades: deletes all pipelines attached to the knowledge base, drops the vector table, and removes the registry entry. Doesn’t delete underlying source tables.
To remove a single pipeline from a multi-pipeline KB while keeping the KB and the other pipelines’ vectors intact, use aidb.delete_pipeline instead. Deleting the last attached pipeline also drops the KB.
Parameters#
Parameter |
Type |
Description |
|---|---|---|
knowledge_base_name |
TEXT |
Knowledge base identifier (schema.vector_table). |
Example#
SELECT aidb.delete_knowledge_base(public.customer_feedback_kb);
Volume management functions#
aidb.create_volume#
Creates an AIDB volume from a PGFS storage location. The volume is a foreign table that exposes the storage location’s contents as rows and can be used as a knowledge base data source or queried directly with SQL. See Configuring external storage for setting up the PGFS storage location first.
Parameters#
Parameter |
Type |
Description |
|---|---|---|
name |
TEXT |
Name for the volume. Must be a valid unquoted PostgreSQL identifier. |
server_name |
TEXT |
Name of the PGFS storage location. |
path |
TEXT |
Optional sub-path within the storage location. Canonicalized to a single trailing slash (for example, foo, /foo, foo/, /foo/ all store as foo/; NULL or / store as /). |
data_format |
TEXT |
Data format: Text, Image, or Pdf. |
Example#
SELECT aidb.create_volume(pdf_volume, my_s3_location, /, Pdf);
aidb.volumes#
View that lists all AIDB volumes in the database. Returns schema ,
volume , storage_location , and path .
Example#
SELECT * FROM aidb.volumes;
aidb.delete_volume#
Deletes an AIDB volume.
!!!note Deleting the underlying PGFS storage location also deletes all volumes built on top of it.
Parameters#
Parameter |
Type |
Description |
|---|---|---|
volume_name |
TEXT |
Name of the volume to delete. |
Example#
SELECT aidb.delete_volume(pdf_volume);