Skip to main content

知识库文件

知识库文件管理接口,支持文件的列表查询、批量导入、文件夹创建、文本知识新增、重命名、删除及状态重置等操作。同时提供知识库预览功能,支持文件预览信息获取、上传文件预览及Web地址预览。

知识库文件管理

知识库文件列表

接口地址/kl/api/saas/element/list

请求方法GET

权限要求knowledge_file READ

接口描述:分页查询知识库文件列表

请求参数

参数名类型必填说明
pageNoInteger当前页码,默认1
pageSizeInteger页码大小,默认10
containerIdString容器ID
categoryString文件类型:files-文件,virtual_file-虚拟文件,directory-文件夹
parentCodeString父级文件夹编码
eleNameString文件名称(模糊查询)
processStatusInteger处理状态:0-未处理,10-处理中,20-处理成功,30-处理失败
sortRuleInteger排序规则
sortTypeInteger排序方式
pageCodeString页面编码
creatorString创建人
userNameString用户名
enableInteger是否启用
effectTimeStartString生效开始时间
effectTimeEndString生效结束时间
neverExpireInteger是否永不过期
modifyTimeStartString修改开始时间
modifyTimeEndString修改结束时间
createTimeStartString创建开始时间
createTimeEndString创建结束时间

响应示例

{
"records": [
{
"id": 1,
"code": "file_001",
"eleName": "产品说明书.pdf",
"eleSuffix": "pdf",
"category": "files",
"containerId": "kb_001",
"parentCode": "0",
"eleSize": 1024000,
"eleSizeDisplay": "1000KB",
"eleTokenSize": 500,
"processStatus": 20,
"errorMessage": null,
"processCount": 1,
"pageCount": 10,
"neverExpire": 1,
"startTime": null,
"endTime": null,
"enable": 1,
"eleUrl": "${domain}/files/xxx",
"elePreviewUrl": "${domain}/preview/xxx",
"topic": null,
"answer": null,
"similar": [],
"permissionStatus": null,
"online": null,
"creator": "admin",
"creatorName": "管理员",
"createTime": "2024-01-01 10:00:00",
"modifier": "admin",
"modifierName": "管理员",
"modifierTime": "2024-01-01 10:00:00",
"sort": 1,
"tenantId": "0"
}
],
"total": 1,
"totalPage": 1,
"pageNo": 1,
"pageSize": 10
}

请求示例

curl -X GET "${domain}/kl/api/saas/element/list?pageNo=1&pageSize=10&containerId=kb_001" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxx" \
-H "Content-Type: application/json"

批量导入文件

接口地址/openapi/paas/v1/knowledge/file/importFiles

请求方法POST

权限要求knowledge_file WRITE

接口描述:批量导入文件到知识库,使用Multipart form-data方式上传

请求参数

参数名类型必填说明
fileMultipartFile[]文件列表
containerIdString容器ID
parentCodeString父级文件夹编码
neverExpireInteger是否永不过期
startTimeString生效开始时间
endTimeString生效结束时间

响应示例

{
"code": 8200,
"message": "操作成功",
"data": "task_001"
}

请求示例

curl -X POST "${domain}/openapi/paas/v1/knowledge/file/importFiles" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxx" \
-F "file=@file1.pdf" \
-F "file=@file2.docx" \
-F "containerId=kb_001" \
-F "parentCode=0" \
-F "neverExpire=1"

新增文件夹

接口地址/kl/api/saas/element/addFolder

请求方法POST

权限要求knowledge_file WRITE

接口描述:在知识库中创建文件夹

请求参数

参数名类型必填说明
containerIdString容器ID
nameString文件夹名称
parentCodeString父级文件夹编码,默认为0

RequestBody示例

{
"containerId": "kb_001",
"name": "产品文档",
"parentCode": "0"
}

响应示例

{
"code": 8200,
"message": "创建成功",
"data": "folder_001"
}

请求示例

curl -X POST "${domain}/kl/api/saas/element/addFolder" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"containerId": "kb_001",
"name": "产品文档",
"parentCode": "0"
}'

新增文本知识

接口地址/openapi/paas/v1/knowledge/file/text

请求方法POST

权限要求knowledge_file WRITE

接口描述:新增文本类型知识

请求参数

参数名类型必填说明
containerIdString容器ID
nameString知识名称
contentString知识内容
parentCodeString父级文件夹编码,默认为"0"
neverExpireInteger是否永不过期,默认为1
startTimeString生效开始时间
endTimeString生效结束时间
originContentString原始内容

RequestBody示例

{
"containerId": "kb_001",
"name": "产品介绍",
"content": "这是一款优秀的产品...",
"parentCode": "0",
"neverExpire": 1,
"originContent": "原始内容..."
}

响应示例

{
"code": 8200,
"message": "新增成功",
"data": {
"id": 10,
"code": "ele_001",
"eleName": "产品介绍",
"eleSuffix": null,
"category": "virtual_file",
"containerId": "kb_001",
"parentCode": "0",
"eleSize": 0,
"eleSizeDisplay": null,
"eleTokenSize": 0,
"processStatus": 0,
"errorMessage": null,
"processCount": 0,
"pageCount": 0,
"neverExpire": 1,
"startTime": null,
"endTime": null,
"enable": 1,
"eleUrl": null,
"elePreviewUrl": null,
"topic": null,
"answer": null,
"similar": [],
"permissionStatus": null,
"online": null,
"creator": "admin",
"creatorName": "管理员",
"createTime": "2024-01-01 10:00:00",
"modifier": "admin",
"modifierName": "管理员",
"modifierTime": "2024-01-01 10:00:00",
"sort": 1,
"tenantId": "0"
}
}

