前言

知识库是智能体的"长期记忆"和"专业知识库"。当智能体需要基于特定领域的文档、数据或信息来回答问题、执行任务时,知识库扮演着至关重要的角色。本文将详细介绍如何在小艺开放平台上创建、配置和发布知识库,帮助你的智能体具备专业领域知识能力。

知识库的核心价值在于:让智能体不再局限于大模型的通用知识,而是能够基于你提供的私有数据、行业文档、产品手册等专属信息,提供精准、可控、可溯源的答案。

知识库概述

什么是知识库

知识库是一个结构化的数据存储系统,用于存放智能体在对话和任务执行过程中需要引用的专业信息。开发者可以将产品文档、操作手册、常见问题、行业规范等资料导入知识库,智能体在回答问题时会自动检索相关知识并生成答案。

知识库的核心能力

  • 领域知识增强:补充大模型未覆盖的垂直领域专业知识
  • 信息溯源:回答问题时可追溯到原始文档内容
  • 实时更新:文档更新后知识库同步刷新,确保答案时效性
  • 多源接入:支持文档、图片、API数据源、网页爬虫四种导入方式

知识库与智能体的协作流程

用户提问 → 智能体接收 → 检索知识库 → 匹配相关段落 → 大模型理解上下文 → 生成回答返回用户

创建知识库完整流程

步骤一:进入知识库管理页面

小艺智能体平台的导航菜单中,依次点击【资源库】→【知识库】→【新建知识库】,进入新建知识库流程。

alt text

步骤二:填写知识库基本信息

在新建页面,需要填写以下信息:

配置项 说明 是否必填
知识库名称 简明扼要地描述知识库内容,如"产品使用手册" 必填
知识库描述 概述知识库包含的信息范围和使用场景 建议填写
授权选项 是否授权用于知识问答(授权后可能被小艺对话使用) 可选

关于授权说明:若勾选"授权知识库用于知识问答",意味着该知识库的内容可能会被小艺对话系统使用,以提升更广泛的问答体验。注意:如果勾选了授权,知识库的上架审核周期为1-3个工作日。 如果不勾选,仅用于自有智能体,审核周期更短。

步骤三:选择导入方式

进入知识库后,点击 “新建知识”,目前支持四种导入方式:

alt text

四种导入方式详解

1. 文档导入

文档导入是最常用的方式,适用于产品手册、技术文档、操作指南等文本类资料。

支持的文件格式:

文件格式 扩展名 说明
Word文档 .doc, .docx 兼容老版本和新版本
纯文本 .txt UTF-8编码
PDF文档 .pdf 含扫描版和文字版
Excel表格 .xls, .xlsx 注意:只处理第一个sheet
演示文稿 .ppt, .pptx 仅处理文字内容
Markdown .md 保留标题层级结构

导入规则与限制:

  • 单次最多导入 100个 文件
  • 每个文件最多支持 200页 且不超过 150MB
  • 对于多Sheet的Excel文件,如需导入多个Sheet,需拆分为多个文件分别导入
  • 支持配置引用源信息,方便回答时追溯到原文

最佳实践:

1. 文档目录结构建议
   /知识库根目录
   ├── 产品文档/
   │   ├── 功能介绍.md
   │   ├── 操作指南.docx
   │   └── 常见问题.pdf
   ├── 技术规范/
   │   ├── API文档.docx
   │   └── 数据字典.xlsx
   └── 培训资料/
       └── 新手教程.pptx

2. 推荐使用 Markdown 格式,结构清晰、处理效率高
3. 单个文件控制在50页以内,提高检索精度
4. Excel文件只保留第一个Sheet的数据

2. 图片导入

适用于包含文字信息的图片、截图、思维导图等视觉资料。

支持的图片格式:

格式 扩展名 说明
JPEG .jpg, .jpeg 最常用格式
PNG .png 支持透明背景
BMP .bmp 位图格式
TIFF .tiff 高质量图片格式

导入规则与限制:

  • 单次最多导入 100个 图片
  • 每个图片最多不超过 20MB
  • 支持图片智能标注功能,自动识别图片中的文字内容
  • 可配置引用源信息

使用建议:图片中的文字应清晰可辨,避免模糊或倾斜的截图。建议使用PNG格式导出文档截图,文字识别准确率更高。

3. 数据源导入

数据源导入适用于需要通过API接口动态获取数据的场景,例如实时数据、数据库查询结果等。

配置要求:

  • 推荐每条数据不超过 10MB
  • 数据源参数信息需按照业务垂类Schema结构定义配置
  • 支持JSON格式的数据交互

