Supabase

Prerequisite

  1. Register an account for Supabase

  2. Click New project

  1. Input required fields

Field NameDescription

Name

name of the project to be created. (e.g. Flowise)

Database Password

password to your postgres database

  1. Click Create new project and wait for the project to finish setting up

  2. Click SQL Editor

  1. Click New query

  1. Copy and Paste the below SQL query and run it by Ctrl + Enter or click RUN. Take note of the table name and function name.

  • Table name: documents

  • Query name: match_documents

-- Enable the pgvector extension to work with embedding vectors
create extension vector;

-- Create a table to store your documents
create table documents (
  id text primary key,
  content text, -- corresponds to Document.pageContent
  metadata jsonb, -- corresponds to Document.metadata
  embedding vector(1536) -- 1536 works for OpenAI embeddings, change if needed
);

-- Create a function to search for documents
create function match_documents (
  query_embedding vector(1536),
  match_count int DEFAULT null,
  filter jsonb DEFAULT '{}'
) returns table (
  id text,
  content text,
  metadata jsonb,
  similarity float
)
language plpgsql
as $$
#variable_conflict use_column
begin
  return query
  select
    id,
    content,
    metadata,
    1 - (documents.embedding <=> query_embedding) as similarity
  from documents
  where metadata @> filter
  order by documents.embedding <=> query_embedding
  limit match_count;
end;
$$;

Setup

  1. Click Project Settings

  1. Get your Project URL & API Key

  1. Copy and Paste each details (API Key, URL, Table Name, Query Name) into Supabase node

  1. Document can be connected with any node under Document Loader category

  2. Embeddings can be connected with any node under Embeddings category

Filtering

Let's say you have different documents upserted, each specified with a unique value under the metadata key {source}

You can use metadata filtering to query specific metadata:

UI

API

"overrideConfig": {
    "supabaseMetadataFilter": {
        "source": "henry"
    }
}

Resources

Last updated