Skip to content

知识中枢API文档

约 3176 字大约 11 分钟

2026-03-27

本文档为知识工具集调用指南,向您全面介绍平台可调用的七大核心智能处理工具,涵盖文件解析、多模态大模型文档解析、网页解析、文本切片、实体关系提取、内容结构化抽取及向量化处理能力。文档内容从常规文档提取、多模态信息解析,到网页数据爬取、长文本分块、知识实体挖掘与语义向量化,都提供了明确的能力说明与调用指向。 您可依托本文档快速理解各工具功能边界与技术特性,高效完成工具调用、功能集成与业务适配,为数据处理、知识挖掘、语义检索等研发工作提供标准化、可落地的技术支撑。

轻量化接入无需复杂部署,仅凭专属 APIKey 即可快速启用全栈接口能力,低门槛完成技术融合,加速业务创新迭代。请联系 李亚楠18072748728 申请。

1. 概述

1.1 基础路径

所有接口的基础路径为:https://c4ai.ccccltd.cn/api/kbc

1.2 接口鉴权

所有接口都需要在请求头中包含 X-Authentication 字段,值为申请的apikey。

2. 接口列表

接口名称HTTP 方法路径功能描述
知识检索POST/retrieve根据用户输入和检索策略,返回匹配的知识片段
创建知识库POST/kb/create创建新的知识库
删除知识库POST/kb/remove删除知识库
上传文档POST/doc/upload上传文档到指定知识库
添加文档POST/doc/add添加外部来源的文档到知识库
删除文档POST/doc/remove删除文档
解析文档POST/doc/parse解析上传的文档内容,生成知识库片段
查询文档解析状态GET/doc/id根据文档ID查询文档状态
知识问答POST/chat/stream基于知识库内容与大模型进行对话,流式返回

3. 详细接口说明

3.1 知识检索

接口路径:POST /v1/open/retrieve

功能描述:根据用户输入和检索策略,返回匹配的知识片段

请求体:

{
  "query": "查询语句",
  "kbIds": [123, 456],
  "docIds": [123, 456],
  "retrieveOptions": {
    "type": "hybrid",
    "threshold": 0.8,
    "top": 10,
    "customQuery": {},
    "rankerType": "rrf",
    "denseWeight": 0.5,
    "sparseWeight": 0.5,
    "rrfK": 60
  }
}

请求参数说明:

参数名类型必填描述
queryString是查询语句
kbIdsList<Long>否知识库id列表
docIdsList<Long>否文档id列表
retrieveOptionsObject否检索选项

retrieveOptions参数说明:

参数名类型必填描述
typeString否查询类型,fulltext:全文检索;semantic:语义检索;hybrid:混合检索,默认值:hybrid
thresholdDouble否相似度阈值
topInteger否返回Top N结果,默认值:10
customQueryMap<String, Object>否自定义查询参数,ES场景可以传入ES查询语句
rankerTypeString否排序类型,rrf或weighted,默认rrf
denseWeightFloat否向量检索权重,weighted模式下使用,默认0.5
sparseWeightFloat否BM25检索权重,weighted模式下使用,默认0.5
rrfKInteger否RRF的k参数,默认60

响应:

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "kbId": 123,
      "docId": 456,
      "docOuterId": "doc_outer_123",
      "docPath": "/path/to/document.pdf",
      "docTitle": "文档标题.pdf",
      "chunkId": "chunk_1",
      "chunkType": "text",
      "content": "知识片段内容",
      "retrievalScore": 0.95,
      "rerankScore": 0.92,
      "extra": {}
    }
  ]
}

3.2 创建知识库

接口路径:POST /v1/open/kb/create

功能描述:创建新的知识库

请求体:

{
  "name": "知识库名称",
  "description": "知识库描述",
  "type": 30,
  "embeddingModelId": 1,
  "dimension": 384,
  "customFields": {}
}

请求参数说明:

参数名类型必填描述
idLong否知识库ID
nameString是知识库名称
descriptionString否知识库描述
typeInteger否知识库类型,默认1:自建知识库
embeddingModelIdLong是嵌入模型ID
dimensionInteger否嵌入维度,默认1024
customFieldsMap<String, Object>否自定义字段,适用于自定义ES存储

响应:

{
  "code": 200,
  "message": "success",
  "data": {
    "id": 123,
    "name": "知识库名称",
    "description": "知识库描述",
    "type": 30,
    "embeddingModelId": 1,
    "customFields": {}
  }
}

3.3 删除知识库

接口路径:POST /v1/open/kb/remove

功能描述:删除指定的知识库

