知识库

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

大模型缺乏私有知识,且通用知识更新滞后。业界通常采用检索增强生成(RAG)技术,根据用户输入从外部信息源检索相关信息,然后将检索到的内容整合到用户输入中,从而帮助大模型生成更准确的回答。知识库功能作为阿里云百炼的RAG能力,能有效补充私有知识并提供最新信息。

无专属知识库的应用

在没有专属知识库时,大模型无法准确回答特定领域的问题。

无

有专属知识库的应用

引入专有知识库后,大模型就能准确回答特定领域的问题。

有

支持的模型

以下模型可使用知识库。配置通义千问使用知识库教程

预置模型(阿里云百炼支持的标准模型)

自定义模型(在阿里云百炼调优后的模型)

  • 通义千问-QwQ/Long/Max/Plus/Turbo

  • 通义千问VL-Max/Plus

  • 通义千问-开源版(Qwen3、Qwen2.5、Qwen2等)

  • 第三方文本生成模型(DeepSeek-R1、DeepSeek-V3、abab6.5s、Llama3.1、Yi-Large等)

指基于以下模型调优后的自定义模型。
  • 通义千问-Plus/Turbo

  • 通义千问VL-Max/Plus

  • 通义千问-开源版(Qwen3、Qwen2.5、Qwen2等)

上述列表可能随时更新。请以在应用管理页面创建应用时实际可选的模型为准。

工作原理

通过知识库,大模型能够对您的私有数据或文件进行语义检索,从中找出语义相同或相近的结果,即使关键词匹配度较低甚至为零。

更多知识库工作原理等详细信息,请参见阿里云大模型ACA课程的检索增强生成

快速开始

本节介绍如何零代码构建一个能回答特定领域问题(关于“阿里云百炼手机”)的大模型问答应用。

1. 构建知识库

  1. 进入知识库页面,点击创建知识库。填写知识库名称,其他设置可保持默认,点击下一步

  2. 选择默认类目,上传阿里云百炼系列手机产品介绍.docx文件。点击下一步,然后点击导入完成

2. 集成到业务应用

知识库创建后,即可将其与具体的阿里云百炼应用(须与知识库在同一业务空间下)或外部应用关联,处理检索请求。

集成到智能体应用

  1. 进入应用管理页面,找到目标智能体应用,并点击卡片上的配置。随后,为应用选择一个模型。

    image

  2. 点击页面上文档右侧的+按钮,添加在上一步中构建好的知识库。相似度阈值和权重可保持默认。

    (可选)相似度阈值:筛选检索结果

    知识库采用语义检索,能在给定的私有数据或文件中找出与查询意图相关但关键词可能完全不同的文本。

    例如,用户查询: 哪款阿里云手机适合拍照?

    然而实际答案(通义Vivid 7...)并没有包含用户查询中的任何关键词。

    下表中的关键词相似度基于Jaccard计算, 语义相似度基于text-embedding-v4模型计算的Cosine相似度

    召回文本

    关键词相似度

    语义相似度

    通义Vivid 7:智能摄影新体验

    0

    0.43

    阿里云百炼Ace Ultra:游戏玩家之选

    0.17

    0.32

    阿里云百炼Flex Fold+:折叠屏新纪元

    0.25

    0.24

    相似度阈值:只有语义相似度得分高于此值的文本才会被召回。若此值设置得过高,将导致知识库丢弃所有相关的文本。

    (可选)权重:干预多知识库召回顺序

    当智能体应用同时关联多个知识库时,可按信息源的重要性/等级为每个知识库分配权重。在多路召回时,若多个知识库中都有相关文本切片,同等条件下系统将优先返回权重更高的知识库中的文本切片

    原理介绍:系统首先计算用户问题与各个知识库中内容的相关度,筛选出最相关的文本切片。接着,将这些文本切片的相似度分数与对应知识库的权重相乘。经加权重排后,最终提供给大模型回答参考(加权后得分越高,越可能被采纳)。
    image

    注意:当前权重设置仅在同类型知识库内部生效。例如:文档类知识库的权重设置仅影响该类知识库的排序,而数据、图片类知识库的权重设置独立于文档类知识库。

  3. 在页面右侧的输入框中发起提问,大模型将使用构建的知识库进行回答。

    例如:“请你帮我挑选一款拍照效果最好的阿里云百炼手机,价格在3000元以内。”

