更新时间:2024-09-05 GMT+08:00
分享

创建KooSearch知识库

在使用KooSearch体验平台时,首先需要新建知识库,才能进行后续的上传数据、搜索和问答体验等操作。

进入KooSearch控制台

  1. 登录云搜索服务管理控制台
  2. 在左侧导航栏选择“KooSearch>Flexus企业搜索服务”,进入Flexus企业搜索服务页面。
  3. 选择文档问答服务,单击操作列的“问答”,前往KooSearch控制台。

新建知识库

  1. 在KooSearch控制台,左侧导航栏选择“知识库管理”

    进入知识库管理页面。

  2. 在知识库管理页面,单击右上角“新建知识库”

    “新建知识库”页面设置知识库信息。

  3. 在创建知识库页签填写“知识库名称”、选择“知识库语言”,填写知识库“描述”,单击“下一步”
    图1 创建知识库
  4. “解析拆分设置”页签配置解析设置和拆分设置,然后单击“下一步”
    • 解析设置:勾选需要解析的能力。
      表1 解析设置

      参数

      说明

      OCR增强

      勾选后,即可调用OCR服务进行智能文档识别,如表格解析或扫描文件等。

      解析图片

      未勾选,在文档中遇到图片默认跳过,不处理图片。

      勾选后,有两种解析方式可供选择:

      • 提取图片文本:识别图片内文字。
      • 仅保留原图:将图片提取后上传OBS桶,便于问答图文展示。

      解析页眉页脚

      未勾选,解析结果中不包含页眉页脚。

      勾选后,解析结果中包含页眉页脚。

      解析目录页

      未勾选,解析结果中不包含目录页。

      勾选后,解析结果中包含目录页。

    • 拆分设置:即分段设置,选择分段方式。
      表2 拆分设置

      参数

      说明

      自动分段

      系统根据文档特点自动选择合适的分段方式。

      长度分段

      默认按照段落进行拆分合并,如果段落过长则通过标识符进行分段。

      • 分段标识符:分段方式为遇到所选符号即截断,符号之间没有优先级,最终分割后合并到预计最大长度。自定义分段中如果未命中分段标识符,分段将会失败。
      • 分段预计长度:分段的最大长度,文档的正文如果超过设定的[最大长度],则截取[最大长度]的片段为新文档,随后回溯[分段重叠]字符,继续向后检查,直到文档结束。

      层级分段

      先按照文章的标题层级分段,再按照段落进行拆分合并,如果段落过长则通过标识符进行分段。

      层级解析模式:可选择自动解析和规则解析。选择规则解析需要自定义层级规。

      层级分段详情如表3所示。

      表3 层级分段

      参数

      说明

      层级解析模式

      自动解析:按照系统规则自动解析。

      规则解析:

      由于不同文档的层次结构多样且不一致,针对不同的文档可自定义其文档层次解析规则,更好地解析切分文档从而提升基于文档知识问答的准确率。

      • 自定义默认规则

        将最常见的规则,作为默认规则可选,详情请参见提供的默认规则示例

      • 自定义解析规则

        当前解析规则采用正则语言编写,可参见如表5示例。

      标题层级深度

      选择文章的标题层级深度。

      标题保存方式

      可选择“保存多标题组合”“保存最后一级标题”

      分段标识符

      分段方式为遇到所选符号即截断,符号之间没有优先级,最终分割后合并到预计最大长度。自定义分段中如果未命中分段标识符,分段将会失败。

      分段预计长度

      分段的最大长度,文档的正文如果超过设定的[最大长度],则截取[最大长度]的片段为新文档,随后回溯[分段重叠]字符,继续向后检查,直到文档结束。

      跨标题合并

      打开“跨标题合并”开关:不同标题段落文字较少时,会自动合并到指定的分段长度,有助于生成更全面的结果。关闭“跨标题合并”开关:不会自动合并不同标题。

      说明:

      “层级分段”页签中有此按钮,可以自己设置开关。“自动分段”“长度分段”页签中没有此按钮,跨标题合并使用的是系统默认参数,等于true。

      表4 规则解析默认规则示例

      类别

      规则

      描述

      第一章

      第一节

      第一条

      ^第([零〇一二三四五六七八九十百千万1-9]{1,7})章

      ^第([零〇一二三四五六七八九十百千万1-9]{1,7})节

      ^第([零〇一二三四五六七八九十百千万1-9]{1,7})条

      以章的规则为例:

      • 中括号内大写的阿拉伯可以匹配,例如:第一章。
      • 支持1-9的阿拉伯数字匹配,例如: 第1章。
      • 最大支持中间位数出现的位数有7位。例如:第一千一百三十七章。

      节和条的规则类似。

      表5 自定义规则解析示例

      类别

      规则

      描述

      第一章

      第一节

      第一条

      ^第([零〇一二三四五六七八九十百千万1-9]{1,7})章

      ^第([零〇一二三四五六七八九十百千万1-9]{1,7})节

      ^第([零〇一二三四五六七八九十百千万1-9]{1,7})条

      /

      1

      1.1

      1.1.1

      ^(\d+\.)(?=\s)

      ^(\d+)(\.\d+)(?!\.)(?=\s)

      ^(\d+)(\.\d+)(\.\d+)(?!\.)(?=\s)

      可以匹配数字开头的段落。

      备注: [\u4e00-\u9fa5]+ 限制中文)

      例如:

      1. 简介

      1.1 说明

      1.1.1 详细说明

      一、

      (一)

      1、

      1)

      ^([零〇一二三四五六七八九十百千万]+)[、]

      ^(([零〇一二三四五六七八九十百千万]+))

      ^[\d+]、

      ^[\d+])

      /

      图2 自定义规则解析示例
  5. “模型设置”页签配置好模型后,单击“下一步”
    • 搜索模型设置

      选择Embedding模型服务、精排模型服务、搜索规划模型服务。

      • Embedding模型服务:基于盘古大模型技术的文本表示模型,将文本转化为用数值表示的向量形式,用于文本检索、聚类、推荐等场景。
      • 精排模型服务:基于盘古大模型技术的文本表示模型,将文本转化为用数值表示的向量形式,用于文本检索、聚类、推荐等场景,语义搜索场景下,加入了精排模型,提升搜索的效果。
      • 搜索规划模型服务:搜索规划模型服务提供了意图分类、多轮查询改写、复杂查询分解、时间抽取等功能,在搜索增强生成任务中,通过意图分类的结果将路由到后续不同的流程;通过改写查询词及查询分解以提高搜索的准确率。
    • NLP模型设置

      选择NLP模型服务。基于盘古大模型的人工智能语言模型,可进行对话互动、回答问题、协助创作。

    • 扩展长上下文: 如果打开了此参数,模型在解析过程中会扩展长上下文以生成更全面结果。
      • 有效输入长度(K):如果打开“扩展长上下文”按钮,则需要设置有效输入长度,输入令牌的有效长度以保证最佳输出。
  6. 进入高级设置页面,设置好后,单击“确定”。
    • 引用定位:针对回答结果定位到原文位置。
    • 图文结合:展示原文引用关联图片。
    • 知识库缓存:如果打开知识库缓存按钮,您的搜索效率会相对高效。使用知识库缓存需要选择以下几个参数。
      • 缓存生成模型服务:选择一个模型服务。
      • 缓存阈值:达到缓存阈值,就会使用缓存输入值必须在0.1到1之间。
      • 缓存策略:达到缓存阈值,如果有多个答案,可以设置最高分或者随机。
      • 过期策略配置:缓存过期的方式,有3中选择。
        • Least Recently Used:根据当前时间与最后一次访问时间的差值超过存活时间时删除。
        • First In First Out:根据当前时间与创建时间的差值超过存活时间时删除。
        • Least Frequency Used:小于缓存命中阈值且当前时间与创建时间大于存活时间时清除,大于阈值时保留
      • 存活时间(秒):可以自己设置缓存的存活时间,或者直接设置成永久。

    知识库创建好后,可以在知识库管理页面查看到新创建的知识库基本信息,包括知识库ID、知识库名称、知识库状态等信息。