请求示例

curl -X POST "${domain}/openapi/paas/v1/knowledge/file/text" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"containerId": "kb_001",
"name": "产品介绍",
"content": "这是一款优秀的产品...",
"parentCode": "0",
"neverExpire": 1
}'

文件重命名

接口地址/openapi/paas/v1/knowledge/file/rename

请求方法PUT

权限要求knowledge_file WRITE

接口描述:重命名知识库文件

请求参数

参数名类型必填说明
idInteger文件ID
eleNameString新文件名

RequestBody示例

{
"id": 1,
"eleName": "新产品说明书.pdf"
}

响应示例

{
"code": 8200,
"message": "重命名成功",
"data": null
}

请求示例

curl -X PUT "${domain}/openapi/paas/v1/knowledge/file/rename" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"id": 1,
"eleName": "新产品说明书.pdf"
}'

删除知识库文件

接口地址/openapi/paas/v1/knowledge/file/delete

请求方法DELETE

权限要求knowledge_file WRITE

接口描述:删除知识库文件

请求参数

参数名类型必填说明
idInteger文件ID

响应示例

{
"code": 8200,
"message": "删除成功",
"data": null
}

请求示例

curl -X DELETE "${domain}/openapi/paas/v1/knowledge/file/delete?id=1" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxx" \
-H "Content-Type: application/json"

重置知识库状态

接口地址/openapi/paas/v1/knowledge/file/reset

请求方法PUT

权限要求knowledge_file WRITE

接口描述:重置知识库文件处理状态

请求参数

参数名类型必填说明
idInteger文件ID

响应示例

{
"code": 8200,
"message": "重置成功",
"data": null
}

请求示例

curl -X PUT "${domain}/openapi/paas/v1/knowledge/file/reset?id=1" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxx" \
-H "Content-Type: application/json"

知识库预览

文件预览信息

接口地址/openapi/paas/v1/knowledge/file/loader

请求方法GET

权限要求knowledge_preview READ

接口描述:获取文件预览信息

请求参数

参数名类型必填说明
idInteger文件ID

响应示例

{
"code": 8200,
"message": "操作成功",
"data": {
"id": 1,
"code": "file_001",
"eleName": "产品说明书.pdf",
"eleSuffix": "pdf",
"category": "files",
"containerId": "kb_001",
"parentCode": "0",
"eleSize": 1024000,
"eleSizeDisplay": "1000KB",
"eleTokenSize": 500,
"processStatus": 20,
"errorMessage": null,
"processCount": 1,
"pageCount": 10,
"neverExpire": 1,
"startTime": null,
"endTime": null,
"enable": 1,
"eleUrl": "${domain}/files/xxx",
"elePreviewUrl": "${domain}/preview/xxx",
"topic": null,
"answer": null,
"similar": [],
"permissionStatus": null,
"online": null,
"creator": "admin",
"creatorName": "管理员",
"createTime": "2024-01-01 10:00:00",
"modifier": "admin",
"modifierName": "管理员",
"modifierTime": "2024-01-01 10:00:00",
"sort": 1,
"tenantId": "0",
"convertStatus": 20,
"content": "文件内容..."
}
}

请求示例

curl -X GET "${domain}/openapi/paas/v1/knowledge/file/loader?id=1" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxx" \
-H "Content-Type: application/json"

上传文件并预览

接口地址/openapi/paas/v1/knowledge/file/upload/preview

请求方法POST

权限要求knowledge_preview WRITE

接口描述:上传文件并立即预览,使用Multipart form-data方式上传

请求参数

参数名类型必填说明
fileMultipartFile[]文件列表
containerIdString容器ID

响应示例

{
"code": 8200,
"message": "上传成功",
"data": {
"dataId": "temp_001",
"responses": [
{
"fileName": "产品说明书.pdf",
"fileSize": 1024000,
"status": "success"
}
]
}
}

请求示例

curl -X POST "${domain}/openapi/paas/v1/knowledge/file/upload/preview" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxx" \
-F "file=@product_manual.pdf" \
-F "containerId=kb_001"

Web地址预览

接口地址/openapi/paas/v1/knowledge/file/web

请求方法POST

权限要求knowledge_preview READ

接口描述:预览Web网页内容

请求参数

参数名类型必填说明
urlsList\<KnowledgeElementWebFilePreviewReq>网页URL列表,每项包含url字段
containerIdString容器ID
limitInteger抓取数量限制,默认为10

RequestBody示例

{
"urls": [
{
"url": "https://example.com/article"
},
{
"url": "https://example.com/page2"
}
],
"containerId": "kb_001",
"limit": 10
}

响应示例

{
"code": 8200,
"message": "操作成功",
"data": {
"dataId": "web_preview_001",
"responses": [
{
"fileName": "article",
"fileSize": 5000,
"status": "success"
}
]
}
}

请求示例

curl -X POST "${domain}/openapi/paas/v1/knowledge/file/web" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"urls": [
{"url": "https://example.com/article"}
],
"containerId": "kb_001",
"limit": 10
}'