69 lines
2.4 KiB
SQL
69 lines
2.4 KiB
SQL
-- ============================================================================
|
|
-- Embedding Generation Functions
|
|
-- ============================================================================
|
|
|
|
-- Generate embedding from text using default or specified model
|
|
CREATE OR REPLACE FUNCTION ruvector_embed(text text, model_name text DEFAULT 'all-MiniLM-L6-v2')
|
|
RETURNS real[]
|
|
AS 'MODULE_PATHNAME', 'ruvector_embed_wrapper'
|
|
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
|
|
|
-- Generate embeddings for multiple texts in batch
|
|
CREATE OR REPLACE FUNCTION ruvector_embed_batch(texts text[], model_name text DEFAULT 'all-MiniLM-L6-v2')
|
|
RETURNS real[][]
|
|
AS 'MODULE_PATHNAME', 'ruvector_embed_batch_wrapper'
|
|
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
|
|
|
-- List all available embedding models
|
|
CREATE OR REPLACE FUNCTION ruvector_embedding_models()
|
|
RETURNS TABLE (
|
|
model_name text,
|
|
dimensions integer,
|
|
description text,
|
|
is_loaded boolean
|
|
)
|
|
AS 'MODULE_PATHNAME', 'ruvector_embedding_models_wrapper'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
-- Load embedding model into memory
|
|
CREATE OR REPLACE FUNCTION ruvector_load_model(model_name text)
|
|
RETURNS boolean
|
|
AS 'MODULE_PATHNAME', 'ruvector_load_model_wrapper'
|
|
LANGUAGE C STRICT;
|
|
|
|
-- Unload embedding model from memory
|
|
CREATE OR REPLACE FUNCTION ruvector_unload_model(model_name text)
|
|
RETURNS boolean
|
|
AS 'MODULE_PATHNAME', 'ruvector_unload_model_wrapper'
|
|
LANGUAGE C STRICT;
|
|
|
|
-- Get information about a specific model
|
|
CREATE OR REPLACE FUNCTION ruvector_model_info(model_name text)
|
|
RETURNS jsonb
|
|
AS 'MODULE_PATHNAME', 'ruvector_model_info_wrapper'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
-- Set default embedding model
|
|
CREATE OR REPLACE FUNCTION ruvector_set_default_model(model_name text)
|
|
RETURNS boolean
|
|
AS 'MODULE_PATHNAME', 'ruvector_set_default_model_wrapper'
|
|
LANGUAGE C STRICT;
|
|
|
|
-- Get current default embedding model
|
|
CREATE OR REPLACE FUNCTION ruvector_default_model()
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME', 'ruvector_default_model_wrapper'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
-- Get embedding generation statistics
|
|
CREATE OR REPLACE FUNCTION ruvector_embedding_stats()
|
|
RETURNS jsonb
|
|
AS 'MODULE_PATHNAME', 'ruvector_embedding_stats_wrapper'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
-- Get dimensions for a specific model
|
|
CREATE OR REPLACE FUNCTION ruvector_embedding_dims(model_name text)
|
|
RETURNS integer
|
|
AS 'MODULE_PATHNAME', 'ruvector_embedding_dims_wrapper'
|
|
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|