📘 知识库管理 API 文档

October 20, 2025 · View on GitHub

基础路径/v1/config/knowledgebases
说明:用于创建、查询、更新和删除知识库(Knowledge Base),每个知识库可配置分块策略、检索参数和嵌入模型。


1. 创建知识库

POST /v1/config/knowledgebases

请求体(JSON)

字段类型必填默认值说明
namestring-知识库名称(仅支持字母、数字、下划线和短横线,≤100字符)
descriptionstring知识库描述
embedding_modelstring-嵌入模型名称(必须为系统支持的模型)
chunk_configobject见下表分块配置
retrieval_configobject见下表检索配置

chunk_config(可选)

字段类型默认值说明
chunk_sizeint1024文本分块大小(字符数)
chunk_overlapint50相邻块重叠字符数
parser_typestring"sentence"解析器类型
separatorstring"\n\n"分隔符(用于自定义分块)

retrieval_config(可选)

字段类型默认值说明
retrieval_modestring"hybrid"检索模式("vector", "keyword", "hybrid"
top_kint5返回最相似的 top-k 结果
similarity_thresholdfloat0.5相似度阈值(低于则过滤)
vector_weightfloat0.5向量检索权重(仅 hybrid 模式有效)
enable_rerankboolfalse是否启用重排序
rerank_modelstring""重排序模型名称(若启用)

响应

  • 成功(200)

    {
      "code": 200,
      "message": "知识库创建成功。",
      "data": {
        "id": "kb123...",
        "name": "my_kb",
        "description": "...",
        "embedding_model": "text-embedding-ada-002",
        "chunk_config": { ... },
        "retrieval_config": { ... },
        "created_at": "2025-10-17T10:00:00",
        "updated_at": "2025-10-17T10:00:00"
      }
    }
    
  • 失败(400)

    • 名称已存在 → "创建知识库失败: 知识库名称已存在。"
    • 名称非法 → "知识库名称不能为空。" / "只能包含字母、数字和下划线。"
    • 缺少 embedding_model → "需要提供Embedding模型才能创建知识库。"

2. 获取知识库列表

GET /v1/config/knowledgebases

查询参数

参数类型默认值说明
pageint1页码(≥1)
sizeint10每页数量(≤1000)

⚠️ 系统保留知识库 default_attachments 不会出现在列表中。

响应(200)

{
  "code": 200,
  "message": "获取知识库列表成功",
  "data": {
    "items": [ /* KbEntity 数组 */ ],
    "total": 15,
    "pages": 2,
    "page": 1,
    "size": 10
  }
}

3. 获取单个知识库详情

GET ``/v1/config/knowledgebases/{kb_id}`

路径参数

参数说明
kb_id知识库 ID(以 kb 开头的 UUID)

响应

  • 成功(200):返回完整的 KbEntity
  • 失败(404)"查询知识库失败: 知识库'xxx'不存在。"

4. 更新知识库

PUT /{kb_id}

路径参数

参数说明
kb_id知识库 ID

请求体(JSON)

创建接口 的请求体结构相同,所有字段均为可选
未提供的字段将保留原值。

✅ 支持部分更新(例如只改 description)。

响应

  • 成功(200):返回更新后的 KbEntity
  • 失败(404):知识库不存在
  • 其他错误:返回异常堆栈(开发调试用)

5. 删除知识库

DELETE ``/v1/config/knowledgebases/{kb_id}`

路径参数

参数说明
kb_id知识库 ID

行为说明

删除操作不会删除背后的向量存储库,您可以手动在向量库管理界面删除。

响应

  • 成功(200)
    { "code": 200, "message": "知识库'kb123...'删除成功。" }
    
  • 失败(404):知识库不存在

🔐 错误码汇总

HTTP 状态码错误码说明
400-请求参数错误(如名称非法、缺少必填字段)
404-知识库不存在
500-内部服务异常(如数据库错误)