
## 工作流概述
这个n8n工作流构建了一个多级检索AI代理,能够智能地缩小搜索结果范围。它首先通过文件描述进行筛选,然后检索详细的向量数据,从而提高相关性和答案质量。
## 目标用户
该工作流适合开发人员、AI爱好者和数据工程师,他们正在使用向量存储和大型文档集合,希望通过基于元数据的过滤在深度内容搜索之前增强AI检索的精度。它帮助管理许多文件或文档的用户,旨在减少AI查询中的噪音和输入大小限制。
## 解决的问题
直接对大量文档块执行向量搜索可能会降低AI输入质量并引入噪音。该工作流实现了一个两阶段检索过程:首先搜索文件描述以筛选相关文件,然后仅在这些文件中运行向量搜索以获取精确结果。这减少了不相关数据,提高了答案准确性,并在处理分成多个部分的数十或数百个文件时优化性能。
## 工作流功能
### 多级检索
**文件描述搜索**:调用Supabase RPC函数来查找其描述(元数据)与用户查询最匹配的文件。它根据相似性分数过滤并限制相关文件的数量。
**文档块检索**:使用检索到的文件ID执行第二个RPC调用,仅在这些文件中获取详细的向量片段,再次通过相似性阈值进行过滤。
### OpenAI集成
过滤后的文档块和相关的元数据(如文件名和URL)被传递给OpenAI消息节点,其中包括系统指令,指导AI利用知识库和链接资源提供全面的响应。
### 自定义代码函数
两个代码节点与Supabase存储过程match_files和match_documents交互,执行语义搜索,具有默认向量过滤器中不可用的多行元数据过滤功能。
### 辅助流程和SQL设置
模板和SQL脚本准备数据库表和函数,并使用OpenAI从文件描述摘要生成嵌入的附加流程。
## N8N工作流设置
### 准备工作
– 创建或验证具有向量存储功能的Supabase账户
– 使用提供的SQL脚本设置必要的数据库表和RPC函数(match_files和match_documents)
– 替换n8n节点中的所有凭据以连接到您的Supabase和OpenAI账户
– 可选地在单独的辅助工作流中上传文档文件并生成其向量嵌入和描述摘要
### 主要工作流逻辑
**代码函数节点#1**:接收用户查询并调用match_files RPC,通过搜索具有向量相似性阈值和文件限制的文件描述来检索文件ID。
**代码函数节点#2**:获取过滤后的文件ID,调用match_documents RPC,仅从这些文件中获取向量文档块,具有额外的相似性过滤和计数限制。
**OpenAI消息节点**:结合获取的文档片段、其元数据(文件URL、相似性分数)和系统提示,生成精确的AI驱动答案,引用文档。
这种多层检索过程通过首先智能地将向量搜索范围限制为相关文件,然后限制为特定文档块,从而提高了搜索相关性和AI上下文理解,优化了用户查询结果。

评论(0)