微信扫码
添加专属顾问
我要投稿
探索Dify平台高效实现RAG与Milvus向量库集成的核心技术方案,助你构建智能检索系统。 核心内容: 1. 向量模型选型与部署方案(bge-m3等模型在A10服务器上的配置) 2. Dify与Milvus的实时数据写入机制及知识库元数据过滤原理 3. RAG检索优化策略与LLM协同中的Prompt组装关键技术
在 Nvidia A10 等机器上,基于 Ollama、xinference 等中间件部署向量模型,目前向量模型的选型暂定为 bge-m3、bge-reranker-v2-m3;然后在 dify 内引入即可。
基于配置的向量模型,通过特定的中间件 SDK 或是标准的 OpenAPI,Dify 将文档数据实时写入到 Milvus 中存储,并用于后续的检索。
用于引入 RAG。在 Dify 知识库模块配置好文档的检索等参数后,直接在如下的知识库中引入即可。
元数据过滤。基础维度的数据过滤,默认的元数据在已导入的知识库中配置,如此知识索引节点便可引入元数据。
知识库的配置,直接决定了 Miluv 向量的存储,即配置好了知识库,Dify 通过预先配置的模型提供商中的 Text Embedding 模型与 Reranker 模型,以及相应的 OpenAPI 或中间件特定 SDK 接口(譬如 Mivlus 有自己的 client sdk)。
如上导入完文档后,Dify 就会生成知识库,同时会将文档转换为 Embedding,并写入到 Milvus 的 Collection 内。
默认是单数据库多 Collection。与传统关系型数据库的对应关系是,Milvus 库->Mysql 库,Milvus Collection-> Mysql Table。
而在 Dify 的知识库内不断的导入文件,则是往当前的 Collection 内写入数据。
什么是 LLM 的协同,这个协同严格来说,是指 Prompt 的组装;即 RAG 检索的内容与预设的 prompt 组装成最终的 Prompt,作为提示词输入到 LLM 中返回响应,但这里就存在两个问题:
对于第一个问题,解决方案如下:
在 RAG 的配置中,根据检索得分(score)过滤不相关的内容,在 LLM 中,只有 RAG 检索到的高分文档,才引入到 LLM 中作为上下文。
但有个不足,需要处理好预设 Prompt 在 RAG 上下文为空时的提示词。
总的来说,通过 score 限定只有强相关的文档才会被引入到预设 Prompt 中,避免对 LLM 不必要的影响与误导。
第二个问题的场景最典型的是:
query:你是谁?
RAG 文档检索:我是 xxxx。
基于 RAG 的 Prompt 可能就会被 RAG 文档的内容误导,即使此时 RAG 的文档得分很高,其实对于这类问题,应该是由 LLM 自己来回答,而不用每次调用 RAG 检索一遍文档。
因此第二个问题最核心的点是在:避免每次都调用 RAG。而这也是传统 RAG 的弊端。
解决方案一般是如下两个:
示例如下:
query:"我觉得活着没意思,我想跳桥。"。
RAG 检索(embedding):
RAG 检索(embedding+reranker):
即便 RAG 检索引入了语义相关性,但受限于 query,还是有很大的阻碍。
解决方案
对于这种方案,不仅仅是增强了向量检索的准确度,而且在减少向量调用率上也是非常有用的,即定义某些类别的 query 不需要查询 RAG,而是直接走 LLM。
RAG 的引入不是一蹴而就,虽然期间会有很多的问题,如上也阐述了一些;但归根来说,只要将文档数据标记好,并整理好每段的内容长度,再导入向量中。同时改写 query,使得文档的命中率更高,同时避免无谓的 RAG 的调用。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-07-17
基于Dify 知识库的实验demo:从0到1构建智能商品分类系统
2025-07-16
Dify智能体开发:RAG 技术深度解析与知识库实战指南
2025-07-16
爆改RAG!Relevant Segment Extraction(RSE)让你的AI检索“有头有尾”,不再碎片化
2025-07-15
从知识检索到自主决策:传统RAG与Agent搜索的深度对比
2025-07-15
RAG彻底爆了!一文读懂其架构演进及核心要点
2025-07-15
长上下文在大语言模型检索增强生成(RAG)中的作用:全面综述
2025-07-15
重新思考RAG的相关性:相似≠相关
2025-07-14
亲测成功!小白用AI工具0代码搭建RAG问答系统全过程揭秘
2025-04-19
2025-05-08
2025-04-23
2025-06-06
2025-05-30
2025-05-19
2025-06-05
2025-05-10
2025-04-28
2025-06-05
2025-07-09
2025-07-04
2025-07-01
2025-07-01
2025-07-01
2025-07-01
2025-06-30
2025-06-29