知识库就像一个智能机器人的私人资料库,里面存着它知道的所有信息。当用户提问时,机器人会从这个资料库里快速搜索出最相关的答案,并把找到的所有结果整理成一个清单给你看。
输入
知识库节点的输入参数固定为 Query,表示用户希望在知识库中检索的关键信息,需要引用上游节点的输出参数。输入参数格式为 String,可以引用任何格式的数据。一般情况下,这里引用开始节点的user-input
知识库
支持选择任何格式的知识库,包含文本、表格、图片等
搜索策略保持默认即可
搜索策略:
从知识库中获取知识的检索方式,不同的检索策略可以更有效地找到正确的信息,提高其生成的答案的准确性和可用性。支持的检索策略包括:
-
混合:结合全文检索和语义检索的优势,并对结果进行综合排序召回相关的内容片段。
-
语义:像人类一样去理解词与词、句与句之间的关系。推荐在需要理解语义关联度和跨语言查询的场景使用。例如下面两组句子,第一组的语义关系更强。
-
"狼追小羊"和"豺狼追山羊"
-
"狼追小羊"和"我爱吃炸猪排"
-
-
全文:基于关键词进行全文检索。推荐当查询内容包含以下场景时使用:
-
特定名称或专有名词、术语等,例如比尔盖茨、 特斯拉 Model Y。
-
缩写词,例如 SFT。
-
ID,例如 12s1w1s2 系列。
-
最大召回数量:
从知识库中返回的最大段落数量。数值越大,返回的条目越多。默认召回 5 条检索结果。
最小匹配度:
匹配度就像考试得分:假设标准答案是参考答案(ground-truth),系统检索到的内容与标准答案的相似度就是分数(0-1 分)。设置最低 0.5 分后,就像老师只收录及格以上的答案,低于 0.5 分的回答直接丢进垃圾桶,保证传给 AI 的信息都是靠谱的。
表格SQL查询:
当你给智能体添加了表格类的知识库后,系统就会自动解锁 "智能翻译查询" 功能。比如你问 "上个月华东区销售额前三名",系统会像翻译官一样把你的话转成数据库能听懂的 SQL 指令(类似 SELECT...WHERE...),精准查表算出结果,最后把表格查询的数值结果和常规的文本搜索结果打包发给 AI,双管齐下帮你找到最准确的答案。
查询改写:
在多轮对话中,用户的 Query 和对话的上下文息息相关,仅凭借用户最新一条提问可能无法正确识别用户的真实检索意图。查询改写是指根据对话历史对用户输入的 Query 进行优化或重构,从而更准确地捕捉真实的用户意图,提升信息检索的效率。知识库检索节点默认开启查询改写。
这就好比你和朋友聊天时,对方会自动记住之前的对话内容。比如你先问 "如何做蛋糕",接着问 "那糖要放多少",系统会像贴心的对话搭档,自动把你的问题补全成 "制作蛋糕时糖的用量",确保每次提问都能结合上下文精准搜索知识库,避免出现 "糖是指白糖还是剧情甜度" 这类误解。
例如用户对话的上下文为:
-
问题1:知识库检索节点可以用来做什么?
-
回复1:知识库检索节点可以基于用户输入查询指定的知识库,召回最匹配的信息,并将匹配结果以列表形式返回。
-
问题2:怎么用?
对于问题2,不参考上下文的情况下无法判断用户的真实意图。开启查询改写后,问题2会被改写为“知识库检索节点怎么用?”
注意:开启查询改写后,会调用大模型进行问题改写,使用更多的Tokens,并增加一定的延迟。
结果重排:
结果重排就像图书馆管理员帮你二次筛书:原本系统只是按书名相似度把书堆在桌上(匹配度排序)。但当你开启 "智能整理" 功能后,管理员会快速翻看每本书的内容质量,把真正能解答你问题的那几本精准抽出来放在最上面,避免出现 "书名相关但内容跑题" 的情况。
假设用户查询“如何制作意大利面?” ,首先会从知识库中检索得到以下几个文档片段,其中先按照ABCD先后顺序排列:
-
切片 A:介绍意大利面的历史。
-
切片 B:讨论了不同种类的意大利面和它们的搭配。
-
切片 C:详细描述了制作意大利面的步骤,包括所需材料和烹饪技巧。
-
切片 D:提供了一些意大利面食谱。
在结果重排的过程中,知识库检索节点会分析用户的真实意图,对切片重新排序,使得最相关的内容排在前面。最终的排序可能变为:
-
切片 C:详细描述了制作意大利面的步骤,包括所需材料和烹饪技巧。
-
切片 D:提供了一些意大利面食谱。
-
切片 B:讨论了不同种类的意大利面和它们的搭配。
-
切片 A:介绍意大利面的历史。
仅查看个人文档:
指定查询范围是否仅限于用户的个人文档。默认为关闭状态。
-
开启:在知识库检索节点添加的全部知识库中,用户只能搜索自己通过知识库写入节点写入的文档,不能在开发者和其他人上传的文档中检索内容。
-
关闭:检索范围为知识库节点中添加的全部知识库。
使用
随便询问一个问题,查看能否获取到数据库中的数据
可以看到,在outputList变量中返回了5条数据。
在后续节点中,可直接调用该节点返回的数据,帮助大模型进行解答问题。
知识库检索节点和大模型节点添加知识库有什么区别?
前者是人工指定输入的检索内容,百分百调用
后者是大模型根据query决定是否调用知识库、以及使用什么内容去检索知识库
文章转载自:https://gwl1554ppni.feishu.cn/wiki/G8YSwgk7MiW7rbkxCLcc35VjnPf
欢迎关注公众号【AI技术开发者】