离线文档上传

最近更新时间:2024-07-29 16:26:31

我的收藏

说明

1. 客户已经购买过腾讯云的 cos,用在客户自己的其他场景,由客户自行管理该 cos。
2. 客户购买【试用】知识引擎产品,需要做文件的上传下载访问等,这个时候文件所归属的 cos 是知识引擎团队内部申请的 cos, 这个 cos 是由知识引擎产品团队维护的,包括文件存储位置,文件访问权限等;暂不支持使用知识引擎产品的时候将文件保存到客户自行购买的 cos 地址上,cos 桶地址等相关信息在调用临时密钥接口【DescribeStorageCredential】,会给出来。
3. 使用接口调用 SaveDoc 接口的时候,有三个步骤:获取临时密钥,将文件上传到知识引擎的 cos ,调用 SaveDoc 保存;不能一步到位。

名词解释

离线文档:离线文档主要是指知识引擎【知识管理】下面的 【文档】【问答】。
实时文档:实时文档主要是指对话界面中文档的上传。
离线文档



实时文档




离线上传文件需要三个步骤 【其中前两步也适用于实时文档】

1. 获取临时密钥。
2. 将文件上传到知识引擎给定的 cos 中。
3. 调用 SaveDoc 接口,将文件的基础信息存储到知识引擎中。
如下图:




三个步骤的参考:

1、 获取临时密钥

1. 请求参数增加 FileType,FileType 为正常的文件名类型后缀,例如 xlsx、pdf、 docx、png 等。
1.1 填写 FileType 字段,获取的密钥只有上传权限,返回参数使用 UploadPath。
1.2 不填写 FileType 字段,获取的密钥只有下载权限。
1.3 TypeKey 区分是离线文件还是实时文件
1.4 BotBizID 为必填选项。
1.5 每个文件上传都需要获取不同的临时密钥,并且临时密钥具有有效期。
注意:
请注意 TypeKey 取值不要混用,offline 为离线文档上传,realtime 用在实时文档上传;为空默认为 offline。
2. 请求参数增加 IsPublic(区分公有场景还是私有场景)
示例:
公有场景:/public/12332323/21321321321/image/1.png
私有场景: /corp/12332323/12332323/doc/1.pdf
说明:
图片一般为 IsPublic: true; 从体验端,用户端上传图片的时候 IsPublic: true。
接口返回的下面参数用于后续步骤中
参数名
说明
Bucket
存储桶位置 [离线文档和实时文档此处也不同]
TmpSecretId
临时 secretID
TmpSecretKey
临时 secretKey
Token
用于上传的 token
UploadPath
后续步骤中用到,配合上传到 cos
接口返回示例:
{
"code": 0,
"data": {
"Response": {
"Bucket": "qidian-qbot-test-1251316161",
"CorpUin": "0",
"Credentials": {
"TmpSecretId": "AKID92kj37NMnrgxxxxxxxx9qqk5zVp7",
"TmpSecretKey": "FKF/LyKCAXe2rxxxxxxxxxfVEipKg=",
"Token": "GLiqrSyvV6K4gGo1FiXAlRxxxxxxxxxxxxNJeg"
},
"ExpiredTime": 1722234043,
"FilePath": "",
"ImagePath": "",
"Region": "ap-guangzhou",
"RequestId": "771ca2ee-03a7-487f-b77e-ccbb240f3cb8",
"StartTime": 1722233443,
"Type": "cos",
"UploadPath": "/corp/17468272416xxxxxxxxxx6.txt"
}
},
"message": "OK",
"reqId": "749c46ae-8070-457f-84be-5d0daa5cce05"
}

2、调用腾讯云提供的 cos 存储接口,将文件存储到知识引擎 cos 中

参考:PUT Object
说明:
1. 需要用到步骤1中的 TmpSecretId,TmpSecretKey,Token,UploadPath 。
2. 文件上传到 cos[putObject] 不能直接从 API-Explorer 上拷贝代码,下面两个在通过代码上传文件的时候,代码有差异, 具体可以参考下面代码示例(demo):
API-Explorer 使用的是固定密钥。
通过代码上传使用的是临时密钥。

3、调用 SaveDoc,保存元数据

参考:保存文档
几个重要字段说明, 其他字段请参考 api 文档。
字段
说明
IsRefer
为 true 的时候,会在用户端对话的过程中,命中了知识信息会给出相关的链接,效果如下图
CosUrl
步骤1中获取到的 uploadPath
CosHash
步骤2返回头中的 "X-Cos-Hash-Crc64ecma"
Etag
步骤2返回头中的 "Etag"
Opt
文档操作类型:1:批量导入(批量导入问答对);2:文档导入(正常导入单个文档) 当该值为1且导入的是 excel 文件时,会校验 excel 表头是否符合预期
打开外部链接命中知识效果:




离线文档上传代码 demo: