知识库
知识库是存储专业领域的知识和数据的集合,用于提高智能体在特定场景下的响应准确性和专业性。例如,一个医疗知识库可以提供详细的药物使用指导,确保用户获得正确且及时的健康建议。
AppBuilder支持应用添加知识库,大模型将基于你上传的知识文档回答问题,你可以通过引用知识库文件实现知识问答的功能。
点击知识库旁边的点击『加号』会弹出添加知识库弹窗,点击『添加』可添加已创建的知识库,点击『创建知识库』可以跳转至『我的知识库』页面并创建一个新的知识库,一个应用最多可调用5个知识库。知识库相关内容可查看文档[个人空间-知识库]
选择知识库后,你可以点击【高级配置】按钮,支持将知识库和网页搜索搭配使用、调整知识库检索策略,知识库检索包括全文检索、语义检索、混合检索三种策略,以及设置召回数量和匹配分等。
Appbuilder 支持两种百度搜索和知识库的组合方式:
1、知识库(不开启网页搜索增强)+百度搜索组件: 调用思考模型思考使用百度搜索、知识库还是闲聊进行答复,更加灵活。
2、知识库+网页搜索增强(知识库高级配置): 直接调用百度搜索和知识库进行回答,可省略思考步骤,获得更快的响应速度。
如下图所示:
当开启了网页搜索增强时,可进一步配置网页搜索和知识库知识的搜索顺序,支持三种检索顺序,解释如下:
网页搜索增强 | 含义 | 适用场景 |
---|---|---|
融合检索 | 开启后将同时使用知识库内容和百度搜索的知识源回答问题,并由大模型总结输出,提高内容的丰富度 | 适合复杂问题的分析,如市场分析、学术研究等 |
知识库优先 | 优先使用知识库检索答案,如果知识库没有相关答案,再使用百度搜索进行回答,提高内容的置信度 | 适用于需要高可信度和高准确度的回答,如法律咨询、医学诊断等 |
网页搜索优先 | 优先使用网页搜索查询答案,知识库回答作为补充 | 适用于对信息时效性、多样化要求高的场景 |
知识检索配置策略解释如下:
知识检索 | 含义 | 适用场景 |
---|---|---|
全文检索 | 使用倒排索引策略进行检索召回,推荐在需要对关键词精准匹配的场景下使用 | 适合在关键词精准匹配的场景适用,如对技术术语的查询 |
语义检索 | 返回与查询Query含义相匹配的内容,而不是与查询字面意思相匹配的内容。推荐在需要对上下文相关性和意图相关性的场景下使用 | 适合在关键词模糊的场景使用,如客户服务; 也适合在复杂查询的场景使用,如学术研究、内容推荐等 |
混合检索 | 使用倒排索引和语义检索两种策略进行召回,推荐在需要对句子理解和语义关联性的场景下使用,综合效果更优 | 适用于绝大多数场景 |
召回数量及匹配分解释如下:
知识检索 | 含义 | 适用场景 |
---|---|---|
召回数量 | 代表从知识库中召回与输入Query匹配的片段个数,数量越大召回的片段越多 | 如果查询非常明确,召回数量可以适当减少 |
匹配分 | 在检索过程中用来计算输入Query和知识库原文片段的相似度,召回的片段中高于或等于匹配分的片段将会被最终输入大模型,你可以根据自己的需求设置匹配分 | 适当提高匹配分能够输出和query 关联更加紧密的答案,调低匹配分则能够召回更多答案,最终大模型回答的灵活性更高 |
在知识库高级配置处,可开启"拓展上下文信息"。
"拓展上下文信息"采用了 Small-to-Big 策略,可以提升 RAG(检索增强生成)的能力。该功能开启后,会拓展命中切片的上下文,并将包含上下文信息的大切片提供给大模型,使大模型能获取更多相关信息,从而更好地解答用户提出的问题。
tips:你可以进入目标知识库-查看-命中测试中,测试在不同检索策略、召回数量、匹配分、拓展上下文信息配置下,同一query的检索结果,然后根据这些检索结果和匹配分,修改应用配置页—知识库高级配置,使知识库能检索出更符合预期的结果。
需注意:
- 开启"拓展上下文信息"功能后,会增加召回切片内容,导致模型输入token数量增加、降低模型响应速度、增加成本消耗。
- 建议配合大上下文的模型组合使用,避免token超出模型输入范围。 开启"拓展上下文信息"后,在回答来源处点击切片时,不仅展示命中的切片,也会展示命中切片的上下文切片。
知识库组件描述 当用户使用知识库组件时,可自定义每个应用的知识库描述,用来设置路由到知识库的场景和用法,建议在知识库和其他组件同时使用时使用,如搭配数据库、记忆、其他组件,可以准确说明知识库的内容范围,支持使用模版填写,撰写后可改善多工具调用场景下思考模型选择知识库的准确率。
注:当只选择知识库一个工具时,会跳过思考选择工具的环节,所有query默认从知识库中检索,故不需要填写知识库描述。
备注:什么是倒排索引 倒排索引也常被称为反向索引,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。下面用一个简单的例子来介绍倒排索引: 假设我们有以下两篇短文本: a. 文档1: "apple banana" b. 文档2: "banana cherry" 我们的目标是创建一个倒排索引,使得我们可以快速找到包含特定词的文档。首先,我们提取所有独特的词,并创建一个词汇表: • apple • banana • cherry 然后,我们创建倒排索引,将每个词映射到包含它的文档编号列表: • apple: [1] • banana: [1, 2] • cherry: [2] 这个倒排索引告诉我们: • "apple" 只出现在文档1中。 • "banana" 出现在文档1和文档2中。 • "cherry" 只出现在文档2中。 现在,如果我们想找到包含 "banana" 的所有文档,我们只需要查看倒排索引中的 >"banana" 条目,它会告诉我们文档1和文档2都包含这个词。