该工作流实现了一个检索增强生成(RAG)系统,该系统能够:
- 将向量化文档存储在Qdrant中,
- 根据用户输入检索相关内容,
- 使用Google Gemini生成AI回答,
- 自动引用文档来源(来自Google Drive)。
工作流步骤
-
创建Qdrant集合
通过REST API节点在Qdrant中创建新集合,指定向量大小(1536)和余弦相似度。 -
从Google Drive加载文件
工作流列出Google Drive文件夹中的所有文件,将其下载为纯文本,并逐个处理。 -
文本预处理与嵌入
- 文档被分割成块(500字符,重叠50字符)。
- 使用OpenAI嵌入(假设为
text-embedding-3-small
)创建嵌入。 - 每个块附加元数据(文件名和ID)。
-
存储到Qdrant
所有向量及元数据被插入到Qdrant集合中。 -
聊天输入与检索
- 收到聊天消息时,问题被嵌入并与Qdrant匹配。
- 检索前5个相关文档块。
- 使用Gemini模型基于这些来源生成回答。
-
来源聚合与响应
-
文件ID和名称去重。
-
AI回答与引用的文档列表(文件名)结合。
-
最终输出:
AI回答 来源:["文档1", "文档2"]
-
主要优势
- 端到端自动化:从文档摄取到聊天响应生成,全程自动化,无需手动步骤。
- 可扩展知识库:只需将文件添加到Google Drive文件夹即可轻松扩展。
- 可追溯回答:每个回答包含其来源文件,提高透明度和可信度。
- 模块化设计:每个步骤(嵌入、存储、检索、响应)独立且可重用。
- 多供应商AI:结合OpenAI(用于嵌入)和Google Gemini(用于聊天),优化性能和灵活性。
- 安全且可定制:使用API凭证,可配置块大小、集合名称等。
工作原理
-
文档处理与向量化
- 工作流从指定的Google Drive文件夹检索文档。
- 每个文件被下载、分割成块(使用递归文本分割器),并通过OpenAI转换为嵌入。
- 嵌入及元数据(文件ID和名称)存储在Qdrant向量数据库的
negozio-emporio-verde
集合中。
-
查询处理与响应生成
- 当用户提交聊天消息时,工作流:
- 使用OpenAI嵌入查询。
- 从Qdrant检索前5个相关文档块。
- 使用Google Gemini基于检索到的上下文生成响应。
- 从检索到的块中聚合并去重源文件名。
- 最终输出包括AI生成的响应和源文档列表(例如
来源:["FAQ.pdf", "Policy.txt"]
)。
- 当用户提交聊天消息时,工作流:
设置步骤
-
配置Qdrant集合
- 在“创建集合”HTTP节点中替换
QDRANTURL
和COLLECTION
,以初始化Qdrant集合:- 向量大小:
1536
(OpenAI嵌入维度)。 - 距离度量:
余弦
。
- 向量大小:
- 确保“清除集合”节点配置为在需要时重置集合。
- 在“创建集合”HTTP节点中替换
-
Google Drive与OpenAI集成
- 将Google Drive节点链接到目标文件夹(本例中为
Test Negozio
)。 - 验证OpenAI和Google Gemini API凭证在各自节点中正确设置。
- 将Google Drive节点链接到目标文件夹(本例中为
-
元数据与输出定制
- 如果需要其他元数据字段,调整“聚合”和“响应”节点。
- 修改“输出”节点以格式化响应(例如将
来源:{{...}}
改为您喜欢的样式)。
-
测试
- 手动触发工作流以测试文档摄取。
- 使用聊天界面验证响应是否包含准确的来源归属。
注意:部署前将占位符值(如QDRANTURL
)替换为实际端点。