华为云码道(CodeArts)代码智能体具备基于知识库的问答增强能力,支持开发者将企业内部文档、技术资料等知识内容上传至知识库,并作为上下文参考进行智能问答。通过融合企业专属知识,AI生成的回答更精准、更贴合实际业务场景,显著提升开发效率与技术决策的准确性。
快速了解知识库
知识库主要应用于华为云码道插件的单元测试生成、代码续写和研发知识问答等场景,可显著提升智能体在这些任务中的准确性和响应效率。
通过可视化的方式,展示知识库从用户提问到答案返回的完整处理流程,涵盖信息检索、逻辑推理等关键环节,便于您全面掌握其工作原理。
图1 知识库工作原理
- 根据业务需要将知识按类型整理划分,如通用知识、领域知识和个人知识。
- 新建知识空间,用于管理知识库。
- 创建知识库并上传知识文件,对知识进行切片、向量化处理后入库存储。
- 在华为云码道中引用知识库,检索知识库信息,辅助生成更准确。
在使用知识库前,建议先了解以下基本概念,助您快速上手。
表1 基本概念 | 基本概念 | 概念说明 |
| 知识空间 | 知识空间是将用户上传的数据进行切片、模型向量化处理、索引过滤后入库形成的知识集合,按照实际使用维度进行划分。知识空间本身不存储知识,只用于集中管理知识库。 |
| 知识库 | 知识库用于存储和管理各类知识文档,支持按知识类型和来源进行分类划分,有助于提升信息组织的清晰度,增强知识的可读性与可检索性。 |
| 文件 | 文件是知识的载体,知识从导入到检索,需配置正确的加载切片规则、选择合理的向量化模型、设置匹配的索引过滤条件与检索策略,才能确保端到端的检索效果。 |
| 切片 | 切片是知识文件经过加载与切分后形成的文本块,是向量化、存储与召回的基本单元。 |
约束与限制
华为云码道不同版本支持的文件存储容量存在差异,具体如下:
- 体验版:最多支持500MB
- 基础版:最多支持5GB
- 专业版:最多支持20GB
新建知识库
- 新建知识空间。
知识空间用于集中管理多个知识库。在创建知识库之前,须先创建一个知识空间。
- 在知识空间页面,单击“新建空间”,参考表2完成参数配置。
图2 新建空间
表2 新建知识空间参数说明 | 参数 | 说明 |
| 知识空间名称 | 新建知识空间的名称。 命名规则:不能以下划线开头,支持中文、英文、数字、下划线(_)和中划线(-),长度不超过18个字符。 |
| 可见范围 | 对成员访问权限进行管控。 - 个人:仅成员本人可用。
- 团队:知识空间关联的团队下所有成员可用,由企业管理员或团队管理员创建。
- 企业:整个企业所有成员都可用,由企业管理员创建。
|
| 可用团队 | 仅“可见范围”设置为“团队”时,展示此参数。 在下拉列表中选择团队,仅展示当前账号所属团队。 |
| 标签 | 可选,为知识空间添加标签,用于分类和管理内容,最多可选择10个标签。 - 若尚未创建标签,参考以下步骤创建。否则,请执行下一步。
在下拉列表中单击“添加”,弹出“新增标签”对话框。输入标签名称,长度不超过32个字符,单击“确定”。 - 勾选目标标签。
|
| 描述 | 可选,输入知识空间的描述信息,长度不超过300个字符。完善的描述有助于华为云码道准确地理解内容范围,提升检索匹配的精准度。 |
- 单击“确定”,完成知识空间的创建。
在知识空间列表中,可查看到已创建的知识空间。
图3 查看已创建的知识空间
- 新建知识库。
基于已创建的知识空间创建知识库,并根据知识的类型和来源进行分类,确保信息结构清晰、易于检索。
- 在知识空间列表中,单击已创建的知识空间,进入知识空间详情页面。
- 单击右上角的“新建知识库”,弹出“新建知识库”对话框。
- 参考表3完成基本信息配置。
图4 新建知识库 
表3 知识库基本信息参数说明 | 参数 | 说明 |
| 知识库名称 | 新建知识库的名称。 名称规则:不能以下划线开头,支持中英文、数字、下划线(_)和中划线(-),长度不超过32个字符。 |
| 知识类型 | 选择知识库的类型,支持“非结构化格式”和“结构化格式”。 - 非结构化格式:数据没有固定的格式。
- 结构化格式:数据有固定格式、字段、结构。
|
| 数据来源 | 选择知识库的数据来源,包括“本地文件”和“代码”两种类型。 - “知识类型”为“非结构化格式”时,支持的数据来源如下。
- 本地文件:主要包含文本内容,可以包括文章、报告、书籍等,支持TXT、DOCX、PDF、MD、CSV、XLS和XLSX格式文件。
- 代码:仅支持ZIP格式的压缩包,内含Java 、Python、C、C++或Vue代码文件。
- “知识类型”为“结构化格式”时,仅支持“本地文件”,文件格式为JSON。
|
| 知识库描述 | 可选,输入知识库的描述信息,介绍知识库中包含的内容,长度不超过300个字符。详细的描述有助于指导智能体更准确地调用知识库。 |
- 单击“下一步”,参考表4完成入库信息的配置。
图5 入库配置(非结构化格式)
图6 入库配置(结构化格式)
表4 入库配置参数说明 | 参数 | 说明 |
| Embedding模型 | 选择Embedding模型,对上传的文件/代码进行向量化,提供以下模型可供选择: - bge-m3:多语种的1024维文本嵌入模型,支持向量/稀疏/多表征混合检索,最大支持8192 tokens长文本,适合复杂多语言场景。
- m3e-base:中英文文本的通用型768维的嵌入模型,适用于大多数中英文基础语义理解与检索任务。
- bge-large-zh-v1.5:中文专用模型,适用于检索、分类、聚类及语义匹配等任务。
- paraphrase-multilingual-MiniLM-L12-v2:中英文文本的364维嵌入模型,在文本相似度计算中表现优异,适合对速度有要求的场景。
- VESO-v1.3:代码专用模型,针对代码数据深度优化,在代码数据向量化与搜索任务中表现突出。
|
| 切分器 | “知识类型”为“非结构化格式”,且“数据来源”为“本地文件”时,展示此参数。 不同切分器的切片方式和结果不同,在不同的语言场景下可以选择不同的切分器,当前支持以下切分器。 - 基于段落的切分器:按照两个连续的换行符(\n\n)分割或文本段落结构分割。
- 基于行的切分器:按照换行符(\n)分割。
- 基于句子的切分器(适用于英文文本):将文本按照英文句子分割。
- 基于字符的切分器:逐个字符(含空白字符)分割。
|
| 分段预计长度 | “知识类型”为“非结构化格式”,且“数据来源”为“本地文件”时,展示此参数。 分片长度的取值范围为50~1200,默认值为1000。 |
| 分段重叠长度 | “知识类型”为“非结构化格式”,且“数据来源”为“本地文件”时,展示此参数。 当前分片与上一个分片重叠的文本长度,取值范围为0到分片的长度,默认值为0。 |
| 子切分器 | “知识类型”为“非结构化格式”,且“数据来源”为“本地文件”时,展示此参数。 切片长度超过最大长度时应用子切分器。当前支持以下切分器: - 基于字符的切分器:逐个字符(含空白字符)分割。
- 基于句子的切分器(适用于英文文本):将文本按照英文句子分割。
- 基于单词的切分器(适用于英文文本):将文本按照空白字符分割。
|
| 需建立索引的字段 | “知识类型”设置为“结构化格式”时,展示此参数。 请输入JSON中的Key,作为检索时的索引字段。最多支持20个字段,多个字段间请用英文逗号(,)分隔。 |
| 过滤配置字段 | “知识类型”设置为“结构化格式”时,展示此参数。 请输入JSON中的Key,作为检索时的过滤条件。最多支持2个字段,字段之间请用英文逗号(,)分隔。 |
| 索引字段 | “数据来源”设置为“代码”时,展示此参数。 选择索引的字段,即智能体在进行搜索时,主要对哪个数据字段建立索引并进行匹配。 假设,索引字段选择函数体,则当用户输入关键词进行搜索时,智能体会优先在代码的“函数体”部分进行查找和匹配。 |
| 使用滑动窗口 | “数据来源”设置为“代码”时,展示此参数。 开启后,可进一步将复杂函数切分成多个片段,提高搜索的准确性。 |
- 单击“确定”,完成知识库的创建。
在知识库列表中,可查看到已创建的知识库。
- 导入文件。
知识库创建后,您可以将存储在本地的各类文档上传至知识库。上传后,系统将自动进行数据清洗与索引构建,确保您导入的内容能够被快速检索和调用,从而实现知识的即时沉淀。
- 在知识库列表中,单击已创建知识库的名称,进入知识库详情页面。
- 单击右上角的“导入文件”,进入“导入文件”页面。
- 选择本地要导入的文件或代码,单击“确定”,返回知识库页面。
图7 上传文件或代码
请根据所需知识类型上传相应的文件或代码。单个文件或压缩包最大支持20MB,单个知识库最大支持50MB。
表5 导入文件说明 | 知识类型 | 数据来源 | 说明 |
| 非结构化格式 | 本地文件 | 支持TXT、DOCX、PDF、MD、CSV、XLS和XLSX格式文件。 |
| 代码 | 仅支持ZIP格式的压缩包,内含Java、Python、C、C++或Vue代码文件。 |
| 结构化格式 | 本地文件 | 支持JSON格式文件。 |
- 查看导入结果。
当“导入状态”由“上传中”变更为“入库成功”时,表示文件已成功导入。
在上下文中引用知识库
- 参考快速启动操作,登录华为云码道。
- 在聊天界面的输入框内输入符号“#”,然后从弹出的列表中选择“Knowledge Bases”。
- 在Knowledge Bases列表中,选择1中新建的知识空间(如个人知识空间)。
图8 选择知识空间
- 在目标知识空间中,选择3中创建的知识库(如服务介绍文档),将知识库添加到上下文。
- 知识库添加后,即可基于该知识库发起会话。
图9 基于知识库发起会话
管理知识库
表6 管理知识库 | 操作 | 具体步骤 |
| 编辑知识空间 | 在知识空间页面,单击目标知识空间卡片上的 ,选择“编辑”,即可对知识空间进行编辑。 |
| 删除知识空间 | 删除知识空间前,须先清空该空间下的所有知识库。 - 在知识空间页面,单击目标知识空间卡片上的
,选择“删除”,弹出“删除知识空间”对话框。 - 单击“一键输入”,系统自动输入DELETE,再单击“确定”,即可删除知识空间。
目标知识空间已从知识空间页面移除,表示删除知识空间成功。 注意: 删除知识空间会将该空间内的所有资源彻底清除。一旦确认,数据将无法找回,请在执行前做好备份。 |
| 知识库命中测试 | 命中测试旨在对知识库执行搜索查询,并验证检索结果的准确性与相关性。 - 在知识空间页面,单击右上角的“命中测试”,进入“命中测试”页面。
- 选择知识库,即需要检索的目标知识库,最多支持选择10个。
- 指定要检索的字段,直接在下拉框中选择即可。
- 选择检索方式。
- 文本检索:基于传统关键词匹配,适合精确词匹配、短查询。
- 向量检索:基于语义相似度,能理解上下文和同义词,适合自然语言查询。
- 混合检索:结合“文本检索”加“向量检索”,取两者结果加权融合。通常效果更好,尤其对复杂语义查询。
- 输入您想要搜索的内容,最多支持1000个字符。
- 设置返回结果条数。
- 单击“开始调试”,在片段结果中可查看到最终的调试结果。
|
| 删除知识库 | 当内容严重过时且无保留价值,或存在严重错误且修正成本过高/无法修正时,可以通过如下操作删除知识库。 - 在知识空间页面,单击知识库所在的知识空间,进入知识空间详情页面。
- 在目标知识库所在行,单击 “删除”,弹出“删除知识库”对话框。
- 单击“一键输入”,系统自动输入DELETE,再单击“确定”,即可删除目标知识库。
目标知识库已从知识空间详情页面移除,表示删除知识库成功。 注意: 删除操作执行后,该知识空间内的所有数据将被永久清除,且无法恢复。请确认已备份重要数据后再进行操作。 |
| 批量删除知识库 | 手动逐条删除知识库效率较低,您还可以通过以下方式批量删除知识库。 - 在知识空间页面,单击知识库所在的知识空间,进入知识空间详情页面。
- 单击右上角的“批量删除”,勾选待删除的目标知识库。
- 单击“删除”,弹出“批量删除知识库”对话框。
- 单击“一键输入”,系统自动输入DELETE,再单击“确定”,即可删除选中的多个知识库。
目标知识库已从知识空间详情页面移除,表示批量删除知识库成功。 注意: 删除操作执行后,该知识空间内的所有数据将被永久清除,且无法恢复。请确认已备份重要数据后再进行操作。 |
| 查看知识库操作动态 | - 在知识空间页面,单击知识库所在的知识空间,进入知识空间详情页面。
- 单击右上角的“操作动态”,即可查看知识空间内所有知识库的操作日志。
|
| 重新导入文件 | 如果文件上传失败,请检查网络连接或文件格式后,单击“重新导入”重试。 - 在知识空间页面,单击知识库所在的知识空间,进入知识空间详情页面。
- 单击目标知识库的名称,进入知识库详情页面。
- 单击右上角的“重新导入”,查看导入结果。
|
| 删除文件 | 文件数量较少时,逐条删除操作更直观灵活,便于精准定位并清除目标内容。 - 在知识空间页面,单击知识库所在的知识空间,进入知识空间详情页面。
- 单击目标知识库的名称,进入知识库详情页面。
- 单击目标文件后的,弹出“删除文件”对话框。
- 单击“一键输入”,系统自动输入DELETE,再单击“确定”,即可删除该文件。
目标文件已从知识库详情页面移除,表示删除文件成功。 注意: 删除操作执行后,文件将会被永久清除,且无法恢复。请确认已备份重要数据后再进行操作。 |
| 批量删除文件 | 手动逐条删除文件效率较低,您还可以通过以下方式批量删除文件,快速清理冗余文件。适用于知识库重构、版本迭代及去重场景,助您快速保持知识库整洁。 - 在知识空间页面,单击知识库所在的知识空间,进入知识空间详情页面。
- 单击目标知识库的名称,进入知识库详情页面。
- 单击右上角的“批量删除”,勾选待删除的目标文件。
- 单击“删除”,弹出“批量删除文件”对话框。
- 单击“一键输入”,系统自动输入DELETE,再单击“确定”,即可删除选中的多个文件。
目标文件已从知识库详情页面移除,表示批量删除文件成功。 注意: 删除操作执行后,文件将会被永久清除,且无法恢复。请确认已备份重要数据后再进行操作。 |