请求参数:

参数名类型必填描述
idLong是知识库ID

响应:

{
  "code": 200,
  "message": "success",
  "data": null
}

3.4 上传文档

接口路径:POST /v1/open/doc/upload

功能描述:上传文档到指定知识库

请求方式:multipart/form-data

请求参数:

参数名类型必填描述
fileMultipartFile是文档文件
kbIdLong是知识库ID

响应:

{
  "code": 200,
  "message": "success",
  "data": {
    "id": 123,
    "kbId": 456,
    "fileName": "example.pdf",
    "status": "UPLOADED"
  }
}

3.5 添加文档(外部来源)

接口路径:POST /v1/open/doc/add

功能描述:添加外部来源的文档到知识库

请求参数:

参数名类型必填描述
kbIdLong是知识库ID

请求体:

{
  "docType": 1,
  "outerId": "外部文档ID",
  "fileName": "文档名称",
  "fileExtension": ".pdf",
  "fileSize": 1024000,
  "fileHash": "abc123",
  "url": "文件预览URL",
  "bucketName": "oss-bucket",
  "ossPath": "path/to/file.pdf",
  "docSourceId": 123
}

请求体参数说明:

参数名类型必填描述
docTypeInteger是文档类型: 1:本地文档, 2:问之OSS文档, 3:外部OSS文档, 4:网址URL
outerIdString是外部文档ID
fileNameString是文件名
fileExtensionString否文件扩展名
fileSizeLong否文件大小
fileHashString否文件哈希值
urlString否文件预览URL
bucketNameString否OSS桶名,docType为OSS时必填
ossPathString否OSS文件路径,docType为OSS时必填
docSourceIdLong否文档来源ID,外部OSS时必填

响应:

{
  "code": 200,
  "message": "success",
  "data": {
    "id": 123,
    "kbId": 456,
    "fileName": "example.pdf",
    "status": "UPLOADED"
  }
}

3.6 删除文档

接口路径:POST /v1/open/doc/remove

功能描述:删除指定的文档

请求参数:

参数名类型必填描述
idLong是文档ID

响应:

{
  "code": 200,
  "message": "success",
  "data": null
}

3.7 解析文档

接口路径:POST /v1/open/doc/parse

功能描述:解析上传的文档内容,生成知识库片段

请求体:

{
  "docId": 123,
  "parseStrategy": "default",
  "splitOptions": {
    "splitType": "regex",
    "regex": "\\n\\n",
    "separatorList": ["\\n\\n", "\\n"],
    "maxChunkLength": 500,
    "overlapRate": 0.1
  },
  "enableSummary": false,
  "async": true
}

请求参数说明:

参数名类型必填描述
docIdLong是文档id
parseStrategyString否解析策略,默认自动识别策略
splitOptionsSplitOptions否分块选项
asyncBoolean否是否异步,默认异步

SplitOptions参数说明:

参数名类型必填描述
splitStrategyString否分块策略,默认自动识别策略
regexString否正则表达式
separatorListList<String>否分隔符列表
maxChunkLengthInteger否最大分块长度
overlapRateDouble否重叠率

响应:

{
  "code": 200,
  "message": "success",
  "data": null
}

3.8 查询文档解析状态

接口路径:GET /v1/open/doc/id

功能描述:根据文档ID查询文档状态

请求参数:

参数名类型必填描述
idLong是文档ID

响应:

文档状态:

  • UPLOADED:已上传
  • QUEUED:已队列
  • PROCESSING:解析中
  • PARSED:已解析
  • ERROR:解析失败
{
  "code": 200,
  "message": "success",
  "data": {
    "id": 123,
    "kbId": 456,
    "fileName": "example.pdf",
    "status": "PARSED"
  }
}

3.9 知识问答

接口路径:POST /v1/open/chat/stream

功能描述:基于知识库内容与大模型进行对话,流式返回

请求体:

{
  "query": "如何使用AI知识中心",
  "kbIds": [123, 456],
  "docIds": [789, 101],
  "enableThinking": false,
  "enableQueryRewrite": false,
  "enableRerank": false,
  "rerankCount": 5,
  "llmMode": "quality",
  "retrieveOptions": {
    "type": "hybrid",
    "top": 10
  }
}

请求参数说明:

参数名类型必填描述
queryString是查询语句
kbIdsList<Long>是知识库id列表
docIdsList<Long>否文档id列表
enableThinkingBoolean否是否开启深度思考,默认false
enableQueryRewriteBoolean否是否开启查询重写,默认false
enableRerankBoolean否是否开启重排,默认false
rerankCountInteger否重排取top数,默认5
llmModeString否LLM模式,速度优先speed,质量优先quality
retrieveOptionsRetrieveOptions否检索选项

