视频指南
我准备了一个详细指南,解释如何设置和实施这个场景,使您能够使用n8n与存储在Supabase中的文档进行对话。
适合人群
这个工作流程非常适合研究人员、分析师、企业主或任何管理大量文档的人。对于那些需要从存储在Supabase中的文本密集型文件中快速检索上下文信息,而不需要Google Drive等额外服务的人来说尤其有益。
解决的问题
从大型文档库中手动检索和分析特定信息既耗时又低效。这个工作流程通过向量化文档并启用AI驱动的交互来自动化这一过程,使得从上传的文件中查询和检索基于上下文的信息变得容易。
工作流程功能
该工作流程将Supabase与AI驱动的聊天机器人集成,以处理、存储和查询文本和PDF文件。步骤包括:
- 获取和比较文件以避免重复处理。
- 处理文件下载并根据文件类型提取内容。
- 将文档转换为向量化数据以进行上下文信息检索。
- 从Supabase向量存储中存储和查询向量化数据。
- 文件提取和处理:自动化处理多种文件格式(如PDF、文本文件),并提取文档内容。
- 向量化嵌入创建:为处理后的数据生成嵌入,以支持AI驱动的交互。
- 动态数据查询:允许用户使用聊天机器人以对话方式查询其文档库。
设置
N8N工作流程
-
从Supabase获取文件列表:
- 使用Supabase从指定的存储桶中检索存储的文件列表。
- 添加逻辑以管理Supabase返回的空文件夹占位符,避免错误处理。
-
比较和过滤文件:
- 汇总从存储中检索的文件,并将其与Supabase
files
表中的现有列表进行比较。 - 排除重复项并跳过占位符文件,确保仅处理未处理的文件。
- 汇总从存储中检索的文件,并将其与Supabase
-
处理文件下载:
- 使用详细的存储配置下载新文件,支持公共/私有访问。
- 调整存储设置和GET请求以匹配您的Supabase设置。
-
文件类型处理:
- 使用Switch节点针对特定文件类型(如PDF或文本文件)。
- 使用相关工具处理内容:
- 对于PDF,提取嵌入内容。
- 对于文本文件,直接处理文本数据。
-
内容分块:
- 使用Text Splitter节点将大文本数据分解为较小的块。
- 定义块大小(默认:500个标记)和重叠以保留块之间的必要上下文。
-
向量嵌入创建:
- 使用OpenAI的嵌入工具为处理后的内容生成向量化嵌入。
- 确保包含元数据(如文件ID)以便轻松检索数据。
-
存储向量化数据:
- 将向量化信息保存到专用的Supabase向量存储中。
- 使用Supabase提供的默认模式和表以简化设置。
-
AI聊天机器人集成:
- 添加聊天机器人节点以处理用户输入并检索相关文档块。
- 使用文件ID等元数据进行有针对性的查询,尤其是在涉及多个文档时。
测试
- 将示例文件上传到您的Supabase存储桶。
- 验证文件是否成功处理并存储在向量存储中。
- 使用聊天机器人询问有关文档的简单对话问题(例如,“第1章关于罗马帝国说了什么?”)。
- 测试检索结果的准确性和上下文相关性。