数据源Schema配置示例:

{
  "schema": {
    "type": "object",
    "properties": {
      "productId": {
        "type": "string",
        "description": "产品唯一标识"
      },
      "productName": {
        "type": "string",
        "description": "产品名称"
      },
      "category": {
        "type": "string",
        "description": "产品分类"
      },
      "description": {
        "type": "string",
        "description": "产品描述"
      },
      "specifications": {
        "type": "object",
        "properties": {
          "price": {
            "type": "number",
            "description": "价格"
          },
          "stock": {
            "type": "integer",
            "description": "库存数量"
          }
        }
      }
    },
    "required": ["productId", "productName"]
  }
}

API 接口数据返回示例:

{
  "data": [
    {
      "productId": "P10001",
      "productName": "智能音箱",
      "category": "智能家居",
      "description": "支持语音控制、音乐播放、智能家居联动",
      "specifications": {
        "price": 299.00,
        "stock": 1500
      }
    },
    {
      "productId": "P10002",
      "productName": "智能摄像头",
      "category": "安防监控",
      "description": "1080P高清、夜视功能、移动侦测",
      "specifications": {
        "price": 199.00,
        "stock": 800
      }
    }
  ]
}

alt text

数据源导入适用场景:

  • 电商平台的商品信息库
  • 企业内部的CRM/ERP数据
  • 实时更新的行业数据库
  • 需要频繁更新的配置信息

4. 爬虫导入

爬虫导入适用于需要从指定网站自动抓取信息并保持同步的场景。

配置参数:

配置项 说明 建议值
爬取地址 目标网站的起始URL 指定具体页面路径
爬取周期 自动重新爬取的时间间隔 每天/每周/每月
页面深度 爬取链接的层级深度 建议1-2层

alt text

爬虫导入适用场景:

  • 公司官网的产品说明页面
  • 定期更新的公告/新闻页面
  • 行业资讯和法规政策页面
  • 维基类知识文档站点

注意事项:使用爬虫方式导入时,请确保拥有目标网站的合法抓取权限,遵守 robots.txt 协议,不得抓取需要登录或付费的内容。

知识库导入方式对比

导入方式 适用场景 更新方式 数据量限制 实时性
文档 静态文档、手册、规范 手动上传 100个文件/次,150MB/文件
图片 含文字的截图、图片 手动上传 100张/次,20MB/图
数据源 结构化数据、实时数据 API自动同步 10MB/条
爬虫 网页信息、公开资料 定时爬取 取决于爬取配置

测试知识库

数据处理与校验

文档类型的知识导入后,需要等待数据校验完成才能进行下一步操作。系统会自动解析文档内容,进行分词、向量化等处理。

查看知识详情

可以点击知识名称查看每个知识条目的详细信息,包括:

  • 文档中的段落内容
  • 元数据信息
  • 处理状态
  • 引用来源

使用curl测试知识库API

如果你的数据源方式导入了知识库,可以通过curl验证API接口的正确性:

# 测试数据源API是否正常返回
curl -X GET "https://api.example.com/knowledge/products" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
# 测试单条数据查询
curl -X GET "https://api.example.com/knowledge/products/P10001" \
  -H "Authorization: Bearer YOUR_API_KEY"

知识库数据格式验证

知识库处理完成后,返回的数据格式如下:

{
  "knowledge_id": "kb_123456",
  "status": "completed",
  "total_segments": 256,
  "processed_files": 12,
  "failed_files": 0,
  "created_at": "2026-04-20T08:00:00Z",
  "summary": {
    "total_chars": 150000,
    "file_types": ["pdf", "docx", "md"],
    "language": "zh-CN"
  }
}

知识库文档覆盖率分析

为了确保知识库完整覆盖业务需求,可以使用以下Python脚本分析文档内容的覆盖率:

import os

def analyze_knowledge_coverage(doc_dir: str, topics: list) -> dict:
    """
    分析知识库文档对业务主题的覆盖率

    Args:
        doc_dir: 文档目录路径
        topics: 业务主题列表

    Returns:
        各主题的覆盖情况
    """
    coverage = {}
    for topic in topics:
        matched_docs = []
        for filename in os.listdir(doc_dir):
            if topic.lower() in filename.lower():
                matched_docs.append(filename)
        coverage[topic] = {
            "covered": len(matched_docs) > 0,
            "matched_docs": matched_docs
        }
    return coverage

