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

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


步骤说明
离线上传文件需要三个步骤 【其中前两步也适用于实时文档】:
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 中
说明:
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