N8N混合RAG:上手教程与模板

N8N混合RAG:上手教程与模板

Hybrid RAG 精要

搞定“混合RAG”

让你的AI助手既懂你意思,又能找准关键词

核心关键点,白话讲

传统RAG (语义搜索)

  • 干啥的用“密集向量”给文档打上“意思”指纹。
  • 咋用的问题也变指纹,找意思最像的文档。
  • 优点能理解上下文,模糊搜索也行。
  • 缺点有时不够精确,会返回不相关型号。

词法搜索 (关键词)

  • 干啥的用“稀疏向量”给文档里的词编上号。
  • 咋用的问题里的词也编号,找一模一样的。
  • 优点精确!指哪打哪。
  • 缺点不懂变通,必须词完全对上。

混合RAG (Hybrid RAG)

  • 干啥的上面两种方法结合起来。
  • 咋用的既用密集向量理解意思,又用稀疏向量找准关键词。
  • 目标两全其美,结果又相关又精确!

可执行的落地项 (怎么一步步搞定)

主要用 n8n 这个自动化工具,对接 Supabase, Pinecone, Qdrant 等向量数据库来搭建。

通用流程框架 (n8n里)

  1. 文档准备: 从Google Drive等地方拿到文档,提取文本。
  2. 数据分块 (Chunking): 把长文本切成小块,注意设置重叠部分,防止上下文丢失。
  3. 向量生成 (Embedding):
    • 密集向量 (意思):用 OpenAI 等模型生成。
    • 稀疏向量 (关键词):根据数据库不同,用其内置功能或外部模型 (如SPLADE) 生成。
  4. 数据存储: 把文本块、两种向量、元数据存进向量数据库。
  5. 查询处理: 用户提问时,也生成两种向量,发给数据库。
  6. 结果整合与生成: 用数据库返回的文档块当上下文,让大模型 (如GPT) 生成最终答案。

针对不同数据库的落地要点

Supabase 最简单

  1. 在Supabase项目里启用 vector 插件。
  2. 用SQL创建表、索引和混合搜索函数。
  3. 设置一个Edge Function来处理查询请求。
  4. 在n8n里连接Supabase,上传文档,并通过HTTP节点调用Edge Function查询。

Pinecone 中等复杂度

  1. 在Pinecone里创建索引,指定好向量维度。
  2. 在n8n里,用代码或节点实现文本分块。
  3. 调用Pinecone的API,分别生成密集和稀疏向量。
  4. 按Pinecone要求的格式,把数据上传(upsert)到索引。
  5. 查询时,同样生成两种向量再调用查询API。

Qdrant 最复杂

  1. 创建Qdrant集群,然后通过API请求创建集合(collection)。
  2. 在n8n里,调用OpenAI API生成密集向量。
  3. 调用Hugging Face上的模型 (如SPLADE) API生成稀疏向量。
  4. 按Qdrant格式组织数据并上传。
视频作者在查询步骤遇到错误,这儿有个待解决的坑。

通用注意事项

  • 准备好所有需要的API密钥 (OpenAI, 向量数据库等)。
  • 确保你用的Embedding模型维度和数据库里设置的维度一致。
  • 混合RAG本身不解决上下文断裂问题,可能需结合其他技术。
  • 多看官方文档,它是你最好的帮手。
总结一句话:想让AI问答更牛,就让它同时学会“理解大概意思”和“抓住关键词”,然后选个合适的数据库(Supabase最省事)存起来用。
>
Back to blog

Leave a comment