* Serve LLM instructions at `/llm` * Include markdown content for memory instructions * Update README with LLM integration details * Add tests for LLM instructions handler * Modify database migrations to use GUIDs for thoughts and projects
35 lines
878 B
PL/PgSQL
35 lines
878 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.guid,
|
|
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.guid
|
|
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;
|
|
$$;
|