知识库文件
知识库文件管理接口,支持文件的列表查询、批量导入、文件夹创建、文本知识新增、重命名、删除及状态重置等操作。同时提供知识库预览功能,支持文件预览信息获取、上传文件预览及Web地址预览。
知识库文件管理
知识库文件列表
接口地址:/kl/api/saas/element/list
请求方法:GET
权限要求:knowledge_file READ
接口描述:分页查询知识库文件列表
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| pageNo | Integer | 是 | 当前页码,默认1 |
| pageSize | Integer | 是 | 页码大小,默认10 |
| containerId | String | 否 | 容器ID |
| category | String | 否 | 文件类型:files-文件,virtual_file-虚拟文件,directory-文件夹 |
| parentCode | String | 否 | 父级文件夹编码 |
| eleName | String | 否 | 文件名称(模糊查询) |
| processStatus | Integer | 否 | 处理状态:0-未处理,10-处理中,20-处理成功,30-处理失败 |
| sortRule | Integer | 否 | 排序规则 |
| sortType | Integer | 否 | 排序方式 |
| pageCode | String | 否 | 页面编码 |
| creator | String | 否 | 创建人 |
| userName | String | 否 | 用户名 |
| enable | Integer | 否 | 是否启用 |
| effectTimeStart | String | 否 | 生效开始时间 |
| effectTimeEnd | String | 否 | 生效结束时间 |
| neverExpire | Integer | 否 | 是否永不过期 |
| modifyTimeStart | String | 否 | 修改开始时间 |
| modifyTimeEnd | String | 否 | 修改结束时间 |
| createTimeStart | String | 否 | 创建开始时间 |
| createTimeEnd | String | 否 | 创建结束时间 |
响应示例
{
"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方式上传
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| file | MultipartFile[] | 是 | 文件列表 |
| containerId | String | 是 | 容器ID |
| parentCode | String | 否 | 父级文件夹编码 |
| neverExpire | Integer | 是 | 是否永不过期 |
| startTime | String | 否 | 生效开始时间 |
| endTime | String | 否 | 生效结束时间 |
响应示例
{
"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
接口描述:在知识库中创建文件夹
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| containerId | String | 是 | 容器ID |
| name | String | 是 | 文件夹名称 |
| parentCode | String | 否 | 父级文件夹编码,默认为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
接口描述:新增文本类型知识
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| containerId | String | 是 | 容器ID |
| name | String | 是 | 知识名称 |
| content | String | 是 | 知识内容 |
| parentCode | String | 否 | 父级文件夹编码,默认为"0" |
| neverExpire | Integer | 是 | 是否永不过期,默认为1 |
| startTime | String | 否 | 生效开始时间 |
| endTime | String | 否 | 生效结束时间 |
| originContent | String | 否 | 原始内容 |
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
接口描述:重命名知识库文件
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | Integer | 是 | 文件ID |
| eleName | String | 是 | 新文件名 |
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
接口描述:删除知识库文件
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | Integer | 是 | 文件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
接口描述:重置知识库文件处理状态
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | Integer | 是 | 文件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
接口描述:获取文件预览信息
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | Integer | 是 | 文件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方式上传
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| file | MultipartFile[] | 是 | 文件列表 |
| containerId | String | 是 | 容器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网页内容
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| urls | List\<KnowledgeElementWebFilePreviewReq> | 是 | 网页URL列表,每项包含url字段 |
| containerId | String | 是 | 容器ID |
| limit | Integer | 否 | 抓取数量限制,默认为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
}'