Supabase
先决条件
为Supabase注册一个账户
点击 新建项目

输入必填字段
字段名
描述
Name
要创建的项目名称。(例如Flowise)
数据库 密码
您PostgreSQL数据库的密码

点击 创建新项目,并等待项目完成设置
点击 SQL编辑器

点击 新建查询

复制并粘贴下面的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) 作为相似度
来自文件
其中元数据 @> 过滤器
按文档排序。嵌入 <=> 查询嵌入
限制匹配次数;
结束;
$$;

设置
点击 项目设置

获取您的项目URL和API密钥

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

文档可以与文档加载器([document-loaders/])类别下的任何节点连接
嵌入可以与嵌入类别下的任何节点连接
过滤
假设您有多个不同的文档被更新,每个文档在元数据键{source}下都指定了一个唯一的值

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

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