Functions reference#
Reference for AIDB standalone SQL functions that transform data directly in queries, without requiring a pipeline. For guide-style documentation and usage examples, see SQL functions .
For AI inference functions (encode_text , decode_text ,
rerank_text , and related), see Inference functions .
aidb.chunk_text#
Divides a text string into smaller, semantically coherent segments.
Parameters#
Parameter |
Type |
Description |
|---|---|---|
input |
TEXT |
The text to chunk. |
options |
JSONB |
Chunking configuration (see below). |
Options
Key |
Type |
Default |
Description |
|---|---|---|---|
desired_length |
integer |
Required |
Target segment size. Acts as a strict upper limit if max_length is omitted. |
max_length |
integer |
NULL |
Upper bound for chunk size. Chunks extend past desired_length only to preserve semantic boundaries. |
overlap_length |
integer |
0 |
Amount of content to repeat between consecutive chunks, to preserve cross-boundary context. |
strategy |
text |
'chars' |
Chunking unit: 'chars' (character-based) or 'words' (word-based). Determines the unit for desired_length, max_length, and overlap_length. |
Returns#
Column |
Type |
Description |
|---|---|---|
part_id |
integer |
Zero-based segment index. |
chunk |
text |
The text segment. |
Example#
SELECT * FROM aidb.chunk_text(
input => Long text here...,
options => {"desired_length": 120, "max_length": 150}
);
aidb.parse_html#
Extracts readable text from an HTML string, stripping tags while preserving structure.
Parameters#
Parameter |
Type |
Description |
|---|---|---|
html |
TEXT |
The HTML string to parse. |
options |
JSONB |
Parsing configuration (see below). |
Options
Key |
Type |
Default |
Description |
|---|---|---|---|
method |
text |
'StructuredPlaintext' |
Parsing method: 'StructuredPlaintext' (plain text extraction) or 'StructuredMarkdown' (Markdown-like output that retains headers and lists). |
Returns#
TEXT — the extracted text content.
Example#
SELECT aidb.parse_html(
html => <h1>Hello</h1><p>World</p>,
options => {"method": "StructuredPlaintext"}
);
aidb.parse_pdf#
Extracts text from binary PDF data. Returns one row per page.
Parameters#
Parameter |
Type |
Description |
|---|---|---|
bytes |
BYTEA |
Raw PDF binary data. |
options |
JSONB |
Parsing configuration (see below). |
Options
Key |
Type |
Default |
Description |
|---|---|---|---|
method |
text |
'Structured' |
Parsing method. Currently 'Structured' (spec-based text block extraction). |
allow_partial_parsing |
boolean |
true |
When true, continues parsing when errors are encountered on individual pages, returning as much data as possible. |
Returns#
Column |
Type |
Description |
|---|---|---|
part_id |
integer |
Page index (zero-based) from which the text was extracted. |
text |
text |
Extracted text for that page. |
Example#
SELECT * FROM aidb.parse_pdf(
bytes => pg_read_binary_file(/path/to/doc.pdf)::BYTEA,
options => {"allow_partial_parsing": true}
);
aidb.perform_ocr#
Extracts text from image data using a registered OCR-capable model.
Parameters#
Parameter |
Type |
Description |
|---|---|---|
input |
BYTEA |
Raw binary image data. |
options |
JSONB |
OCR configuration (see below). |
Options
Key |
Type |
Description |
|---|---|---|
model |
text |
Name of a registered OCR-capable model (for example, one using the nim_ocr provider). |
Returns#
Column |
Type |
Description |
|---|---|---|
part_id |
integer |
Text block index. A single image may produce multiple rows if the provider returns multiple text segments. |
text |
text |
Extracted text for that block. |
Example#
SELECT * FROM aidb.perform_ocr(
input => pg_read_binary_file(/path/to/image.png)::BYTEA,
options => {"model": "my_ocr_model"}
);
aidb.summarize_text#
Generates a concise summary of a text string using a registered language model.
Parameters#
Parameter |
Type |
Description |
|---|---|---|
input |
TEXT |
The text to summarize. |
options |
JSONB |
Summarization configuration (see below). |
Options
Key |
Type |
Default |
Description |
|---|---|---|---|
model |
text |
Required |
Name of a registered model that supports decode_text. |
prompt |
text |
(standard prompt) |
Custom instruction to guide the summary style, for example 'Summarize for a 5th grader'. |
chunk_config |
JSONB |
NULL |
Chunking configuration to apply before summarization when input exceeds the model's context window. Accepts the same keys as aidb.chunk_text options. |
strategy |
text |
'append' |
Summarization strategy: 'append' (summarize each chunk independently and concatenate) or 'reduce' (iteratively summarize until the desired length is reached). |
reduction_factor |
integer |
3 |
Used with the 'reduce' strategy. Controls how aggressively each iteration reduces the text. |
Returns#
TEXT — the generated summary.
Example#
SELECT aidb.summarize_text(
input => Long article text here...,
options => {"model": "my_t5_model"}
);
aidb.summarize_text_aggregate#
Aggregate version of aidb.summarize_text . Accumulates text from all
rows in each group, then sends the combined result to the LLM for
summarization. Returns one summary per GROUP BY group. Empty and
NULL rows are skipped.
Parameters#
Parameter |
Type |
Required |
Description |
|---|---|---|---|
input |
TEXT |
Yes |
Text column from each row. Empty/NULL rows are skipped. |
options |
JSON |
Yes |
Configuration object built with aidb.summarize_text_config(). Must contain model at minimum. |
Options#
Accepts the same options as aidb.summarize_text (see above). Note
that options is required for the aggregate, not optional.
Returns#
TEXT — the summary for the group.
Usage#
SELECT category,
aidb.summarize_text_aggregate(
text_column,
aidb.summarize_text_config(my_t5_model)::json ORDER BY id
) AS summary
FROM my_table
GROUP BY category;
Parameter defaults quick reference#
Function |
Parameter |
SQL default |
Runtime default |
|---|---|---|---|
summarize_text |
options |
'{}' |
Must include model |
summarize_text_aggregate |
input |
— (required) |
— |
summarize_text_aggregate |
options |
— (required) |
— |
summarize_text_config |
model |
— (required) |
— |
summarize_text_config |
chunk_config |
NULL |
No chunking |
summarize_text_config |
prompt |
NULL |
Standard summarize prompt |
summarize_text_config |
strategy |
NULL |
'append' |
summarize_text_config |
reduction_factor |
NULL |
3 |
summarize_text_config |
inference_config |
NULL |
Provider defaults |
chunk_text_config |
desired_length |
— (required) |
— |
chunk_text_config |
max_length |
NULL |
Same as desired_length |
chunk_text_config |
overlap_length |
NULL |
0 |
chunk_text_config |
strategy |
NULL |
'chars' |