AI inference functions#
AIDB provides a set of SQL functions for performing AI inference directly in queries. These functions let you encode data into vector representations, generate text with language models, and control inference behavior — without setting up a pipeline.
aidb.encode_text()#
Encodes a single text string into a vector using a registered embedding model.
SELECT aidb.encode_text(
input => What is pgvector?,
options => {"model": "my_embedder"}
);
__OUTPUT__
encode_text
- -------------------------------------------------------------
[0.021,-0.043,0.117, ...]
(1 row)
For the full parameter reference, see Models reference .
aidb.encode_text_batch()#
Encodes multiple text strings into vectors in a single batched request.
More efficient than calling encode_text() in a loop when processing
many inputs.
SELECT * FROM aidb.encode_text_batch(
my_model_name,
ARRAY[What is pgvector?, How does RAG work?, Explain embeddings.]
);
__OUTPUT__
encode_text_batch
- ------------------------
[0.021,-0.043,0.117,...]
[0.008, 0.091,-0.034,...]
[0.055,-0.012, 0.076,...]
(3 rows)
For the full parameter reference, see Models reference .
aidb.encode_image()#
Encodes a single image into a vector using a registered multimodal embedding model (for example, a CLIP model).
SELECT aidb.encode_image(
my_model_name,
pg_read_binary_file(/path/to/image.png)::BYTEA
);
__OUTPUT__
encode_image
- -------------------------------------------------------------
[-0.012, 0.084, 0.031, ...]
(1 row)
For the full parameter reference, see Models reference .
aidb.decode_text()#
Generates text from a language model (LLM) given a prompt. This is the core function for LLM inference in AIDB.
SELECT aidb.decode_text(
model_name => my_model_name,
input => Explain what a knowledge base is in two sentences.,
inference_config => NULL
);
__OUTPUT__
decode_text
- -------------------------------------------------------------------------------------------
A knowledge base is a structured repository of information used to answer queries or ...
(1 row)
To control generation behavior, pass an inference_config object in
options:
SELECT aidb.decode_text(
model_name => my_model_name,
input => Summarize the following text: ...,
inference_config => aidb.inference_config(
system_prompt => You are a concise technical writer.,
temperature => 0.2,
max_tokens => 256
)
);
For the full parameter reference, see Models reference .
aidb.decode_text_batch()#
Generates text responses for multiple prompts in a single batched request.
SELECT * FROM aidb.decode_text_batch(
model_name => my_model_name,
input => ARRAY[
What is a vector database?,
What is retrieval-augmented generation?
]
);
__OUTPUT__
id | value
- ---+----------------------------------------------------------
0 | A vector database stores high-dimensional vectors ...
1 | Retrieval-augmented generation (RAG) combines a ...
(2 rows)
For the full parameter reference, see Models reference .
aidb.inference_config()#
Builds an inference configuration object to control language model
generation behavior. Pass the result as the "inference_config" key
inside the options JSONB of decode_text() ,
decode_text_batch() , or summarize_text() .
SELECT aidb.decode_text(
input => Write a haiku about PostgreSQL.,
options => jsonb_build_object(
model, my_llm,
inference_config, aidb.inference_config(
temperature => 0.9,
max_tokens => 64,
seed => 42
)
)
);
For the full parameter reference, see Models reference .
!!!Note To use these functions as steps inside a pipeline, see Pipeline steps .