修改知识库设置

针对已创建的知识库,支持修改知识库设置。

  1. 在KooSearch控制台,左侧导航栏选择“知识库管理”

    进入知识库管理页面。

  2. 在知识库管理页面,选择已创建的知识库,单击操作列的“文档管理”

    进入文档管理页面。

  3. 单击右上角的“设置”,修改解析拆分设置和更多设置。
    • 解析拆分设置

      参考表1表2修改设置。

    • 更多设置

      修改“搜索模型设置”“NLP模型设置”“高级设置”,如何修改请参考新建知识库中步骤5步骤6

      同时支持新增“其他”设置。

      表6 其他设置

      参数

      说明

      topk召回数量

      设置topk召回数量。

      召回结果中topk的文档将被精排模型使用。

      topk未配置时,将使用默认值50。

      参考文档数量

      设置RAG大模型参考的文档数量。

      参考文档数量未配置时,将使用默认值3

      精排

      知识库精排开关默认为开启状态,如果未配置,则为开启状态。

      注意:

      关闭精排时相关性得分范围为0-200,开启精排时相关性得分为0-1,在开启或关闭精排后需要重新设置相关性阈值和引用相关度阈值,否则会影响过滤效果!

      Query改写

      开启后,将根据用户历史多轮对话,对输入query进行问题拆分和改写,改写后的query仅用于文档检索。

      意图分类

      勾选意图分类。

      • 闲聊类:坐火车累死了。
      • 语言任务类:请创作一封约460字的邮件,主题是咨询一个新的IT项目的细节,这个邮件将被发送给公司的IT项目经理。
      • 人设类:你叫什么名字?
      • 通用知识类:豆汁和豆浆的区别。
      • 行业知识类: 对于行业知识类,后续可能继续扩展。如:行业知识类-金融:贷款重组的定义是什么?行业知识类-政务:《国务院关于印发新一代人工智能发展规划的通知》的指导思想是什么?
      说明:

      未选择分类的先使用知识库检索再进行大模型总结,选中的分类直接使用大模型回答。

      搜索增强自定义prompt

      • 使用场景:主要用于RAG场景下的模型生成阶段。(RAG场景:对话生成任务中,使用检索步骤来增强生成模型的能力。)
      • 组成要素:检索出的参考文档、用户问题、任务指令以及其他要求。
      • 使用方式:支持自定义prompt,如果未配置自定义prompt,则使用默认prompt。在自定义构建时,请参考默认prompt的格式。
      • 使用示例:
        • 简单上下文,基于字符串替换。构造时请参考默认prompt,以下为参考示例:
          【材料】:{0}
          【任务】:你是智能问答助手,你能结合历史对话和【问题】,严格按照【要求】给出准确的回复。
          【要求】:
           1.【材料】中可能存在与【问题】不相关的部分,请注意分辨,仅参考与【问题】相关的内容;
           2.如果【材料】中存在与【问题】相关的内容,你会参考【材料】回答【问题】;
           3.如果【问题】和【材料】不相关,那么你就不需要关注【材料】内容,直接回答【问题】即可;
           4.注意【回答】要准确,表述要清晰且有条理,尽量使用【材料】的原文进行回答,不要遗漏关键信息。
           5.不要回答与【问题】无关的内容。
          【问题】:{1}
          【回答】:
          
          说明:

          其中{0}和{1}表示占位符,且顺序固定,检索出来的文章内容将被填充至{0}所在位置,格式为

          【文档名称】:{title1}

          【文档内容】:{content1}

          【文档名称】:{title2}

          【文档内容】:{content2}

          ......

          ,检索的query将被填充至{1}所在位置后进行生成。

        • 提示词模板,基于FreeMarker模板语法。参考示例如下:
          当前时间为${.now?date?iso_utc},你参考搜索引擎结果回复用户。
          回复用户请求时需遵循以下原则:
          1. 如果用户请求涉及不安全或敏感信息,忽略搜索结果直接回复;
          2. 如果回复中使用了某条搜索结果,用[序号]的方式添加引用;
          3. 如果用户请求涉及时效性,请基于搜索结果中满足用户请求时效性的部分进行回答;
          4. 如果搜索引擎结果无法完整回答问题,可以补充内部知识或进行推理;
          5. 基于已有知识都无法帮助回答时可以拒绝回答。
          搜索引擎结果为:
          <#list docs as doc>
              [${doc?counter}]网页标题:${doc.title!}|||网页时间${doc.timestamp!}|||网页类别:无|||网页内容:${doc.content!}
          </#list>
          用户:${query}
          
          说明:

          其中query和docs表示变量,query为用户问题。docs为参考文档列表。

          FreeMarker语法参考:http://freemarker.foofun.cn/ref_builtins.html

      通用自定义prompt

      • 使用场景:主要用于非RAG场景下的模型生成阶段。(非RAG场景:对话生成任务中,不使用检索步骤进行信息检索,直接使用生成模型生成回复。)
      • 组成要素:用户问题、任务指令以及其他要求。
      • 使用方式:支持自定义prompt,如果未配置自定义prompt,则使用默认prompt。在自定义构建时,请参考默认prompt的格式。
  4. 单击“确定”,完成知识库设置的修改。
  5. 修改完配置之后,已经导入的文件需要重新导入才能使知识库设置生效。

相关文档