Supabase

先决条件

  1. Supabase注册一个账户

  2. 点击 新建项目

  1. 输入必填字段

字段名
描述

Name

要创建的项目名称。(例如Flowise)

数据库 密码

您PostgreSQL数据库的密码

  1. 点击 创建新项目,并等待项目完成设置

  2. 点击 SQL编辑器

  1. 点击 新建查询

  1. 复制并粘贴下面的SQL查询,然后通过Ctrl + Enter或点击运行来运行它。注意表名和函数名。

  • 表名documents

  • 查询名称match_documents


/// 译文内容:
---
根据上面的信息,执行如下指令:
您想翻译的文本可能是错误或缺失的,因为“plsql”并不是一个标准的英文句子或单词。如果您有更具体的文本需要翻译,请提供正确的文本。如果“plsql”是您输入的错误,请忽略此消息并继续
-- 启用 pgvector 扩展以处理嵌入向量
创建扩展向量;

-- 创建一个表格来存储你的文档
创建表documents(
  id bigserial 主键,
  内容文本,-- 对应于 Document.pageContent
  metadata jsonb,-- 对应于Document.metadata
  嵌入向量(1536)-- 1536适用于OpenAI嵌入,如有需要请更改
);

-- 创建一个用于搜索文档的函数
创建函数 match_documents (
  查询嵌入向量(1536),
  match_count int 默认为 null,
  过滤 JSONB 字段,默认值为 '{}'
) 返回表 (
  id bigint,
  内容文本,
  元数据 jsonb,
  相似度浮点数
)
语言 plpgsql
作为$$
#变量冲突 使用列
开始
  返回查询
选择
    id,
    内容,
    元数据,
    1 - (documents.embedding <=> query_embedding) 作为相似度
  来自文件
  其中元数据 @> 筛选器
  按文档排序。嵌入 <=> 查询嵌入
  限制匹配次数;
结束;
$$;

在某些情况下,您可能会使用Record Manager来跟踪更新和插入操作,并防止数据重复。由于Record Manager为每个嵌入操作生成一个随机的UUID,因此您需要将id列的实体类型更改为文本:


/// 译文内容:
---
根据上面的信息,执行如下指令:
缺失译文,请检查输入
-- 启用 pgvector 扩展以处理嵌入向量
创建扩展向量;

-- 创建一个表格来存储你的文档
创建表documents(
  id 文本类型,主键,-- 更改为 TEXT 类型
  内容文本,
  元数据 jsonb,
  嵌入向量(1536)
);

-- 创建一个用于搜索文档的函数
创建函数 match_documents (
  查询嵌入向量(1536),
  match_count int 默认值为 null,
  过滤 JSONB 字段,默认值为 '{}'
) 返回表 (
  id 文本,-- 更改为文本
  内容文本,
  元数据 jsonb,
  相似度浮点数
)
语言 plpgsql
作为$$
#变量冲突 使用列
开始
  返回查询
选择
    id,
    内容,
    元数据,
    1 - (documents.embedding <=> query_embedding) 作为相似度
  来自文件
  其中元数据 @> 过滤器
  按文档排序。嵌入 <=> 查询嵌入
  限制匹配次数;
结束;
$$;

设置

  1. 点击 项目设置

  1. 获取您的项目URL和API密钥

  1. 将每个详细信息(API Key、URL、表名、查询名称)复制并粘贴到Supabase节点中

  1. 文档可以与文档加载器([document-loaders/])类别下的任何节点连接

  2. 嵌入可以与嵌入类别下的任何节点连接

过滤

假设您有多个不同的文档被更新,每个文档在元数据键{source}下都指定了一个唯一的值

您可以使用元数据过滤来查询特定的元数据:

用户界面

API


/// 译文内容:
---
根据上面的信息,执行如下指令:
缺失译文,请检查输入
"overrideConfig": {
    "supabaseMetadataFilter":{
        "source": "henry"
    }
}

资源

Last updated