私有知识导入目前支持QA(Question&Answer)、文件、图片、私有模型四种方式,使用QA、文件、私有模型做私有知识导入与管理,私有化有保证,应用较多。 私有知识涉及如下的方式方法:
| 方式编号 | 方式 | 具体操作 | 特点 |
|---|
| RAG-001-FILE | 用SophNet平台自带的RAG功能,导入文件 | 调用文件上传接口,该接口自动完成文件导入。首先解析文件,即文件内容转为大模型能够理解的Markdown格式,剔除各个文件类型独有的格式化语言特性。然后建立索引并交由知识库管理引擎,最后通过在模型推理前插入检索算法流程完成知识导入模型,详情可参考文件检索。后续可以通过接口:文件列表查询、文件详情获取和文件删除管理导入的文件。 | 该方式支持广泛的文件类型,包括:.doc、.docx、.xls、xlsx、.pdf、.txt、.pptx、.ppt,检索精度高,可扩展性高,对私有化数据友好。 |
| RAG-002-IMG | 用SophNet平台自带的RAG功能,导入图片 | 调用文件上传接口,该接口自动完成图片文件导入。该接口首先使用视觉模型完成图片解析,然后存入云端文件系统备份,建立索引并交由知识库管理引擎,最后在模型推理前插入检索算法流程完成知识导入模型,以支持图片检索。后续可以通过接口:文件列表查询、文件详情获取和文件删除管理导入的图片文件。 | 该方式支持广泛的文件类型,包括:.jpg、.png、base64,可扩展性高,可解析图片内容,对私有化数据友好。 |
| RAG-003-QA | 用SophNet平台自带的RAG功能,导入QA Table | 调用QA Table上传接口,该接口自动完成QA Table导入。该接口对QA Table中Q建立索引并交由知识库管理引擎,最后在模型推理前插入检索算法流程完成知识导入模型,详情可参考QA检索。后续可以通过接口:QA Table修改、QA Table列表查询和QA Table删除管理导入的QA Table。 | 高性能,检索精度高,私有化数据。适合简短的纯文本知识。 |
| RET-001-HOST | 用SophNet平台的模型托管功能,导入私有模型 | 搜集特征语料对模型做全量训练(Retrain),用算能模型托管服务完成私有化部署,流程可参考私有模型托管说明接口。 | 精度高,但成本高、耗时长。 |
功能描述:为服务新增文件知识,此接口为异步接口,文件上传成功后会自动注入,无需再次注入我的模型。
请求地址:https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/files
请求方式:POST
| 名称 | 类型 | 必填 | 描述 |
|---|
| serviceId | String | 是 | 服务id |
| 名称 | 类型 | 必填 | 描述 |
|---|
| Content-Type | String | 是 | 固定值multipart/form-data |
| Authorization | String | 是 | "Bearer " + Apikey |
| 名称 | 类型 | 必填 | 描述 |
|---|
| file | file | 是 | 文档,支持pdf,docx,xlsx,txt,pptx格式,大小<100MB |
| 名称 | 值 | 描述 |
|---|
| Content-Type | application/json | |
| 名称 | 类型 | 值 |
|---|
| status | string | 请求状态码,0为成功 |
| message | string | 请求执行状态 |
| result | object | 执行结果 |
| result.id | string | 文档id |
| result.title | string | 文档标题 |
| result.snippet | string | 文档内容片段,固定为null |
| result.status | string | 文档状态,固定为UPLOADING(上传中)。 |
HTTP API
curl --location --request POST 'https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/files' \
--header "Authorization: Bearer $API_KEY" \
--header "Content-Type: multipart/form-data" \
--form 'file=@"YOUR_DOCUMENT"' \
--form 'easyllm_id="YOUR_SERVICE_ID"'
{
"status": 0,
"message": "请求成功",
"result": {
"id": "4pw0y0Foa0lNubkPUriLkA",
"title": "你的文档标题",
"snippet": null,
"status": "UPLOADING",
"createdAt": "2025-03-17T06:21:09.175+00:00"
},
"timestamp": 1742192469480
}
功能描述:查询服务已绑定文件列表
请求地址:https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/files
请求方式:GET
| 名称 | 类型 | 必填 | 描述 |
|---|
| serviceId | String | 是 | 服务id |
| 名称 | 类型 | 必填 | 描述 |
|---|
| pageNum | Number | 否 | 分页页数 |
| pageSize | Number | 否 | 分页页大小 |
| 名称 | 类型 | 必填 | 描述 |
|---|
| Content-Type | String | 是 | 固定值application/json |
| Authorization | String | 是 | "Bearer" + Apikey |
| 名称 | 值 | 描述 |
|---|
| Content-Type | application/json | |
| 名称 | 类型 | 值 |
|---|
| status | string | 请求状态码,0为成功 |
| message | string | 请求执行状态 |
| result | object | 执行结果 |
| result.pageNum | number | 当前页码 |
| result.pageSize | number | 当前页面尺寸 |
| result.size | number | 当前页面item数量 |
| result.pages | number | 当总页数 |
| result.total | number | 总item数量 |
| result.list | List<object> | 文档列表 |
| result.list[0].id | string | 文档id |
| result.list[0].title | string | 文档标题 |
| result.list[0].snippet | string | 文档内容片段 |
| result.list[0].status | string | 文档状态,UPLOADING为上传中,ERROR为上传失败,ENABLED为已启用,NOT_ENABLED为未启用。状态为UPLOADING不支持删除,状态为UPLOADING、ERROR时不支持查看文件内容。 |
HTTP API
curl --location --request GET 'https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/files?pageNum=1&&pageSize=10' \
--header "Authorization: Bearer $API_KEY" \
--header "Content-Type: application/json" \
{
"status": 0,
"message": "请求成功",
"result": {
"pageNum": 1,
"pageSize": 10,
"size": 1,
"pages": 1,
"total": 1,
"list": [
{
"id": "4pw0y0Foa0lNubkPUriLkA",
"title": "你的文档标题",
"snippet": "文档内容片段",
"status": "ENABLED",
"createdAt": "2025-03-17T06:21:09.175+00:00"
}
]
},
"timestamp": 1740536970407
}
功能描述:查询文件详情,文件状态为ENABLED和NOT_ENABLED才支持查看,否则将报错。
请求地址:https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/files/{fileId}
请求方式:GET
| 名称 | 类型 | 必填 | 描述 |
|---|
| serviceId | String | 是 | 服务id |
| fileId | String | 是 | 文件id |
| 名称 | 类型 | 必填 | 描述 |
|---|
| Content-Type | String | 是 | 固定值application/json |
| Authorization | String | 是 | "Bearer" + Apikey |
| 名称 | 值 | 描述 |
|---|
| Content-Type | application/json | |
| 名称 | 类型 | 值 |
|---|
| status | string | 请求状态码,0为成功 |
| message | string | 请求执行状态 |
| result | object | 执行结果 |
| result.id | string | 文档id |
| result.title | string | 文档标题 |
| result.content | string | 文档内容 |
| result.downloadUrl | string | 文档源文件下载地址 |
HTTP API
curl --location --request GET 'https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/files/{fileId}' \
--header "Authorization: Bearer $API_KEY" \
--header "Content-Type: application/json" \
{
"status": 0,
"message": "请求成功",
"result": {
"id": "4pw0y0Foa0lNubkPUriLkA",
"title": "你的文档标题",
"content": "文档内容",
"downloadUrl": "下载地址",
"createdAt": "2025-03-17T06:21:09.175+00:00"
},
"timestamp": 1742192469480
}
功能描述:删除服务中的指定文件,文件状态为ERROR、ENABLED和NOT_ENABLED才支持删除,否则将报错。
请求地址:https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/files/{fileId}
请求方式:DELETE
| 名称 | 类型 | 必填 | 描述 |
|---|
| serviceId | String | 是 | 服务id |
| fileId | String | 是 | 文件id |
| 名称 | 类型 | 必填 | 描述 |
|---|
| Content-Type | String | 是 | 固定值application/json |
| Authorization | String | 是 | "Bearer" + Apikey |
| 名称 | 值 | 描述 |
|---|
| Content-Type | application/json | |
| 名称 | 类型 | 值 |
|---|
| status | string | 请求状态码,0为成功 |
| message | string | 请求执行状态 |
| result | object | 执行结果 |
HTTP API
curl --location --request DELETE 'https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/files/{fileId}' \
--header "Authorization: Bearer $API_KEY" \
--header "Content-Type: application/json" \
{
"status": 0,
"message": "请求成功",
"timestamp": 1742192469480
}
- 检索说明:检索采用RRF混合检索,检索目标为文件名称和文件内容。
- 检索文件范围:仅仅状态为ENABLED的文件才会被检索。
- 向量检索Embedding模型:使用Embeddings模型接口中的
text-embeddings模型。 - 文件数量限制:每个服务下最多300个有效文件。
- 文件字数限制:每个文件最多512万字。
功能描述:为服务新增QA记录
请求地址:https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/qa-records
请求方式:POST
| 名称 | 类型 | 必填 | 描述 |
|---|
| serviceId | String | 是 | 服务id |
| 名称 | 类型 | 必填 | 描述 |
|---|
| question | String | 是 | QA问题,最长为200个字符 |
| answer | String | 是 | QA答案,最长为1000个字符 |
| 名称 | 类型 | 必填 | 描述 |
|---|
| Content-Type | String | 是 | 固定值application/json |
| Authorization | String | 是 | "Bearer" + Apikey |
| 名称 | 值 | 描述 |
|---|
| Content-Type | application/json | |
| 名称 | 类型 | 值 |
|---|
| status | string | 请求状态码,0为成功 |
| message | string | 请求执行状态 |
| result | object | 执行结果 |
| result.id | string | QA记录id |
| result.question | string | QA记录问题 |
| result.answer | string | QA记录答案 |
HTTP API
curl --location --request POST 'https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/qa-records' \
--header "Authorization: Bearer $API_KEY" \
--header "Content-Type: application/json" \
--data-raw '{
"question": "你是谁?",
"answer": "我是SophNet智能助手。"
}'
{
"status": 0,
"message": "请求成功",
"result": {
"id": "79CNI1obN033Wi8mydOrZC",
"question": "你是谁?",
"answer": "我是SophNet智能助手。",
"createdAt": "2025-03-14T06:23:42.194+00:00"
},
"timestamp": 1742192469480
}
功能描述:修改服务QA记录
请求地址:https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/qa-records/{qaId}
请求方式:POST
| 名称 | 类型 | 必填 | 描述 |
|---|
| serviceId | String | 是 | 服务id |
| qaId | String | 是 | QA记录id |
| 名称 | 类型 | 必填 | 描述 |
|---|
| question | String | 是 | QA问题,最长为200个字符 |
| answer | String | 是 | QA答案,最长为1000个字符 |
| 名称 | 类型 | 必填 | 描述 |
|---|
| Content-Type | String | 是 | 固定值application/json |
| Authorization | String | 是 | "Bearer" + Apikey |
| 名称 | 值 | 描述 |
|---|
| Content-Type | application/json | |
| 名称 | 类型 | 值 |
|---|
| status | string | 请求状态码,0为成功 |
| message | string | 请求执行状态 |
| result | object | 执行结果 |
| result.id | string | QA记录id |
| result.question | string | QA记录问题 |
| result.answer | string | QA记录答案 |
HTTP API
curl --location --request POST 'https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/qa-records/{qaId}' \
--header "Authorization: Bearer $API_KEY" \
--header "Content-Type: application/json" \
--data-raw '{
"question": "你是谁?",
"answer": "我是SophNet智能助手。"
}'
{
"status": 0,
"message": "请求成功",
"result": {
"id": "79CNI1obN033Wi8mydOrZC",
"question": "你是谁?",
"answer": "我是SophNet智能助手。",
"createdAt": "2025-03-14T06:23:42.194+00:00"
},
"timestamp": 1742192469480
}
功能描述:查询服务已绑定QA记录列表
请求地址:https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/qa-records
请求方式:GET
| 名称 | 类型 | 必填 | 描述 |
|---|
| serviceId | String | 是 | 服务id |
| 名称 | 类型 | 必填 | 描述 |
|---|
| pageNum | Number | 否 | 分页页数 |
| pageSize | Number | 否 | 分页页大小 |
| 名称 | 类型 | 必填 | 描述 |
|---|
| Content-Type | String | 是 | 固定值application/json |
| Authorization | String | 是 | "Bearer" + Apikey |
| 名称 | 值 | 描述 |
|---|
| Content-Type | application/json | |
| 名称 | 类型 | 值 |
|---|
| status | string | 请求状态码,0为成功 |
| message | string | 请求执行状态 |
| result | object | 执行结果 |
| result.pageNum | number | 当前页码 |
| result.pageSize | number | 当前页面尺寸 |
| result.size | number | 当前页面item数量 |
| result.pages | number | 当总页数 |
| result.total | number | 总item数量 |
| result.list | List<object> | QA记录文档列表 |
| result.list[0].id | string | QA记录文档id |
| result.list[0].question | string | QA记录文档问题 |
| result.list[0].answer | string | QA记录文档答案 |
HTTP API
curl --location --request GET 'https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/qa-records?pageNum=1&&pageSize=10' \
--header "Authorization: Bearer $API_KEY" \
--header "Content-Type: application/json" \
{
"status": 0,
"message": "请求成功",
"result": {
"pageNum": 1,
"pageSize": 10,
"size": 1,
"pages": 1,
"total": 1,
"list": [
{
"id": "79CNI1obN033Wi8mydOrZC",
"question": "你是谁?",
"answer": "我是SophNet智能助手。",
"createdAt": "2025-03-14T06:23:42.194+00:00"
}
]
},
"timestamp": 1740536970407
}
功能描述:删除服务中的指定QA记录
请求地址:https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/qa-records/{qaId}
请求方式:DELETE
| 名称 | 类型 | 必填 | 描述 |
|---|
| serviceId | String | 是 | 服务id |
| qaId | String | 是 | QA记录id |
| 名称 | 类型 | 必填 | 描述 |
|---|
| Content-Type | String | 是 | 固定值application/json |
| Authorization | String | 是 | "Bearer" + Apikey |
| 名称 | 值 | 描述 |
|---|
| Content-Type | application/json | |
| 名称 | 类型 | 值 |
|---|
| status | string | 请求状态码,0为成功 |
| message | string | 请求执行状态 |
| result | object | 执行结果 |
HTTP API
curl --location --request DELETE 'https://www.sophnet.com/api/open-apis/service/{serviceId}/kn/qa-records/{qaId}' \
--header "Authorization: Bearer $API_KEY" \
--header "Content-Type: application/json"
{
"status": 0,
"message": "请求成功",
"timestamp": 1742192469480
}
- 检索说明:检索采用RRF混合检索,检索目标为问题Q。
- 向量检索Embedding模型:使用Embeddings模型接口中的
text-embeddings模型。
将私有知识引入到模型中转为私有模型。首先需要客户使用私有知识对模型做全量训练,然后利用SophNet提供的私有模型托管服务,完成私有部署。创建SophNet模型托管服务流程: 进入控制台->点击创建新项目或者现有项目->添加新服务->选择ModelHosting->填入私有模型信息并确认