响应:

流式响应(Content-Type: text/event-stream):

data: {"type":"text","data":"根据"}

data: {"type":"text","data":"知识库"}

data: {"type":"text","data":"内容"}

data: {"type":"text","data":","}

data: {"type":"text","data":"我"}

data: {"type":"text","data":"认为"}

... 

data: {"type":"text","data":"。"}

data: {"type":"end","data":"\n"}

4. 数据结构

4.1 KBChunk

{
  "kbId": 123,
  "DocId": 456,
  "DocOuterId": "doc_outer_123",
  "DocPath": "/path/to/document.pdf",
  "chunkId": "chunk_1",
  "chunkType": "text",
  "content": "知识片段内容",
  "retrievalScore": 0.95,
  "RerankScore": 0.92,
  "extra": {}
}

字段说明:

字段名类型描述
kbIdLong知识库ID
DocIdLong文档ID
DocOuterIdString外部文档id
DocPathString文档路径
chunkIdString分块ID
chunkTypeString分块类型
contentString分块内容
retrievalScoreDouble原始检索分数
RerankScoreDouble重排分数
extraObject额外信息

4.2 KnowledgeBaseDTO

{
  "id": 123,
  "name": "知识库名称",
  "description": "知识库描述",
  "type": 1,
  "embeddingModelId": 456,
  "customFields": {}
}

字段说明:

字段名类型描述
idLong知识库ID
nameString知识库名称
descriptionString知识库描述
typeInteger知识库类型
embeddingModelIdLong嵌入模型ID
customFieldsMap<String, Object>自定义字段,适用于自定义ES存储

4.3 DocumentDTO

{
  "id": 123,
  "kbId": 456,
  "fileName": "example.pdf",
  "url": "/files/example.pdf",
  "status": "PARSED"
}

字段说明:

字段名类型描述
idLong文档ID
kbIdLong知识库ID
fileNameString文件名称
urlString文件URL
statusString文档状态

4.4 DocParseRequest

{
  "docId": 123,
  "parseStrategy": "default",
  "splitOptions": {
    "splitType": "regex",
    "regex": "\\n\\n",
    "separatorList": ["\\n\\n", "\\n"],
    "maxChunkLength": 500,
    "overlapRate": 0.1
  }
}

字段说明:

字段名类型描述
docIdLong文档id
parseStrategyString解析策略
splitOptionsSplitOptions分块选项

4.5 RetrieveRequest

{
  "query": "查询语句",
  "kbIds": [123, 456],
  "docIds": [123, 456],
  "retrieveOptions": {
    "type": "hybrid",
    "threshold": 0.8,
    "top": 10,
    "customQuery": {}
  }
}

字段说明:

字段名类型描述
queryString查询语句
kbIdsList<Long>知识库id列表
docIdsList<Long>文档id列表
retrieveOptionsRetrieveOptions检索选项

4.6 RetrieveOptions

{
  "type": "hybrid",
  "threshold": 0.8,
  "top": 10,
  "customQuery": {}
}

字段说明:

字段名类型描述
typeString查询类型,fulltext:全文检索;semantic:语义检索;hybrid:混合检索,默认值:hybrid
thresholdDouble相似度阈值
topInteger返回Top N结果,默认值:10
customQueryMap<String, Object>自定义查询参数,ES场景可以传入ES查询语句

4.7 SplitOptions

{
  "splitType": "regex",
  "regex": "\\n\\n",
  "separatorList": ["\\n\\n", "\\n"],
  "maxChunkLength": 500,
  "overlapRate": 0.1
}

字段说明:

字段名类型描述
splitTypeString分块类型
regexString正则表达式
separatorListList<String>分隔符列表
maxChunkLengthInteger最大分块长度
overlapRateDouble重叠率

4.8 StreamData

{
  "type": "text",
  "data": "根据知识库内容"
}

字段说明:

字段名类型描述
typeString数据类型,text表示文本内容,end表示结束
dataObject数据内容

5. 响应格式

所有接口的响应格式统一为:

{
  "code": 8000000,
  "message": "success",
  "data": {}
}

6. 状态码说明

状态码描述
200操作成功
400请求参数错误
401未授权
404资源不存在
500服务器内部错误

7. 文档状态说明

状态描述
UPLOADED文档已上传
PARSING文档解析中
PARSED文档解析完成
FAILED文档解析失败

