
N8N混合RAG:上手教程与模板
Share
搞定“混合RAG”
让你的AI助手既懂你意思,又能找准关键词
核心关键点,白话讲
传统RAG (语义搜索)
- 干啥的用“密集向量”给文档打上“意思”指纹。
- 咋用的问题也变指纹,找意思最像的文档。
- 优点能理解上下文,模糊搜索也行。
- 缺点有时不够精确,会返回不相关型号。
词法搜索 (关键词)
- 干啥的用“稀疏向量”给文档里的词编上号。
- 咋用的问题里的词也编号,找一模一样的。
- 优点精确!指哪打哪。
- 缺点不懂变通,必须词完全对上。
混合RAG (Hybrid RAG)
- 干啥的上面两种方法结合起来。
- 咋用的既用密集向量理解意思,又用稀疏向量找准关键词。
- 目标两全其美,结果又相关又精确!
可执行的落地项 (怎么一步步搞定)
主要用 n8n 这个自动化工具,对接 Supabase, Pinecone, Qdrant 等向量数据库来搭建。
通用流程框架 (n8n里)
- 文档准备: 从Google Drive等地方拿到文档,提取文本。
- 数据分块 (Chunking): 把长文本切成小块,注意设置重叠部分,防止上下文丢失。
-
向量生成 (Embedding):
- 密集向量 (意思):用 OpenAI 等模型生成。
- 稀疏向量 (关键词):根据数据库不同,用其内置功能或外部模型 (如SPLADE) 生成。
- 数据存储: 把文本块、两种向量、元数据存进向量数据库。
- 查询处理: 用户提问时,也生成两种向量,发给数据库。
- 结果整合与生成: 用数据库返回的文档块当上下文,让大模型 (如GPT) 生成最终答案。
针对不同数据库的落地要点
Supabase 最简单
- 在Supabase项目里启用 vector 插件。
- 用SQL创建表、索引和混合搜索函数。
- 设置一个Edge Function来处理查询请求。
- 在n8n里连接Supabase,上传文档,并通过HTTP节点调用Edge Function查询。
Pinecone 中等复杂度
- 在Pinecone里创建索引,指定好向量维度。
- 在n8n里,用代码或节点实现文本分块。
- 调用Pinecone的API,分别生成密集和稀疏向量。
- 按Pinecone要求的格式,把数据上传(upsert)到索引。
- 查询时,同样生成两种向量再调用查询API。
Qdrant 最复杂
- 创建Qdrant集群,然后通过API请求创建集合(collection)。
- 在n8n里,调用OpenAI API生成密集向量。
- 调用Hugging Face上的模型 (如SPLADE) API生成稀疏向量。
- 按Qdrant格式组织数据并上传。
视频作者在查询步骤遇到错误,这儿有个待解决的坑。
通用注意事项
- 准备好所有需要的API密钥 (OpenAI, 向量数据库等)。
- 确保你用的Embedding模型维度和数据库里设置的维度一致。
- 混合RAG本身不解决上下文断裂问题,可能需结合其他技术。
- 多看官方文档,它是你最好的帮手。
总结一句话:想让AI问答更牛,就让它同时学会“理解大概意思”和“抓住关键词”,然后选个合适的数据库(Supabase最省事)存起来用。