集成到工作流应用

  1. 进入应用管理页面,找到目标工作流应用,并点击卡片上的配置。随后,将一个知识库节点拖入画布,并将其连接在开始节点之后。

  2. 配置知识库节点:

    1. 输入:在变量名content右侧的下拉列表中选择内置变量 > query

    2. 选择知识库:选择在上一步中构建好的知识库。

    3. 设置TopK(可选):它决定了返回给下游节点(通常是大模型节点)的知识“数量”。

      增大该值通常会提升大模型回答的准确性,但也会相应增加大模型的输入Token消耗。
  3. 将一个大模型节点拖入画布,并将其连接在知识库节点之后,结束节点之前。

  4. 配置大模型节点:

    1. 模型配置列表中,为节点选择一个模型。

    2. 提示词中,输入让大模型使用知识库的指令。

      image

      需输入“/”以插入result变量(表示知识库检索返回的结果)。
  5. 配置结束节点:输入/,随后选择大模型1 > result,输出大模型返回的结果。

  6. 点击页面右上角的测试,随后在页面右侧的输入框中发起提问,大模型将使用构建的知识库进行回答。

    例如:“请你帮我挑选一款拍照效果最好的阿里云百炼手机,价格在3000元以内。”

集成到外部应用

除了在阿里云百炼构建应用,知识库的检索能力还可作为一项独立的RAG服务,通过阿里云百炼SDK快速接入到外部AI应用中。

具体集成方案等详细信息,请参见知识库API指南的检索知识库章节。

3. 优化知识库效果(可选)

在问答过程中,如遇到知识召回不完整或内容不准确的问题,请参考知识库效果优化

操作指南

进入知识库页面,可查看和管理当前业务空间下的所有知识库。

知识库ID:将鼠标悬浮于知识库旁image图标上即可显示当前知识库ID。