8. 注意事项

  1. 上传文档时,支持的文件类型包括:PDF、Word、Excel、PowerPoint、TXT等
  2. 单个文档大小限制为100MB
  3. 解析文档是异步操作,需要通过查询文档解析状态接口获取解析结果
  4. 知识检索接口的响应时间取决于知识库大小和检索策略

9. 示例调用

9.1 使用 curl 上传文档

curl -X POST "http://localhost:8080/v1/open/doc/upload" \
  -H "X-Authentication: <apikey>" \
  -F "file=@example.pdf" \
  -F "kbId=123"

9.2 使用 curl 检索知识

curl -X POST "http://localhost:8080/v1/open/retrieve" \
  -H "X-Authentication: <apikey>" \
  -H "Content-Type: application/json" \
  -d '{"query": "如何使用AI知识中心", "kbIds": [123], "type": "semantic", "top": 5}'

9.3 使用 curl 创建知识库

curl -X POST "http://localhost:8080/v1/open/kb/create" \
  -H "X-Authentication: <apikey>" \
  -H "Content-Type: application/json" \
  -d '{"name": "技术文档知识库", "description": "存储技术相关文档", "type": 1, "embeddingModelId": 456}'

9.4 使用 curl 解析文档

curl -X POST "http://localhost:8080/v1/open/doc/parse" \
  -H "X-Authentication: <apikey>" \
  -H "Content-Type: application/json" \
  -d '{"docId": 123, "parseStrategy": "default", "splitOptions": {"splitType": "regex", "maxChunkLength": 500, "overlapRate": 0.1}}'

9.5 完整使用流程示例

以下是一个完整的使用流程,展示了从创建知识库到检索知识的全过程:

# 1. 创建知识库
KB_ID=$(curl -s -X POST "http://localhost:8080/v1/open/kb/create" \
  -H "X-Authentication: <apikey>" \
  -H "Content-Type: application/json" \
  -d '{"name": "技术文档知识库", "description": "存储技术相关文档", "type": 1}' | \
  grep -o '"id":[0-9]*' | grep -o '[0-9]*')

echo "创建的知识库ID: $KB_ID"

# 2. 上传文档
DOC_ID=$(curl -s -X POST "http://localhost:8080/v1/open/doc/upload" \
  -H "X-Authentication: <apikey>" \
  -F "file=@example.pdf" \
  -F "kbId=$KB_ID" | \
  grep -o '"id":[0-9]*' | grep -o '[0-9]*')

echo "上传的文档ID: $DOC_ID"

# 3. 解析文档
curl -X POST "http://localhost:8080/v1/open/doc/parse" \
  -H "X-Authentication: <apikey>" \
  -H "Content-Type: application/json" \
  -d "{\"docId\": $DOC_ID, \"parseStrategy\": \"default\", \"splitOptions\": {\"splitType\": \"regex\", \"maxChunkLength\": 500, \"overlapRate\": 0.1}}"

echo "文档解析中..."

# 4. 等待解析完成(实际应用中应该轮询状态)
sleep 30

# 5. 检索知识
curl -X POST "http://localhost:8080/v1/open/retrieve" \
  -H "X-Authentication: <apikey>" \
  -H "Content-Type: application/json" \
  -d "{\"query\": \"如何使用AI知识中心\", \"kbIds\": [$KB_ID], \"retrieveOptions\": {\"type\": \"hybrid\", \"top\": 10}}"

# 6. 知识问答(流式)
echo "\n=== 知识问答(流式) ==="
curl -X POST "http://localhost:8080/v1/open/chat/stream" \
  -H "X-Authentication: <apikey>" \
  -H "Content-Type: application/json" \
  -d "{\"query\": \"如何使用AI知识中心\", \"kbIds\": [$KB_ID]}"

# 7. 删除文档
echo "\n=== 删除文档 ==="
curl -X POST "http://localhost:8080/v1/open/doc/remove" \
  -H "X-Authentication: <apikey>" \
  -H "Content-Type: application/json" \
  -d "{\"id\": $DOC_ID}"

# 8. 删除知识库
echo "\n=== 删除知识库 ==="
curl -X POST "http://localhost:8080/v1/open/kb/remove" \
  -H "X-Authentication: <apikey>" \
  -H "Content-Type: application/json" \
  -d "{\"id\": $KB_ID}"

9.6 知识问答示例

流式问答:

curl -X POST "http://localhost:8080/v1/open/chat/stream" \
  -H "X-Authentication: <apikey>" \
  -H "Content-Type: application/json" \
  -d '{"query": "如何使用AI知识中心", "kbIds": [123]}'