码农之家

专注优质代码开发,为软件行业发展贡献力量

扣子:知识库

        扣子开发平台支持使用扣子官方知识库和火山知识库,两者均支持上传和存储外部知识内容,并提供了多种检索能力。扣子的知识能力可以解决大模型幻觉、专业领域知识不足的问题,提升大模型回复的准确率。本文主要为大家介绍扣子知识库的内容。

知识库介绍

        扣子的知识库功能包含两个能力,一是存储和管理外部数据的能力,二是增强检索的能力。 

数据管理与存储

        扣子支持从多种数据源例如本地文档、在线数据、Notion、飞书文档等渠道上传文本和表格数据。上传后,扣子可将知识内容自动切分为一个个内容片段进行存储,同时支持用户自定义内容分片规则,例如通过分段标识符、字符长度等方式进行内容分割。 

增强检索 

        扣子的知识功能还提供了多种检索方式来对存储的内容片段进行检索,例如使用全文检索通过关键词进行内容片段检索和召回。大模型会根据召回的内容片段生成最终的回复内容。

        为智能体添加知识库,能够提供准确的知识支持,增强大模型回答的可靠性和专业性。知识库有助于智能体减少错误信息的生成,提高对复杂查询的处理能力。扣子知识库分为文本、表格、照片三类知识库,火山知识库分为结构化与非结构化两类知识库。

创建知识库

        登录扣子开发平台后,点击项目开发,创建一个智能体或选择一个已创建的智能体,在编排页面的知识区域,选择扣子知识库或火山知识库,然后单击对应的 “+” 图标,添加要使用的知识库。

        再点击弹出页面右上角的“创建知识库”按钮,然后选择知识库类型、输入知识库名称、选择导入类型,点击完成创建或创建并导入即可。

        创建知识库后,进入知识库中,点击右上角的添加内容即可往知识库中添加内容,知识库内容导入方式因知识库的类型有所区别。文本格式类可以将PDF、TXT、MD、DOC、DOCX格式的本地文件,以及自定义内容、在线网页内容、公众号、Notion页面和数据库、飞书文档导入知识库;表格类可以将Excel或者CSV格式的文档、自定义内容、JSON格式的API内容、飞书表格导入知识库;图片类可以将JPG、JPEG、PNG格式的图片导入到知识库。

扣子知识库召回配置

        在智能体关联要使用的知识库后,可以通过检索和召回配置来解决从哪里查、怎么查、返回几条的问题。召回的内容的完整度和相关度越高,大模型生成的回复内容的准确性和可用性也就越高。 单击知识功能区域中的自动调用选项,打开配置页面,配置内容的召回和搜索策略等。

召回配置

调用方式

        选择是否每轮对话都基于知识库的召回内容来生成回复内容。 

        自动调用:智能体在每一轮对话中都会调用知识库,并使用召回的内容辅助生成回复。 

        按需调用:智能体根据提示词自行判断是否调用知识库,并使用召回内容辅助生成回复。此时,需要在左侧的人设与回复逻辑区域明确写清楚在什么情况下调用哪个知识库进行回复。

搜索策略

        选择如何从知识库中搜索内容片段,不同的检索策略适应于不同的场景。检索到的内容片段的相关性越高,大模型根据召回内容生成的回复的准确性和可用性也越高。 

        混合:结合全文检索和语义检索的优势,并对结果进行综合排序召回相关的内容片段。 

        语义:像人类一样去理解词与词、句与句之间的关系。推荐在需要理解语义关联度和跨语言查询的场景使用。例如下面两组句子,第一组的语义关系就更强。 

            "狼追小羊"和"豺狼追山羊"

            "狼追小羊"和"我爱吃炸猪排"

        全文:基于关键词进行全文检索,推荐当查询内容包含特定名称或专有名词时使用

最大召回数量

        选择从检索结果中返回多少个内容片段给大模型使用。数值越大,返回的内容片段就越多。

最小匹配度

        根据设置的匹配度选取要返回给大模型的内容片段,低于设定匹配度的内容不会被返回,该配置可过滤掉一些低相关度的搜索结果。

查询改写

        在多轮对话中,用户的问题和对话的上下文息息相关,仅凭借用户最新一条提问可能无法正确识别用户的真实检索意图。查询改写是指根据对话历史对用户输入的问题进行优化或重构,从而更准确地捕捉真实的用户意图,提升信息检索的效率。 

            例如用户对话的上下文为: 

            问题 1:知识库检索节点可以用来做什么? 

            回复 1:知识库检索节点可以基于用户输入查询指定的知识库,召回最匹配的信息,并将匹配结果以列表形式返回。 

            问题 2:怎么用? 

            对于问题 2,不参考上下文的情况下无法判断用户的真实意图。开启查询改写后,问题 2 会被改写为知识库检索节点怎么用?。

结果重排

        结果重排是指根据相关性或质量对检索到的文档切片进行重新排序,以提高生成答案的准确性和相关性,适用于追求回答高精度和高相关性的场景,例如智能客服、专业技术答疑等场景。 

        未开启结果重排时,节点输出的是向量检索的结果,根据匹配度从大到小排序; 

        开启结果重排后,系统会将 Embedding 的召回结果交由 Rerank 模型进行质量和相关性判断,对结果重新排序,将与输入问题最相关的文档排在前面。 

        假设用户查询 如何制作意大利面?,首先会从知识库中检索得到以下几个文档片段,其中先按照ABCD先后顺序排列: 

                切片 A:介绍意大利面的历史。 

                切片 B:讨论了不同种类的意大利面和它们的搭配。 

                切片 C:详细描述了制作意大利面的步骤,包括所需材料和烹饪技巧。 

                切片 D:提供了一些意大利面食谱。 

        在结果重排的过程中,知识库检索节点会分析用户的真实意图,对切片重新排序,使得最相关的内容排在前面。最终的排序可能变为: 

                切片 C:详细描述了制作意大利面的步骤,包括所需材料和烹饪技巧。 

                切片 D:提供了一些意大利面食谱。 

                切片 B:讨论了不同种类的意大利面和它们的搭配。 

                切片 A:介绍意大利面的历史。

回复配置

        无召回回复:当知识库没有召回有效切片时的回复话术,支持使用默认回复话术和自定义设置回复话术。

来源配置

        显示来源:将召回的知识库原始切片呈现给用户,并支持查看源文件。默认关闭。

木木子

0 评论数