创建知识库

  1. 进入知识库页面,点击创建知识库

  2. 根据应用场景,选择合适的知识库类型(单一知识库无法同时支持多个类型)。创建后,知识库类型不可更改。

    • 文档(检索场景)

      • 适用场景:

      • 数据源接入:支持本地上传文件,或从阿里云对象存储OSS导入

        创建说明(文档)

        1. 选择数据:为知识库指定数据来源(含文件或内容)。数据源内容将导入知识库,用于后续检索。支持本地上传云端导入(选择现有类目或文件)两种方式。

          • 本地上传:直接从您的电脑上传文件。展开下方折叠面板了解如何选择解析方式。

            数据解析设置说明

            请根据实际需求配置解析策略,如不确定建议保持默认设置。有关文档智能解析大模型文档解析电子文档解析的详细说明,请参阅文档理解

            • 电子文档解析:不支持解析文件中的插图与图表。

            • 文档智能解析:对于文件中的插图,解析器会识别并提取图中的文本,并生成文本摘要。这些摘要将与文件中其它非图片内容一起被切分并转换为向量,参与知识库的检索。

            • 大模型文档解析:使用通义千问VL模型的智能体应用支持用户对文件中插图和图表的内容进行提问。如需识别和理解文件中的插图与图表,请选择大模型文档解析

            • Qwen VL解析:仅支持解析图片格式。可自主选择通义千问VL模型,并通过传入Prompt指定模型需要识别的版面、元素及内容,其余功能与大模型文档解析一致。

            image

            image

          • 云端导入:从阿里云百炼应用数据或对象存储OSS导入已有文件。操作说明详见数据导入

        2. 索引配置:定义导入数据的处理和存储方式,直接影响检索效果。

          Meta信息抽取

          metadata(元数据)是与非结构化数据相关的一系列附加属性,这些属性以key-value键值对的形式集成到文本切片中。

          作用:元数据为文本切片提供了重要的上下文信息,可显著提升知识库检索的准确性。例如,某知识库包含了上千个产品介绍文件,且文件名称为产品名称。当在知识库中检索“A产品的功能概述”时,如果所有文件的正文内容都包含“功能概述”,但均没有提到“A产品”,那么知识库可能会召回大量与原始查询无关的文本切片。若将产品名称作为元数据附加到该知识库的所有文本切片上,知识库就能精准地过滤出与“A产品”相关的且包含“功能概述”的文本切片,从而提高检索的准确性,同时减少模型的输入Token消耗。
          用法:通过API调用应用时,可在请求参数metadata_filter中指定metadata。应用在检索知识库时,会先根据metadata筛选相关文件。
          注意:知识库创建后,无法再配置metadata抽取

          配置metadata抽取说明

          下方示例图中该文件(它所有的文本切片)的元数据包含5个自定义属性:date(文件中出现的所有年份)、reference(文件中出现的所有参考文献)、filename(文件的名称)、keywords(文件中出现的关键词)以及author(文件的作者信息)。

          image

          开启metadata抽取,然后单击meta信息设置为该知识库中的所有文件附加统一或个性化的元数据。在切分时,每个文件的元数据都会集成到各自的文本切片中。下图是上方示例使用的meta信息模板:

          image

          新建Meta信息模板说明

          取值方法说明:

          • 常量:为知识库中的所有文件附加一个固定的属性。

            如上方示例所示,如果知识库中所有文件的作者相同,可统一设置一个字段名为author的常量。
          • 变量:为知识库中的每个文件附加一个可变属性。目前支持的属性包括file_namecat_name。选择file_name时,阿里云百炼会将文件的名称附加到其元数据中,如上方示例所示。选择cat_name时,阿里云百炼会把文件所在类目的名称附加到文件的元数据中。

          • 大模型:系统将依据设定的实体描述规则,对知识库中每个文件的文本内容进行匹配。系统会自动识别并提取文件中的相关信息,然后将这些信息作为属性附加到文件的元数据中。

            如上方示例的meta信息模板所示,如需提取每个文件中所有出现过的年份信息作为文件的属性,可以设置一个名为date的大模型字段,实体描述配置如下:

            image

          • 正则:系统将根据设置的正则表达式,对知识库中每个文件的文本内容进行匹配。符合该表达式的内容将被提取,并作为属性添加到文件的元数据中。

            如上方示例的meta信息模板所示,如需提取每个文件中所有出现过的参考资料,并且假设参考资料规律为:以“《”开头、以“》”结尾,则可以设置一个名为reference的正则字段,正则表达式配置如下:

            image

          • 关键词搜索:系统会在每个文件中查找预设的关键词,并将找到的关键词作为属性添加至该文件的元数据中。

            例如,在上述示例的meta信息模板中,我们预设的关键词为:

            image

            但由于该文件中仅出现了“融资、产业、绿色、资本”这四个关键词,因此系统只提取了这四个关键词作为该文件keywords属性的值。

          是否参与检索:开启后,元数据字段和值将和文本切片的内容一同参与知识库检索;不开启时,仅文本切片的内容参与检索,元数据字段和值不参与。

          是否参与模型回复:开启后,元数据字段和值将和文本切片的内容一同参与大模型的回答生成过程;不开启时,仅文本切片的内容参与大模型的回答生成过程,元数据字段和值不参与。

          Excel文件表头拼装

          推荐仅在导入文件均为XLSX、XLS格式且含表头时开启,否则无需开启。

          开启后,知识库会将所有XLSX、XLS格式文件的首行数据视为表头,并自动拼接到每个文本切片中(数据行),避免大模型误将表头视为普通数据行来处理。

          切片方式

          选择智能切分(推荐)自定义切分

          作用:知识库会将文件切分成文本切片,并将这些文本切片通过Embedding模型转换为向量。随后文本切片和向量将以键值对的形式存入向量数据库中。知识库创建后,可查看或编辑每一个文本切片的具体内容(文字和图片)。
          注意:知识库创建后,无法再更改文档切分chunk。不合适的切分策略可能会降低检索和召回效果。
          • 智能切分:系统默认的切分策略,经评测对于多数文件可获得最佳的检索效果。

            最大分段长度:即每个文本切片的字符数上限。超过该长度时,文本很可能会被截断。
            分段重叠长度:相邻文本切片的重叠字符数。建议设置为文本切片最大分段长度的10%到25%,以保留文本切片之间语义的相关性,有利于提高多文本切片召回的召回质量。请注意,该参数的值必须小于最大分段长度,否则将导致文档切分chunk异常。
          • 自定义切分:如果智能切分无法正常切割,可对智能切分的部分策略进行调整。

            配置自定义切分说明

            配置自定义切分

            使用自定义切分时,知识库会先依据选定的分句标识符将文件拆分为若干段落,然后再根据这些段落创建文本切片。在拆分和切分的过程中,知识库会尽量保证每个部分的语义完整,减少不必要的拆分和切分,同时尽量满足设定的分段预估长度分段重叠长度要求。

            • 分段预估长度:即每个文本切片的字符数上限,超出该长度时将强制截断文本。

            • 分段重叠长度:相邻文本切片的重叠字符数。建议设置为文本切片预估长度的10%到25%,以保留文本切片之间语义的相关性,有利于提高多文本切片召回的召回质量。请注意,该参数的值必须小于分段预估长度,否则会导致文档切分chunk异常。

            • 分句标识符依据选定的规则将文件拆分为若干段落,支持自定义分句标识符(此时按照正则切分)。

              分句标识符

              说明及示例

              按长度切分

              适合对 Token 数量有严格要求的场景,比如使用上下文长度较小的模型时。

              示例文本:

              百炼知识库提供多种文件处理方式。您可以根据需求选择最合适的方法。

              可能的切分结果(分段预估长度=20):

              • 文本切片1:“百炼知识库提供多种文件处理方式。您可以根”

              • 文本切片2:“据需求选择最合适的方法。”

              按页切分

              适合每页传达独立主题的文件,要求不同页面的内容不会混杂在同一文本切片中。

              示例markdown文本:

              可能的切分结果:

              • 文本切片1:“创建知识库 ... 获得最佳的检索效果。”

              • 文本切片2:“自定义切分 ... 的部分策略进行调整。”

              按照一级标题切分

              适合于用一级标题划分并传达独立主题的文件,要求不同一级标题下的内容不会混杂在同一文本切片中。

              示例markdown文本:

              可能的切分结果:

              • 文本切片1:“创建知识库 ... 的部分策略进行调整。”

              按照二级标题切分

              适合于用二级标题划分并传达独立主题的文件,要求不同二级标题下的内容不会混杂在同一文本切片中。

              示例markdown文本:

              可能的切分结果:

              • 文本切片1:“创建知识库 ... 选择最合适的方法。”

              • 文本切片2:“智能切分 ... 获得最佳的检索效果。”

              • 文本切片3:“自定义切分 ... 的部分策略进行调整。”

              按照正则切分

              系统会依据设置的正则表达式,对知识库中的文本进行切分。例如,当需要保持句子的完整性时,可使用正则表达式(?<=。)按句号切分给定文件。

              示例文本:

              百炼知识库提供多种文件处理方式。您可以根据需求选择最合适的方法。

              可能的切分结果(正则表达式为(?<=。)):

              • 文本切片1:“百炼知识库提供多种文件处理方式。”

              • 文本切片2:“您可以根据需求选择最合适的方法。”

          多轮会话改写

          开启该功能后,阿里云百炼将基于会话上下文自动调整原始输入Prompt(用户问题)以提升检索效果。

          image

          向量模型

          向量模型用于将原始输入Prompt和知识文本转化为数值化向量,以便对二者进行相似度比较。默认的官方向量v4(text-embedding-v4)模型在语种支持、代码片段向量化效果和向量维度自定义化等方面,相比官方向量v3(text-embedding-v3)模型进行了全面升级,适用于大部分场景。详情请参见文本与多模态向量化

          image

          排序模型

          排序模型是位于知识库外部的评分系统,它会计算用户问题与知识库中每个文本切片的相似度分数并按此降序排列,并返回分数最高的前K个文本切片。若只需语义排序,请选择GTE-ReRank排序;若同时需要语义排序和文本匹配特征以确保相关性,请选择官方排序(推荐)。

          image

          相似度阈值

          该阈值表示允许召回的文本切片的最低相似度分数,用于筛选Rank模型返回的文本切片,即只有分数超过此数值的文本切片才会被召回。调低此阈值预期会召回更多文本切片,但可能导致召回一些相关度较低的文本切片;相反,提高此阈值会减少召回的文本切片。若设置得过高,则可能导致知识库丢弃相关的文本切片。

          image

          向量存储类型

          选择向量数据库存储文本向量。平台存储的向量数据库足以满足知识库的基本功能需求。如需高级功能,如管理、审计和监控数据库,请选择ADB-PG(AnalyticDB for PostgreSQL)。

          请注意,购买ADB-PG实例时请开启向量引擎优化,否则阿里云百炼将无法使用此实例。

          拓展阅读:如何手动查询AnalyticDB for PostgreSQL中与Prompt相似的文本

          拓展阅读:如何手动查询AnalyticDB for PostgreSQL中与Prompt相似的文本

          本示例将使用AnalyticDB for PostgreSQL(ADB-PG)和通用文本向量text-embedding-v2,演示如何手动查询ADB-PG中与Prompt相似的文本。

          Embedding模型:能够将多种格式数据(如文本、音频、图片、视频等)转化为具有语义信息的高维数值化向量,从而便于进行相似度计算、聚类、分类和推荐等操作。

          整体流程

          首先创建一个使用ADB-PG作为向量存储的知识库(下图步骤14)。然后通过DashScopeOpenAISDK调用通用文本向量,生成向量(下图步骤56)。最后,通过SQL查询ADB-PG,比较该向量与表中存储向量的欧式距离与点积距离(下图步骤7)。

          image

          插入向量:知识库会将导入文件切割成多个文本切片,并将这些文本切片的向量存储在ADB-PG实例中。

          操作步骤

          基于上图,以下是详细操作步骤。

          第一步:创建知识库

          创建一个知识库(类型不限),向量存储类型选择为ADB-PG。

          image

          第二步:通过阿里云百炼DashScopeOpenAISDK调用通用文本向量生成向量。

          如何选择取决于您对哪个SDK更为熟悉。以下是使用DashScope SDK调用text-embedding-v2,将文本Prompt“百炼手机X1”转换为向量的代码示例。

          请务必将示例代码中Embedding模型设置为通用文本向量text-embedding-v2。
          示例代码中的input参数是您的Prompt,请使用字符串,不要使用字符串列表或打开的文件,以免响应中包含多个向量,影响相似度分析。

          Python

          from http import HTTPStatus
          import dashscope
          
          # 请将下方变量值替换为您的API_KEY。不建议在实际生产环境中直接将API Key硬编码到代码中。
          dashscope.api_key = 'DASHSCOPE_API_KEY'
          # Embedding模型务必设置为text_embedding_v2。
          response = dashscope.TextEmbedding.call(
              model=dashscope.TextEmbedding.Models.text_embedding_v2,
              input='百炼手机X1')
          if response.status_code != HTTPStatus.OK:
              print(f'request_id={response.request_id}\ncode={response.status_code}\nmessage={response.message}\n')
          else:
              print(f'request_id={response.request_id}\noutput={response.output}\nusage={response.usage}\n')
          

          运行代码可以获得以下结果:

          text-embedding-v2对输出向量结果默认归一化处理。

          成功响应

          request_id=a4ddd876-5003-971b-abca-81da4cxxxxxx
          output={'embeddings': [{'embedding': [0.012356398553941625, 0.029741432266407613, -0.0027946300120853308, ...], 'text_index': 0}]}
          usage={'total_tokens': 4}

          异常响应

          request_id=dea1ba20-68fe-9552-a1be-a5fa81xxxxxx
          code=401
          message=Invalid API-key provided.

          响应中embedding字段的值即是根据Prompt生成的向量

          第三步:向量分析

          接下来将通过获取欧氏距离(平方)、点积距离和余弦相似度的示例,演示如何手动查询ADB-PG中与Prompt相似的文本。如何登录ADB-PG数据库

          表名中的“xxxxx”为系统分配的百炼内部标识数字,非知识库ID,两者并无关联。
          cloud_index_adb_xxxxx_prod用于存储指定知识库中所有文本切片的相关信息,包括文本切片的向量(表中的vector字段)和内容(文档类知识库是表中的content字段,数据/图片类知识库则是表中以col_为前缀的相关字段)。
          cloud_index_adb_xxxxx_doc_prod用于存储指定文档类知识库中所有文件的元数据及标签等信息。
          获取欧式距离(平方值)

          欧氏距离(平方值)越小,表示两个向量之间的相似度越高。

          请将下方示例中的表名cloud_index_adb_xxxxx_prod替换为实际表名,向量替换为在第二步中获取的实际向量。
          SELECT id, l2_squared_distance(vector, array[0.012356398553941625, 0.029741432266407613, -0.0027946300120853308, ...]::float4[]) AS distance 
          FROM cloud_index_adb_xxxxx_prod 
          ORDER BY vector <-> array[0.012356398553941625, 0.029741432266407613, -0.0027946300120853308, ...]::float4[] 
          LIMIT 3;

          返回示例如下,其中idllm-x的文本切片的向量与输入Prompt向量的欧氏距离最小。

            id  |      distance
          ------+--------------------
          llm-x | 0.787400245666503906
          llm-y | 1.07475090026855469
          llm-z | 1.42198872566223145
          (3 rows)
          获取点积距离(在归一化时,点积距离等于余弦相似度

          点积距离越大,表示两个向量之间的相似度越高。

          请将下方示例中的表名cloud_index_adb_xxxxx_prod替换为实际表名,向量替换为在第二步中获取的实际向量。
          SELECT id, dp_distance(vector, array[0.012356398553941625, 0.029741432266407613, -0.0027946300120853308, ...]::float4[]) AS similarity
          FROM cloud_index_adb_xxxxx_prod 
          ORDER BY vector <-> array[0.012356398553941625, 0.029741432266407613, -0.0027946300120853308, ...]::float4[] 
          LIMIT 3;

          返回示例如下,其中idllm-x的文本切片的向量与输入Prompt向量的余弦相似度最大。

            id   |    similarity
          -------+-------------------
           llm-x | 0.606299877166748047
           llm-y | 0.462624520063400269
           llm-z | 0.289005756378173828
           (3 rows)

          查看id='llm-x'文本切片的内容(文档类知识库是表中的content字段,数据/图片类知识库则是表中以col_为前缀的相关字段)。以文档类知识库为例:

          请将下方示例中的表名cloud_index_adb_xxxxx_prod替换为实际表名。
          SELECT id, content FROM cloud_index_adb_xxxxx_prod where id = 'llm-x';

          返回示例如下。

           id    |    content
          -------+-------------------
           llm-x | 欢迎来到未来科技的前沿,探索我们精心打造的智能手机系列,每一款都是为了满足您对科技生活的无限遐想而生。百炼 X1 - 畅享极致视界:搭载 6.7英寸 1440 x 3200像素超清屏幕,搭配 120Hz刷新率,流畅视觉体验跃然眼前。256GB海量存储空间与 12GB RAM强强联合,无论是大型游戏还是多任务处理,都能轻松应对。5000mAh电池长续航,加上超感光四摄系统,记录生活每一刻精彩。参考售价:4599-4999。
          (1 rows)
    • 数据(Chatbot/NL2SQL场景)

      • 适用场景:

        • 适合构建基于结构化数据(按某个预定义的表结构组织的数据)的问答系统,例如FAQ/商品数据/人员信息查询助手。

        • 若数据为完整的FAQ问答对,请选择数据。例如Excel文件包含两列,分别为问题答案。数据类知识库允许限定问题列用于知识库检索,答案列用于大模型回答参考。

          文件搜索类知识库难以实现此效果。
        • 导入多个Excel文件,且它们的表结构完全一致

      • 数据源接入:支持从本地上传XLSXLSX文件,或从阿里云数据库RDS导入数据。

        创建说明(数据)

        1. 选择数据:为知识库指定数据来源(含文件或内容)。数据源内容将导入知识库,用于后续检索。支持本地上传云端导入(选择现有数据表)和RDS导入三种方式。

          说明

          知识库创建后数据源不可更改,且单一知识库无法同时支持多个数据源。

          • 本地上传:直接从您的电脑上传数据表(XLSXLSX格式)。

          • 云端导入(选择数据表):选择阿里云百炼应用数据中现有的数据表。操作指南请参见数据导入

          • RDS导入(关联数据库):数据表存储在阿里云RDS中。操作指南请参见数据导入

        2. 索引配置:定义导入数据的处理和存储方式,直接影响检索效果。

          是否索引

          link类型字段可见。如需阿里云百炼访问链接指向的图片并将其通过图片Embedding转换为向量保存,请选择图片;如需将链接作为普通文本处理,请选择不处理(等同于string类型)。

          选择图片时,请确保数据表中每个link指向的图片文件不超过3MB。超过限制将导致知识库创建失败。

          是否参与检索/参与模型回复

          是否参与检索:开启后表示允许知识库在此列数据中进行搜索。

          是否参与模型回复:开启后表示本列的检索结果将作为大模型生成回答时的输入信息。如下图示例的配置中,对“姓名”、“性别”、“岗位”、“年龄”开启是否参与检索,对“姓名”和“岗位”开启是否参与模型回复后, 知识库将会在所有列数据中进行检索,但只对检索到的数据中“姓名”、“岗位”两列的内容提供给大模型进行回答参考。

          image

          如下图所示,因为“年龄”没有开启参与模型回复,大模型在关联该知识库后依然无法回答“张三的年龄”的问题。

          image

          多轮会话改写

          开启该功能后,阿里云百炼将基于会话上下文自动调整原始输入Prompt(用户问题)以提升检索效果。

          image

          向量模型

          向量模型用于将原始输入Prompt和知识文本转化为数值化向量,以便对二者进行相似度比较。默认的官方向量v4(text-embedding-v4)模型在语种支持、代码片段向量化效果和向量维度自定义化等方面,相比官方向量v3(text-embedding-v3)模型进行了全面升级,适用于大部分场景。详情请参见文本与多模态向量化

          image

          排序模型

          排序模型是位于知识库外部的评分系统,它会计算用户问题与知识库中每个文本切片的相似度分数并按此降序排列,并返回分数最高的前K个文本切片。若只需语义排序,请选择GTE-ReRank排序;若同时需要语义排序和文本匹配特征以确保相关性,请选择官方排序(推荐)。

          image

          相似度阈值

          该阈值表示允许召回的文本切片的最低相似度分数,用于筛选Rank模型返回的文本切片,即只有分数超过此数值的文本切片才会被召回。调低此阈值预期会召回更多文本切片,但可能导致召回一些相关度较低的文本切片;相反,提高此阈值会减少召回的文本切片。若设置得过高,则可能导致知识库丢弃相关的文本切片。

          image
    • 图片(图搜场景)

      • 适用场景:

        • 适合构建以图搜图、以图搜“图+文字”的多模态检索应用,如商品导购/视觉问答助手。

      • 数据源接入:支持从本地上传XLSXLSX文件(需包含图片URL链接),或从阿里云数据库RDS导入数据。

        创建说明(图片)

        1. 选择数据:为知识库指定数据来源(含文件或内容)。数据源内容将导入知识库,用于后续检索。支持本地上传云端导入(选择应用数据中已有数据表)和RDS导入三种方式。

          说明

          知识库创建后数据源不可更改,且单一知识库无法同时支持多个数据源。

          • 本地上传:直接从您的电脑上传数据表(XLSXLSX格式)。

          • 云端导入(选择数据表):选择阿里云百炼应用数据中现有的数据表。如何操作,请参见数据导入

          • RDS导入(关联数据库):数据表存储在阿里云RDS中。如何操作,请参见集成MySQL数据至知识库

        2. 索引配置:定义导入数据的处理和存储方式,直接影响检索效果。

          是否索引

          link类型字段可见。如需阿里云百炼访问链接指向的图片并将其通过图片Embedding转换为向量保存,请选择图片;如需将链接作为普通文本处理,请选择不处理(等同于string类型)。

          选择图片时,请确保数据表中每个link指向的图片文件不超过3MB。超过限制将导致知识库创建失败。

          是否参与检索/参与模型回复

          是否参与检索:开启后表示允许知识库在此列数据中进行搜索。

          是否参与模型回复:开启后表示本列的检索结果将作为大模型生成回答时的输入信息。如下图示例的配置中,对“姓名”、“性别”、“岗位”、“年龄”开启是否参与检索,对“姓名”和“岗位”开启是否参与模型回复后, 知识库将会在所有列数据中进行检索,但只对检索到的数据中“姓名”、“岗位”两列的内容提供给大模型进行回答参考。

          image

          如下图所示,因为“年龄”没有开启参与模型回复,大模型在关联该知识库后依然无法回答“张三的年龄”的问题。

          image

          多轮会话改写

          开启该功能后,阿里云百炼将基于会话上下文自动调整原始输入Prompt(用户问题)以提升检索效果。

          image

          向量模型

          向量模型用于将原始输入Prompt和知识文本转化为数值化向量,以便对二者进行相似度比较。默认的官方向量v4(text-embedding-v4)模型在语种支持、代码片段向量化效果和向量维度自定义化等方面,相比官方向量v3(text-embedding-v3)模型进行了全面升级,适用于大部分场景。详情请参见文本与多模态向量化

          image

          排序模型

          排序模型是位于知识库外部的评分系统,它会计算用户问题与知识库中每个文本切片的相似度分数并按此降序排列,并返回分数最高的前K个文本切片。若只需语义排序,请选择GTE-ReRank排序;若同时需要语义排序和文本匹配特征以确保相关性,请选择官方排序(推荐)。

          image

          相似度阈值

          该阈值表示允许召回的文本切片的最低相似度分数,用于筛选Rank模型返回的文本切片,即只有分数超过此数值的文本切片才会被召回。调低此阈值预期会召回更多文本切片,但可能导致召回一些相关度较低的文本切片;相反,提高此阈值会减少召回的文本切片。若设置得过高,则可能导致知识库丢弃相关的文本切片。

          image
  3. 在请求高峰时段,整个创建过程可能需要数小时(取决于数据量大小),请耐心等待。

更新知识库

知识库内容的任何变更都会实时同步到所有引用它的应用中。

文档类知识库

  • 自动更新(推荐)

    使用对象存储OSS管理文件,通过函数计算FC监听文件变更事件,自动同步更新至知识库,实现知识的实时更新。详见告别手动操作,让AI知识库自动更新

  • 手动更新

    进入知识库页面,单击目标知识库右侧的查看

    • 如何新增文件:单击导入数据,勾选应用数据中的已有文件。如何上传文件至应用数据

    • 如何删除文件:找到目标文件后,单击其右侧的删除

      此操作仅将文件从知识库中移除,不会删除应用数据中的源文件。
    • 如何修改文件内容:先删除文件(旧版本),再新增文件(新版本)即可。

      注意:若保留旧版本文件可能导致过时内容被检索和召回。

数据/图片类知识库

  • 自动更新(推荐)

    使用阿里云关系型数据库RDS或自建MySQL管理知识数据,可实现知识库的自动同步更新(延迟通常为分钟级,在请求高峰期可能为小时级),详见集成MySQL数据至知识库

  • 手动更新

    当知识库的数据源是应用数据中的数据表时,只能手动更新,流程分为两步。

    1. 步骤一:更新数据表

      访问表格页签。左侧列表中选择目标数据表,单击导入数据

      • 如何插入新数据:导入类型选择增量上传。需上传一个仅包含表头和新增数据行Excel文件。

        文件的表头须与当前表结构一致。可使用页面上的下载模板功能,获取标准表头文件,直接在该文件中填入新数据。
      • 如何删除数据:导入类型选择覆盖上传。需上传一个包含表头及最新完整数据(已移除需删除的记录)Excel文件。

        如何获取全量数据:单击页面上的image下载XLSX格式数据。
      • 如何修改数据:导入类型选择覆盖上传。需上传一个包含表头及最新完整数据(已包含相应的修改)Excel文件。

    2. 步骤二:变更同步知识库

      返回知识库列表,单击目标知识库右侧的查看。单击数据表左上方的image图标,确认后即可将数据表的最新内容同步到知识库。

      后续每次更新后,需手动重复以上步骤(应用数据无自动同步功能)。

编辑知识库

知识库创建后,仅支持修改其基本信息及相似度阈值,其他配置不可变更。当前不支持通过API操作。

删除知识库

当知识库已不再被任何应用使用时,可将其永久删除。

说明

本操作不会删除应用数据中的源文件/数据表。

警告

删除操作不可逆,请谨慎操作。

删除知识库步骤

  1. 在删除知识库之前,须将其与所有已发布的阿里云百炼应用解除关联(否则会弹窗提示删除失败)。

    1. 进入应用管理页面,找到关联该知识库的应用,单击配置

    2. 在知识库列表中移除该知识库。单击页面右上角的发布,根据指引重新发布应用。

    3. 对所有关联了该知识库的已发布应用,重复以上步骤。

  2. 进入知识库页面,找到目标知识库,单击其右侧的删除

配额与限制

  • 关于知识库支持的数据源与容量等信息,请参见知识库配额与限制

  • 每个阿里云百炼应用最多可关联5个知识库。

计费说明

知识库功能本身不收费,但在调用引用了知识库的阿里云百炼应用时,可能会产生费用。

步骤

计费情况

创建知识库

不收费。

集成到业务应用

调用阿里云百炼应用时,从知识库召回的文本切片会增加大模型输入Token数量,这可能导致模型推理(调用)费用的增加。关于模型推理(调用)的费用详情,请参见计费项与定价

注意:如果仅在指定的知识库中进行检索(通过调用Retrieve接口的方式),则不产生费用。

管理与运维

不收费。

API参考

请参见API目录(知识库)获取最新完整的知识库API列表及输入输出参数。具体使用方法和代码示例,请参阅知识库API指南

常见问题

构建知识库

  • Q: 应用数据中已导入知识库的文件/数据表能否删除?

    • 文档类知识库:可以删除,应用数据和知识库互为独立的数据副本。

    • 数据/图片类知识库:不可删除,否则将导致查看知识库等功能异常。

处理图片及多模态内容

  • Q: 文件含插图(需阿里云百炼应用在回答时返回),应如何处理?

    文档类

    方式一(仅适用智能体应用)

    1. 构建知识库时,使用场景选择图文并茂回复

      image

    2. 在创建/编辑智能体应用时,点击页面上文档右侧的+按钮,添加在上一步中构建好的知识库。

    3. 随后,在页面右侧的输入框中,发起提问。

      例如:“简单介绍百炼X1手机。”

      实际问答效果:

      image

    方式二(适用智能体应用与工作流应用)

    1. 上传图片至公网可访问位置,并获取完整URL。推荐使用OSS,具体操作请参考将图片上传至OSS并使用其文件URL

    2. 插入完整 URL(不支持相对路径)到文件中。请注意:直接在文件中插入图片不会在回答中展示

      若已按说明操作,但图片仍无法显示,请检查文本切片中的完整URL,确认是否存在多余空格或特殊字符(可能被系统误解析),如有问题可直接编辑修正。

      文件正确引用图片示例

      提示词模板示例

      用户提示词和阿里云百炼应用返回的结果

      image

      # 知识库
      请记住以下材料,他们可能对回答问题有帮助。
      ${documents}
      
      # 要求
      如果有图片,请展示图片。

      image

      文件错误引用图片示例

      提示词模板示例

      用户提示词和阿里云百炼应用返回的结果

      image

      # 知识库
      请记住以下材料,他们可能对回答问题有帮助。
      ${documents}
      
      # 要求
      如果有图片,请展示图片。

      image

      解释:直接插入图片到文件中时,阿里云百炼应用不会在回答中展示图片。

    数据/图片类

    1. 上传图片至公网可访问位置,并获取完整URL。推荐使用OSS,具体操作请参考将图片上传至OSS并使用其文件URL

    2. 在新建数据表时,用link类型字段存储图片的完整URL(不支持相对路径;多张图片关联一条记录时,为每张图片分别建立字段)。

      注意:数据表创建后,无法再新增或修改字段类型为link

      image

    3. 构建知识库时,在link类型字段旁的下拉列表中选择图片

      注意:知识库创建后,无法再修改link字段处理方式。

      image

    4. 在创建/编辑智能体应用时,点击页面上表格(数据类知识库)/图片(图片类知识库)右侧的+按钮,添加在上一步中构建好的知识库。更改提示词模板为:

      # 知识库
      请记住以下材料,他们可能对回答问题有帮助。
      ${documents}
      
      # 要求
      如果有图片,请展示图片。
    5. 接下来,在页面右侧的输入框中,发起提问。

      例如:“简单介绍百炼X1手机。”

      正确引用图片示例

      提示词模板示例

      用户提示词和阿里云百炼应用返回的结果

      image

      # 知识库
      请记住以下材料,他们可能对回答问题有帮助。
      ${documents}
      
      # 要求
      如果有图片,请展示图片。

      image

权限与安全

  • Q: 操作知识库时,遇到保存“缺少该模块的权限”,应如何处理?

    RAM用户默认无法执行创建、更新、删除知识库等写入类操作,需阿里云账号(主账号)为其授予管理员(或至少包含应用数据-操作知识库-操作页面权限

  • Q: 知识库是否私有?其他组织或用户能否访问?

    知识库仅限其所在业务空间内的成员访问/操作,不对外公开。

  • Q: 阿里云是否会使用我账号下的知识库回答其他用户的问题?

    不会。

迁移与导出

  • Q: 如何导出知识库到本地?

    不支持。

更多

  • Q: 长文本大模型(Long-Context LLM)和RAG怎么选?

    长文本大模型(如Qwen-Long)和RAG均能通过喂入外部信息来优化输出,但它们各有所长。长文本大模型会全面审视输入文本的每个Token,因此通常在深度理解和总结长篇文本方面表现更佳,但这同时也带来了更高的计算和推理成本;RAG则通过快速跨源检索,只专注于最相关的Token,因此更适合那些无需全局理解,只靠整合最新信息片段即可迅速回答的事实性问题场景。

场景教程

使用阿里云百炼快速构建一个在线知识库问答应用,以便全天候(7 × 24)响应用户咨询,提升用户体验、增强业务竞争力: