离线文档上传

最近更新时间:2025-05-20 00:00:52

我的收藏

名词解释

离线文档:离线文档主要是指智能体开发平台【知识管理】下面的 【文档】【问答】。

实时文档:实时文档主要是指对话界面中文档的上传。




步骤说明

离线上传文件需要三个步骤 【其中前两步也适用于实时文档】:
1. 调用 DescribeStorageCredential 接口,获取临时密钥。
2. 通过临时密钥,通过 COS 的SDK上传到 COS。
3. 调用 SaveDoc接口,将文件的基础信息存储到智能体开发平台中。如下图所示:





1. 获取临时密钥

1.1 请求参数增加 FileType,FileType 为正常的文件名类型后缀,例如 xlsx、pdf、 docx、png 等。
填写 FileType 字段,获取的密钥只有上传权限,返回参数使用 UploadPath。
不填写 FileType 字段,获取的密钥只有下载权限。
TypeKey 区分是离线文件还是实时文件
BotBizID 为必填选项。
每个文件上传都需要获取不同的临时密钥,并且临时密钥具有有效期。
注意:
请注意 TypeKey 取值不要混用,offline 为离线文档上传,realtime 用在实时文档上传;为空默认为 offline。
1.2 请求参数增加 IsPublic(区分公有场景还是私有场景)
示例:
公有场景:/public/12332323/21321321321/image/1.png
私有场景: /corp/12332323/12332323/doc/1.pdf
说明:
IsPublic 用于上传文件或图片时选择场景。离线文档上传时,IsPublic 为 false。实时文档上传时,如果是图片, IsPublic 为 true;如果是其他类型的文件,IsPublic 为 false。
接口返回的下面参数用于后续步骤中。
参数名
说明
Bucket
存储桶位置 [离线文档和实时文档此处也不同]
TmpSecretId
临时 secretID
TmpSecretKey
临时 secretKey
Token
用于上传的 token
UploadPath
后续步骤中用到,配合上传到 cos
接口返回示例:
{
"code": 0,
"data": {
"Response": {
"Bucket": "qidian-qbot-test-1251316161",
"CorpUin": "0",
"Credentials": {
"TmpSecretId": "*******************************",
"TmpSecretKey": "*******************************",
"Token": "*******************************"
},
"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 中

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

3. 调用 SaveDoc,保存元数据

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






代码 demo