Spaces:
Sleeping
Sleeping
File size: 1,207 Bytes
c4cd8f0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
-- First, make sure you have the vector extension enabled
-- First, make sure you have the vector extension enabled
CREATE EXTENSION IF NOT EXISTS vector;
-- Create the documents table if it doesn't exist
CREATE TABLE IF NOT EXISTS documents (
id SERIAL PRIMARY KEY,
content TEXT,
metadata JSONB,
embedding VECTOR(768)
);
-- Create the similarity search function that LangChain expects
CREATE OR REPLACE FUNCTION match_documents_langchain_2(
query_embedding VECTOR(768),
match_threshold FLOAT DEFAULT 0.6,
match_count INT DEFAULT 10
)
RETURNS TABLE (
id BIGINT,
content TEXT,
metadata JSONB,
similarity FLOAT
)
LANGUAGE SQL STABLE
AS $$
SELECT
documents.id,
documents.content,
documents.metadata,
1 - (documents.embedding <=> query_embedding) AS similarity
FROM documents
WHERE 1 - (documents.embedding <=> query_embedding) > match_threshold
ORDER BY documents.embedding <=> query_embedding
LIMIT match_count;
$$;
-- Create an index on the embedding column for better performance
CREATE INDEX IF NOT EXISTS documents_embedding_idx
ON documents USING ivfflat (embedding vector_cosine_ops)
WITH (lists = 100); |