Appearance
知识库
通过代码仓库,你可以快速搭建企业或个人知识库。 只需将文档上传到仓库,并配置知识库相关流水线,系统就会自动处理文档内容并通过大模型写入知识库。处理后的知识库可供页面问答、Open API 等场景调用,用于快速构建 RAG(Retrieval-Augmented Generation,检索增强生成)应用。
知识准备
了解构建 RAG 应用的流程
1. 使用知识库插件将仓库内容导入知识库
使用云原生构建知识库插件后,仓库中的文档、Issue 等内容会被自动导入知识库。插件运行在云原生构建流水线中,会自动完成文档切片、分词、向量化等处理。知识库构建完成后,即可被下游的 LLM 应用直接使用。
2. 调用云原生构建 Open API 检索并生成回答
知识库构建完成后,可以通过云原生构建的 Open API 进行召回,再结合 LLM 模型生成最终回答。
一个常见的 RAG 应用运行流程如下:
- 用户提问
- 理解用户问题后,使用 Query 调用知识库检索,获取相关文档片段
- 拿到检索结果后,将"用户问题 + 知识上下文"拼接为 Prompt
- 将拼接后的 Prompt 发送给 LLM 模型,生成回答并返回给用户
具体使用方法
步骤 1:在流水线中使用知识库内置任务
在代码仓库的 .cnb.yml 中配置流水线,并使用知识库内置任务:
yaml
main:
push:
- stages:
- name: build knowledge base
type: knowledge:update
options:
include: "**/**.md"主要参数说明:
include:指定需要包含的文件,使用 Glob 模式匹配,默认为**/**.mdexclude:指定需要排除的文件,使用 Glob 模式匹配chunkSize:指定文本分块大小,默认为 1500chunkOverlap:指定相邻两个分块之间的重叠 token 数量,默认为 0embeddingModel:嵌入模型,默认为hunyuanissueSyncEnabled:是否启用 Issue 同步功能,默认为trueissueState:仅同步指定状态的 IssueissueLabels:仅同步指定标签的 IssueissueExcludeLabels:排除带有指定标签的 IssueforceRebuild:是否删除知识库并重新构建,默认为falseignoreProcessFailures:是否忽略文档处理失败,默认为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-1chunk: String,匹配的知识库内容文本metadata: Object,内容元数据
AI 对话中启用知识库
知识库构建完成后,你可以在当前仓库页面的 AI 对话功能中启用它。
如果希望进一步增强体验,还可以通过 .cnb/settings.yml UI 定制配置文件对知识库进行个性化定制:
- 引入其他仓库配置
- 定义不同的 AI 角色
- 定制知识库按钮样式
- 设置默认仓库和默认角色