说明
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 中
说明:
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: