Skip to content

知识库节点

该节点是BetterYeah AI 平台「知识库」模块在Flow中的使用形式,用于在Flow中操作「知识库」,根据查询内容从知识库中找到相关内容。在阅读本文档前,需要你先对「知识库」有一个大概得了解, 如果你还不了解知识库,先点击这里快速熟悉「知识库」。

查询知识库

为什么要查询知识库

知识库模块在BetterYeah AI平台中扮演着重要的角色,它充当着一个存储大量静态数据的自然语言库,如同一本书。通过查询知识库,用户能够以简短的语言快速从其中海量的数据中,根据语义找到相关的段落。这一功能特别适用于需要从大量信息中迅速提取关键内容的场景。


利用知识库的查询功能,可以极大地提高信息检索的效率和准确性。例如,如果您想要了解“公司的年假有几天?”这类具体的信息,只需在员工手册的知识库中进行查询,系统即可根据语义匹配,快速定位到与年假相关的段落。这个过程不仅节约了时间,还避免了不必要的资源消耗。

如何查询知识库

第一步,选择一个知识库,如果你还没有知识库,需要在知识库模块创建一个知识库。

第二步(可选),选择或者输入标签,标签是为了更精准的索引到知识库中打了相同标签的一批文档,当然,你也可以跳过选择标签的步骤,如果跳过,默认知识库会从知识库中所有的文档中找符合语义的结果。

第三步,选择查询方式,平台提供混合查询、关键词查询、语义查询三种方式,你可以根据你的场景选择最适合你的查询方式,想要了解这三个查询方式的区别,请跳转命中测试

第三步,输入查询关键词,以检索知识库中的内容。关键词可以是单个词汇或完整句子。选择合适的查询关键词应依据您的业务场景。通常情况下,查询关键词作为一个变量,源自于之前流程节点的输出,例如用户在「开始节点」的输入。

第四步(可选),选择最大查询结果数,即查出来的相关段落数

第五步(可选),选择是否使用结果重排算法,结果重排可以参考结果重排

第六步(可选),选择知识库的输出方式,文本输出,还是以JSON输出。

文本格式输出和JSON输出的区别

以一个例子说明。假设我们有一个知识库,里面其中一个文件叫《员工手册》,我们查询的内容是“如果迟到了怎么办?”

如果是文本格式输出,那么知识库的输出结果如下示例:

plaintext
「文件名」员工手册
「段落内容」:
首次迟到: 第一次迟到将接受口头警告,并记录在员工档案中。员工需向直接上级解释迟到的原因。
二次迟到: 第二次迟到将接受书面警告,并要求员工提供书面解释。可能会安排与直接上级的会议,讨论避免未来迟到的措施。
三次及以上迟到: 第三次及以上迟到将视为严重违反工作纪律,将根据情况考虑进一步的纪律处分,包括但不限于工资扣除、暂停工作、或终止雇佣。

如果是以JSON格式输出,那么结果如下示例:

json
[
   {
       "vector_id": "72a573c1bbd92b5969198cc9e82f7ac6",
       "file_id": 2113,
       "file_name": "员工手册",
       "mimetype": "application/pdf",
       "chunk_id": 0,
       "content": "首次迟到: 第一次迟到将接受口头警告,并记录在员工档案中。员工需向直接上级解释迟到的原因。
二次迟到: 第二次迟到将接受书面警告,并要求员工提供书面解释。可能会安排与直接上级的会议,讨论避免未来迟到的措施。
三次及以上迟到: 第三次及以上迟到将视为严重违反工作纪律,将根据情况考虑进一步的纪律处分,包括但不限于工资扣除、暂停工作、或终止雇佣。"
       "relevance_score": 0.8833,
   }
]

返回字段解释:

字段名描述
vector_id段落向量id,知识库内置字段
file_id文件id,如果想通过API操作知识库,可以用到这个id
file_name文件名
mimetype文件类型
content段落内容
relevance_score相关性得分,得分越高代表结果和问题越匹配

可以看出,文本格式输出比较简单,比较利于LLM节点理解。JSON格式的输出内容比较丰富,可以给开发者更多的发挥和自定义空间。

插入知识库

通过在Flow中使用插入知识库节点,可以方便地将内容写入到知识库中。例如,在一个Flow中,借助LLM处理客服人员与客户之间的对话记录,并将对话总结后的信息持久化保存至知识库,以此方式构建基于历史对话记录的知识库。这一场景下,使用插入知识库功能便成为必选项。


操作插入知识库功能极为便捷,仅需选择目标知识库及其中的特定文件,即可实现内容的插入。