This commit is contained in:
hailin 2025-05-29 01:57:44 +08:00
parent 0280845a3a
commit 03daddd2fa
1 changed files with 40 additions and 4 deletions

View File

@ -119,8 +119,37 @@ begin
end; end;
$$; $$;
-- create function match_file_items_bge_m3 (
-- query_embedding vector(1024),
-- match_count int DEFAULT null,
-- file_ids UUID[] DEFAULT null
-- ) returns table (
-- id UUID,
-- file_id UUID,
-- content TEXT,
-- tokens INT,
-- similarity float
-- )
-- language plpgsql
-- as $$
-- #variable_conflict use_column
-- begin
-- return query
-- select
-- id,
-- file_id,
-- content,
-- tokens,
-- 1 - (file_items.bge_m3_embedding <=> query_embedding) as similarity
-- from file_items
-- where (file_id = ANY(file_ids))
-- order by file_items.bge_m3_embedding <=> query_embedding
-- limit match_count;
-- end;
-- $$;
create function match_file_items_bge_m3 ( create function match_file_items_bge_m3 (
query_embedding vector(1024), query_embedding "extensions"."vector"(1024),
match_count int DEFAULT null, match_count int DEFAULT null,
file_ids UUID[] DEFAULT null file_ids UUID[] DEFAULT null
) returns table ( ) returns table (
@ -140,10 +169,17 @@ begin
file_id, file_id,
content, content,
tokens, tokens,
1 - (file_items.bge_m3_embedding <=> query_embedding) as similarity 1 - (
file_items.bge_m3_embedding::"extensions"."vector"(1024)
<=>
query_embedding::"extensions"."vector"(1024)
) as similarity
from file_items from file_items
where (file_id = ANY(file_ids)) where file_id = ANY(file_ids)
order by file_items.bge_m3_embedding <=> query_embedding order by
file_items.bge_m3_embedding::"extensions"."vector"(1024)
<=>
query_embedding::"extensions"."vector"(1024)
limit match_count; limit match_count;
end; end;
$$; $$;