Spaces:
Running
Running
| /* Run this in the supabase SQL editor to setup the vector extension, | |
| create a table to store vector embeddings and related data, | |
| and a function to query that table */ | |
| create extension vector | |
| with schema extensions; | |
| create table chunks ( | |
| id uuid not null default gen_random_uuid (), | |
| content text null, | |
| vector extensions.vector null, | |
| url text null, | |
| date_updated timestamp default now(), | |
| constraint data_chunks primary key (id) | |
| ); | |
| create or replace function get_relevant_chunks( | |
| query_vector vector(1536), | |
| match_threshold float, | |
| match_count int | |
| ) | |
| returns table ( | |
| id uuid, | |
| content text, | |
| url text, | |
| date_updated timestamp, | |
| similarity float | |
| ) | |
| language sql stable | |
| as $$ | |
| select | |
| id, | |
| content, | |
| url, | |
| date_updated, | |
| 1 - (chunks.vector <=> query_vector) as similarity | |
| from chunks | |
| where 1 - (chunks.vector <=> query_vector) > match_threshold | |
| order by similarity desc | |
| limit match_count; | |
| $$; |