Skip to content

知识库

通过代码仓库,你可以快速搭建企业或个人知识库。 只需将文档上传到仓库,并配置知识库相关流水线,系统就会自动处理文档内容并通过大模型写入知识库。处理后的知识库可供页面问答、Open API 等场景调用,用于快速构建 RAG(Retrieval-Augmented Generation,检索增强生成)应用。

知识准备

了解构建 RAG 应用的流程

1. 使用知识库插件将仓库内容导入知识库

使用云原生构建知识库插件后,仓库中的文档、Issue 等内容会被自动导入知识库。插件运行在云原生构建流水线中,会自动完成文档切片、分词、向量化等处理。知识库构建完成后,即可被下游的 LLM 应用直接使用。

2. 调用云原生构建 Open API 检索并生成回答

知识库构建完成后,可以通过云原生构建的 Open API 进行召回,再结合 LLM 模型生成最终回答。

一个常见的 RAG 应用运行流程如下:

  1. 用户提问
  2. 理解用户问题后,使用 Query 调用知识库检索,获取相关文档片段
  3. 拿到检索结果后,将"用户问题 + 知识上下文"拼接为 Prompt
  4. 将拼接后的 Prompt 发送给 LLM 模型,生成回答并返回给用户

具体使用方法

步骤 1:在流水线中使用知识库内置任务

在代码仓库的 .cnb.yml 中配置流水线,并使用知识库内置任务:

yaml
main:
  push:
    - stages:
        - name: build knowledge base
          type: knowledge:update
          options:
            include: "**/**.md"

主要参数说明:

  • include:指定需要包含的文件,使用 Glob 模式匹配,默认为 **/**.md
  • exclude:指定需要排除的文件,使用 Glob 模式匹配
  • chunkSize:指定文本分块大小,默认为 1500
  • chunkOverlap:指定相邻两个分块之间的重叠 token 数量,默认为 0
  • embeddingModel:嵌入模型,默认为 hunyuan
  • issueSyncEnabled:是否启用 Issue 同步功能,默认为 true
  • issueState:仅同步指定状态的 Issue
  • issueLabels:仅同步指定标签的 Issue
  • issueExcludeLabels:排除带有指定标签的 Issue
  • forceRebuild:是否删除知识库并重新构建,默认为 false
  • ignoreProcessFailures:是否忽略文档处理失败,默认为 false

步骤 2:通过 Open API 使用知识库

知识库构建完成后,可以通过 Open API 对该仓库所属的知识库进行查询检索。

接口信息

  • URL:https://api.cnb.cool/{slug}/-/knowledge/base/query
  • 方法:GET

请求参数

  • query:String,必填,要查询的关键词或问题
  • top_k:Number,默认 5,返回结果的最大数量
  • score_threshold:Number,默认 0,匹配相关性分数阈值

cURL 请求示例:

bash
curl -G "https://api.cnb.cool/cnb/feedback/-/knowledge/base/query" \
-H "accept: application/json" \
-H "Authorization: Bearer ${token}" \
--data-urlencode "query=云原生开发配置自定义按钮"

响应内容

响应为 JSON 格式,包含一个结果数组。每个结果包含以下字段:

  • score: Number,匹配相关性分数,范围 0-1
  • chunk: String,匹配的知识库内容文本
  • metadata: Object,内容元数据

AI 对话中启用知识库

知识库构建完成后,你可以在当前仓库页面的 AI 对话功能中启用它。

如果希望进一步增强体验,还可以通过 .cnb/settings.yml UI 定制配置文件对知识库进行个性化定制:

  • 引入其他仓库配置
  • 定义不同的 AI 角色
  • 定制知识库按钮样式
  • 设置默认仓库和默认角色