Files
amcs/migrations/008_update_match_thoughts.sql
Hein cebef3a07c feat(embeddings): add embedding model support and related changes
* Introduced EmbeddingModel method in Client and Provider interfaces
* Updated InsertThought and SearchThoughts methods to handle embedding models
* Created embeddings table and updated match_thoughts function for model filtering
* Removed embedding column from thoughts table
* Adjusted permissions for new embeddings table
2026-03-25 16:25:41 +02:00

35 lines
874 B
PL/PgSQL

create or replace function match_thoughts(
query_embedding vector,
match_threshold float default 0.7,
match_count int default 10,
filter jsonb default '{}'::jsonb,
embedding_model text default ''
)
returns table (
id uuid,
content text,
metadata jsonb,
similarity float,
created_at timestamptz
)
language plpgsql
as $$
begin
return query
select
t.id,
t.content,
t.metadata,
1 - (e.embedding <=> query_embedding) as similarity,
t.created_at
from thoughts t
join embeddings e on e.thought_id = t.id
where 1 - (e.embedding <=> query_embedding) > match_threshold
and t.archived_at is null
and (embedding_model = '' or e.model = embedding_model)
and (filter = '{}'::jsonb or t.metadata @> filter)
order by e.embedding <=> query_embedding
limit match_count;
end;
$$;