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

评论(0)