# 使用示例
doc_directory = "./knowledge_docs/"
business_topics = ["产品介绍", "使用指南", "常见问题", "保修政策"]
result = analyze_knowledge_coverage(doc_directory, business_topics)

for topic, info in result.items():
    status = "✅ 已覆盖" if info["covered"] else "❌ 未覆盖"
    print(f"{topic}: {status}")
    if info["matched_docs"]:
        print(f"  匹配文档: {', '.join(info['matched_docs'])}")

测试结果评估

# 知识库测试评估标准
test_results:
  retrieval_accuracy: 0.92    # 检索准确率,目标 > 0.85
  response_latency_ms: 350    # 响应延迟,目标 < 500ms
  coverage_rate: 0.95        # 业务覆盖率,目标 > 0.90
  no_recall_rate: 0.05       # 无召回率,目标 < 0.10

在智能体中测试问答效果

在知识库发布前,建议先创建一个测试智能体,将知识库绑定到智能体中进行问答测试:

# 测试知识库效果的简化流程
def test_knowledge_base():
    """
    模拟知识库检索流程
    实际环境中小艺平台会自动处理
    """
    # 用户问题
    user_query = "产品的保修政策是什么?"

    # 1. 知识库检索相关段落
    retrieved_segments = search_knowledge_base(user_query)

    # 2. 大模型基于检索结果生成回答
    answer = llm_generate(user_query, retrieved_segments)

    return answer

def search_knowledge_base(query: str) -> list:
    """模拟知识库检索"""
    # 实际平台中,系统会自动进行向量检索
    # 这里仅展示检索的逻辑流程
    print(f"检索查询: {query}")
    print("匹配相关段落...")
    print("返回 Top-K 相关段落")
    return [
        {"title": "保修政策", "content": "...", "score": 0.95},
        {"title": "售后服务", "content": "...", "score": 0.88}
    ]

发布知识库

发布步骤

等待后端处理完成后,可以在知识列表页面点击 “上架” 按钮进行发布。

发布后的注意事项

  • 授权知识库:如果勾选了授权选项,发版后审核周期为1-3个工作日
  • 非授权知识库:通常审核更快,可立即在智能体中使用
  • 版本管理:每次更新知识库内容后需要重新发布
  • 影响范围:知识库更新后,使用该知识库的所有智能体都会同步更新

更新与维护

知识库不是一成不变的,需要定期维护和更新:

# 知识库维护检查清单
- [ ] 定期检查文档是否需要更新
- [ ] 删除过时的知识条目
- [ ] 新增最新的参考资料
- [ ] 验证知识库检索结果的准确性
- [ ] 监控用户常见问题是否覆盖全面

知识库使用限制与注意事项

数据安全建议

  1. 敏感信息处理:不要在知识库中包含密码、密钥、身份证号等敏感信息
  2. 版权合规:确保导入的文档拥有合法使用权
  3. 定期审查:定期检查知识库内容是否准确、合规
  4. 数据备份:重要知识库建议保留原始文档备份

性能优化建议

  • 单个知识库文件数量控制在合理范围内
  • 文档内容结构清晰,使用标题、列表等结构化格式
  • 避免重复或冗余的信息
  • 对于大规模知识库,按主题拆分为多个知识库

常见问题

Q: 知识库更新后,智能体多久能使用新内容?

A: 知识库重新发布后,通常需要等待数据处理完成后即可生效,处理时间取决于文档大小和数量。

Q: 多个智能体可以使用同一个知识库吗?

A: 是的,一个知识库可以被多个智能体同时引用,无需重复创建。

Q: 知识库中的文档支持哪些编码格式?

A: 建议使用UTF-8编码,确保中文内容正确解析。

总结

本文详细介绍了在小艺开放平台上创建知识库的完整流程:

  1. 知识库概述:理解知识库的作用和核心能力
  2. 创建流程:从进入管理页面到选择导入方式的完整步骤
  3. 四种导入方式:文档、图片、数据源、爬虫的详细配置和使用场景
  4. 测试与发布:数据处理、校验和发布的完整流程
  5. 维护与优化:知识库的更新策略和最佳实践

知识库是构建专业级智能体的基础设施。掌握了知识库的创建方法,你的智能体就能够基于专属领域知识提供精准、可靠的回答。下一篇文章将介绍如何在智能体中使用知识库,包括绑定配置、检索参数调优和查询改写等高级话题。


如果这篇文章帮助到你,欢迎点赞 👍、收藏 ⭐ 和关注 🎯!你的支持是我持续创作的动力!

相关资源

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