Skip to main content

文件精确查询与分片读取

用于查询指定知识库内的文件元信息和解析分片。文件导入、目录、文本与 QA 管理见 知识库接口

凭据与读取权限

两个接口均要求 Authorization: Bearer tk-... 平台 API Key,并检查密钥创建人是否具备目标知识库读取权限。只具有 ASK_ONLY 问答权限不足以读取原文,渠道契约或旧应用 Token 不能替代本页的平台密钥。

接口模块最低权限
文件精确查询knowledge_fileREAD
分片列表knowledge_previewREAD

两个接口都必须传 containerId(知识库 code)。不能沿用早期资料中“仅传文件 code、自动补齐知识库”的调用方式。

精确查询文件

GET /openapi/paas/v1/knowledge/file/query

Query 参数类型必填说明
containerIdstring当前租户内的知识库 code
codestring条件必填文件业务编码;与 name 至少一个非空
namestring条件必填文件名精确匹配;同时传 code 时优先 code

即使按 code 查询也受 containerId 限制。按名称查到多个同名文件时返回参数错误,请改用唯一文件 code。

curl --get "${BASE_URL}/openapi/paas/v1/knowledge/file/query" \
--header "Authorization: Bearer ${AIS_API_KEY}" \
--data-urlencode "containerId=partner_kb_001" \
--data-urlencode "name=产品白皮书.pdf"

响应字段

外层使用普通响应。element 的完整字段见 KnowledgeElement,包括处理、准入状态与内容版本字段;这些字段依资源状态填充。

字段类型说明
data.elementobject文件元信息
data.element.iddata.element.codeinteger / string文件记录主键、文件业务编码
data.element.containerIdstring知识库 code
data.element.eleNameeleSuffixstring名称、后缀
data.element.eleUrlelePreviewUrlstring原文件及预览地址,可能为空
data.element.eleSizeinteger文件大小,字节
data.element.processStatusprocessPercentinteger处理状态与进度
data.containerobject所属知识库基本信息
data.tagsarray[string]所属知识库的标签,不是分片标签

所属知识库 data.container 的完整字段:

字段JSON 类型说明
idinteger知识库主键,不替代 code
codestring知识库业务编码
namestring名称
categorystring知识库类别
descriptionstring / null描述
typestring容器类型
parentCodestring / null父级编码
visibilityRangestring / null可见范围;不能替代服务端权限判定

响应示例(省略可选展示和版本字段):

{
"code": 8200,
"message": "SUCCESS",
"data": {
"element": {
"id": 1001,
"code": "partner_file_001",
"containerId": "partner_kb_001",
"eleName": "产品白皮书.pdf",
"eleSuffix": "pdf",
"eleSize": 102400
},
"container": {
"code": "partner_kb_001",
"name": "产品知识库"
},
"tags": ["产品"]
}
}

已通过知识库权限校验但未找到匹配文件时,返回业务码 8404;知识库不存在或不可读时认证/权限检查失败。

分片列表

GET /openapi/paas/v1/knowledge/file/chunk/list

Query 参数类型必填说明
containerIdstring知识库 code
codestring文件 code
contentstring分片内容检索词
pageNointeger默认 1
pageSizeinteger默认 10
curl --get "${BASE_URL}/openapi/paas/v1/knowledge/file/chunk/list" \
--header "Authorization: Bearer ${AIS_API_KEY}" \
--data-urlencode "containerId=partner_kb_001" \
--data-urlencode "code=partner_file_001" \
--data-urlencode "pageNo=1" \
--data-urlencode "pageSize=10"

返回标准分页,data[] 是分片:

字段类型说明
idparagraphIdstring分片、段落标识
containerIddataIdstring知识库 code、文件 code
categorystring分片类型,如 paragraphtable
pageinteger页码
contentstring分片内容
summarystring有摘要产物时返回
tagsarray[string]有标签产物时返回
tokenSizeinteger内容 Token 估算值
createTimeinteger创建时间戳
enablestring分片启用状态

响应示例:

{
"code": 8200,
"message": "SUCCESS",
"pageNo": 1,
"pageSize": 10,
"total": 1,
"totalPage": 1,
"data": [{
"id": "chunk_001",
"paragraphId": "paragraph_001",
"containerId": "partner_kb_001",
"dataId": "partner_file_001",
"category": "paragraph",
"page": 1,
"content": "产品部署要求说明。",
"summary": null,
"tags": [],
"tokenSize": 12,
"createTime": 1788575400000,
"enable": null
}]
}

分页顶层字段见 分页响应。createTime 是毫秒时间戳;enable 是字符串型状态,未填充时可空,不应当作 JSON 布尔值。

在知识库可读的前提下,文件不存在或文件不属于给定知识库时返回空分页;尚未产生分片的文件也可能没有结果。不要仅凭空分页判断文档已完成解析。先查询文件状态,再分页获取内容。

接口返回的文件/预览地址可能为受控地址或临时地址,应使用实际返回值,不拼接对象存储地址或长期保存签名链接。