微信扫码
添加专属顾问
“ 最近发现,有不少小伙伴对dify工作流的知识检索节点使用存在不少的疑惑。今天讲讲我对这个节点的使用心得体会。”
我们先看看知识检索节点的官方定义:
从知识库中检索与用户问题相关的文本内容,可作为下游 LLM 节点的上下文来使用。
顾名思义,这个节点的设计初衷,是希望开发者搭配LLM节点使用的。但是在工作流中,LLM节点虽然能直接解析知识检索的输出变量(数组类型)。但是我们一般在实际应用中,不会直接这么做,而是将知识检索节点的内容提取出来,转换成string格式。
这样做有两个好处:
提取的知识库内容,不仅可以被LLM节点使用,同时,还可以被其他节点使用,尤其是当知识检索节点的输出结果存在多个时,这种容许二次加工后的结果,更加有利于LLM使用。
知识检索节点输出的变量是一个数组(result列表类型),这个数组里面不仅仅有检索出来的知识库内容,还有关于本次检索的相关数据,如:多个segment相关参数、score分数、多个块相关参数等。如果对知识检索的top k参数设置大于1,那么这个输出变量中会出现多条记录。当你在工作流中,需要这些参数时,你可以提取出来直接用,而不是再次检索知识库。这就带来一个好处,你的工作流如果较为复杂,并且有类似这种实际需求,可拓展性一下子就体现出来了。
下面我提供两种方法供大家参考:
第一种:当你的top k设置为1的时候,你除了直接接入LLM以外的办法;
第二种:当你的当你的top k设置大于1的时候,使用代码节点提取。
01
—
当top k参数设置为1时
top k参数解释:
用于筛选与用户问题相似度最高的文本片段。系统同时会根据选用模型上下文窗口大小动态调整分段数量。
请注意,无论你使用哪种检索方式,这个参数都是必须要设置的。
这种情况下,你除了直接接入一个LLM阶段读取以外,其实我建议你不要这么干,虽然LLM节点能读取它的输出数组内容,但是它终究不是string类型,很难被其他大多数节点读取,如;回复节点、参数提取节点、问题分类器节点等。因为这些节点要读取string类型的变量。
所以,我推荐大家在知识检索节点后面接入一个模板转换节点。把数组类型转换成string类型,这样就可以被其他大多数节点也能同样读取,以防哪一天,你的工作流不用大改动,直接调用相应参数就行。
先说好,这是一个不严谨的懒人做法,其实从严谨性、可阅读性上来说,这不是最佳处理办法。
这里要解释一下,当设置大于1时,如果粗暴处理,其实连带着大量的无用内容一并发给大模型了,可能会引起大模型的错误,毕竟大量垃圾内容可能会干扰大模型的正确理解。
那么,你就需要看看第二种情况了。
02
—
当top k参数>=1时
这个时候,知识检索节点输出的是一个多result列表中就会包含多个字典集合。当然,你设置为1的时候,只有一个哈。
那么在这种情况下,想要满足可扩展性,我们就需要通过代码节点做一次加工处理,本文举例,将多个结果提取并拼接到一起交付给大模型再次优化。
我们先来看看,如果top k参数>=1时,知识检索节点返回的结果长什么样,以下是一个参考示例:
{"result": [{"metadata": {"_source": "knowledge","position": 1,"dataset_id": "0918f9d2-78d4-4176-9c04-16d6e04bb146","dataset_name": "中华人民共和国促进科技成果转化法","document_id": "2fc7b8bf-e34a-41fb-b15c-dd302b978680","document_name": "中华人民共和国促进科技成果转化法","document_data_source_type": "upload_file","segment_id": "0ef1967e-a5d3-4327-a970-af5582581121","retriever_from": "workflow","score": 0.29208900795375264,"segment_hit_count": 1,"segment_word_count": 62,"segment_position": 36,"segment_index_node_hash": "621fde014993438b8a28a3622803c7d1e9f68931efb0cd70fe6566fe2016c3f3"},"title": "中华人民共和国促进科技成果转化法","content": "中华人民共和国促进科技成果转化法第三十六条 国家鼓励保险机构开发符合科技成果转化特点的保险品种,为科技成果转化提供保险服务。"},{"metadata": {"_source": "knowledge","position": 1,"dataset_id": "0918f9d2-78d4-4176-9c04-16d6e04bb146","dataset_name": "中华人民共和国促进科技成果转化法","document_id": "2fc7b8bf-e34a-41fb-b15c-dd302b978680","document_name": "中华人民共和国促进科技成果转化法","document_data_source_type": "upload_file","segment_id": "481b5cbb-d784-4ba1-8cc1-69022e49c455","retriever_from": "workflow","score": 0.25351966026553047,"segment_hit_count": 1,"segment_word_count": 81,"segment_position": 33,"segment_index_node_hash": "9e1529513fa5d7543eeb54467c2fb31be7d889f0f4b8f6194cd75ae3529625a5"},"title": "中华人民共和国促进科技成果转化法","content": "中华人民共和国促进科技成果转化法第三十三条 科技成果转化财政经费,主要用于科技成果转化的引导资金、贷款贴息、补助资金和风险投资以及其他促进科技成果转化的资金用途。"},{"metadata": {"_source": "knowledge","position": 1,"dataset_id": "0918f9d2-78d4-4176-9c04-16d6e04bb146","dataset_name": "中华人民共和国促进科技成果转化法","document_id": "2fc7b8bf-e34a-41fb-b15c-dd302b978680","document_name": "中华人民共和国促进科技成果转化法","document_data_source_type": "upload_file","segment_id": "18d979c2-483b-4770-950d-f36ccbb1450a","retriever_from": "workflow","score": 0.16448095575533164,"segment_hit_count": 1,"segment_word_count": 132,"segment_position": 5,"segment_index_node_hash": "24f64f5657b58cc44a7fb3340a2c0c0f771e7dfb9e02682404bbd3d477ea3770"},"title": "中华人民共和国促进科技成果转化法","content": "中华人民共和国促进科技成果转化法第五条 国务院和地方各级人民政府应当加强科技、财政、投资、税收、人才、产业、金融、政府采购、军民融合等政策协同,为科技成果转化创造良好环境。地方各级人民政府根据本法规定的原则,结合本地实际,可以采取更加有利于促进科技成果转化的措施。"},{"metadata": {"_source": "knowledge","position": 1,"dataset_id": "0918f9d2-78d4-4176-9c04-16d6e04bb146","dataset_name": "中华人民共和国促进科技成果转化法","document_id": "2fc7b8bf-e34a-41fb-b15c-dd302b978680","document_name": "中华人民共和国促进科技成果转化法","document_data_source_type": "upload_file","segment_id": "f5c5e428-c25c-4bec-8d4c-4541d2c7d10d","retriever_from": "workflow","score": 0.16217518876465065,"segment_hit_count": 1,"segment_word_count": 170,"segment_position": 17,"segment_index_node_hash": "1aafff0734ee3b9045e57926cd4f632f5731e487fae8974c62cf1bb77a9c540b"},"title": "中华人民共和国促进科技成果转化法","content": "中华人民共和国促进科技成果转化法第十七条 国家鼓励研究开发机构、高等院校采取转让、许可或者作价投资等方式,向企业或者其他组织转移科技成果。国家设立的研究开发机构、高等院校应当加强对科技成果转化的管理、组织和协调,促进科技成果转化队伍建设,优化科技成果转化流程,通过本单位负责技术转移工作的机构或者委托独立的科技成果转化服务机构开展技术转移。"}]}在这个result列表中,就出现了多个metadata,那么我们想要提取所有metadata中的content内容,并拼接到一起,就需要使用到代码节点了。示例代码如下:
def main(data) -> str:contents = []# 遍历结果并提取每个对象的 content 字段for item in data['result']:contents.append(item['content'])# 将所有内容拼接成一个字符串contentss = "\n".join(contents)return {"result1": contentss}
如上图所示:
这样result1这个变量就是一个string类型的多content拼接结果,我们将这个结果发给大模型,是不是更加简洁准确呢!这个示例仅仅是提取content内容并拼接的,其他字段并未提取,如有需要,参考源码自行修改即可。目的是了解为什么要这么做,这是从工作流设计角度考虑,并不是从编程角度考虑哈。
综上所述,第二种办法,泛化能力更强,准确度更高。毕竟这个流程是需经过了开发者人工校验一遍,本质上是一次极简的“数据清洗”。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-07-03
记忆拓展:独立部署Mem0服务,打通多Agent共享记忆
2026-07-02
Dify:一个初中辍学生,怎么把开源 AI 工具带到硅谷
2026-06-30
Dify记忆能力实战(下):Mem0插件接入,实现跨会话智能记忆
2026-06-30
告别拖拽做工作流:两个Skill让Dify应用全流程自动化
2026-06-27
我用 Dify 1.15.0 搭了个全自动图文生产机,效率直接翻3倍
2026-06-26
Dify 1.15.0解读:difyctl、HITL表单和慢模型轮询,企业AI工程化继续补底座
2026-06-26
时隔一个多月,Dify v1.15.0终于发布了!
2026-06-18
Dify记忆能力实战(上):上下文记忆与会话变量,让AI告别“金鱼脑”
2026-04-18
2026-04-12
2026-05-22
2026-06-11
2026-06-03
2026-06-02
2026-06-15
2026-06-18
2026-06-26
2026-06-26
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。