上传文件到知识库
上传文件到知识库
权限说明
调用本API,需使用API Key鉴权方式。Authorization的值为Bearer
请求参数
待上传的文件。
支持.doc/.txt/.docx/.pdf/.ppt/.pptx 六种格式
.txt文件不能超过10MB
.pdf文件不能超过500MB且不能超过3000页
其他类型文件不能超过50MB且不能超过1000页
账户共享资源知识文件上限为100GB
知识库配置
显示子属性
隐藏子属性
知识库id
数据来源
显示子属性
隐藏子属性
数据来源类型 (file)
上传的数据类型,可选值为:
rawText:文本文档数据。(表格型知识数据暂不支持)
文档处理策略。
contentFormat为rawText时需填写
显示子属性
隐藏子属性
文档解析配置
显示子属性
隐藏子属性
解析方法,可选值为:
(文字提取默认启动,参数不体现)
layoutAnalysis:版面分析
ocr:光学字符识别
pageImageAnalysis:文档图片解析
chartAnalysis:图表解析
tableAnalysis:表格深度解析
显示子属性
隐藏子属性
切片策略配置。
自定义配置(template为custom)时需填写
显示子属性
隐藏子属性
使用哪些切片策略方法,可选值为:
separator:分割符切片,配置切分标识符、切片最⼤⻓度等选项
pattern:正则切片方法,使用正则表达式切片
onePage: 整文件切片,将整篇文档内容存入单一切片
显示子属性
隐藏子属性
正则配置。
chunker.choices[]中包含pattern时必填
显示子属性
隐藏子属性
正则表达式。
chunker.choices[]中包含pattern时需填写
重叠比例。
chunker.choices[]中包含pattern时需填写
匹配命中时,命中内容放置策略(head | tail | drop)。
chunker.choices[]中包含pattern时需填写
分段最大长度。
chunker.choices[]中包含pattern时需填写
chunker.choices[]中包含separator时必填 | 分隔符配置
可选分割符:
"by_page": 分页符
"。":中文句号
",":中文逗号
"?":中文问号
"!":中文叹号
".":英文句号
"!":英文叹号
"?":英文问号
"……":英文省略号
chunker.choices[]中包含时需填写
显示子属性
隐藏子属性
分隔符列表,可以使用分页符。
chunker.choices[]中包含separator时需填写
显示子属性
隐藏子属性
重叠比例。
chunker.choices[]中包含separator时需填写
分段最大长度。
chunker.choices[]中包含separator时需填写
chunker关联元数据,可选值为:
title:增加标题
filename:增加文件名
显示子属性
隐藏子属性
配置方法,可选值为:
ppt:ppt幻灯片
paper:论文文档
resume:简历文档
custom:自定义配置,且切片策略可配置
default:自定义配置(切片策略不生效)
qaPair:结构化问答对
数据增强策略
显示子属性
隐藏子属性
faq:问题生成。通过该字段生成的问题在段落中一定存在明确答案。
spokenQuery:问题生成。通过该字段生成的问题是和段落相关的。
spo:三元知识抽取
shortSummary:段落总结。
以上字段按需增加。
其中如果想要具备问题生成能力,则faq和spokenQuery必须都要传。
显示子属性
隐藏子属性
POST /v2/knowledgeBase?Action=UploadDocuments HTTP/1.1
HOST: qianfan.baidubce.com
Authorization: Bearer <API Key>
Content-Type: multipart/form-data
form-data参数:
file:待上传的文件
payload:json字符串,结构如下:
{
"id":"knowledgeBaseID",
"source": { # 数据来源
"type": "file" # file
},
"contentFormat": "rawText", # rawText (允许配置后续分割策略)
"processOption": {
"template": "custom", # 可选项为 ppt、paper、qaPair、resume、custom、default
"parser": {
"choices": ["layoutAnalysis", "ocr"]
},
"chunker": {
"choices": ["separator"], # separator, pattern, onePage
"separator": { #当choices中包含 separator时需要填写这个参数
"separators": ["!", "?"], # separator,可以新增分页符
"targetLength": 333,
"overlapRate": 0.09
},
// "pattern": { #当choices中包含 pattern时需要填写这个参数
// "markPosition": "head",
// "regex": "正则表达式",
// "targetLength": 333,
// "overlapRate": 0.09
//},
"prependInfo": ["title", "filename"]
},
"knowledgeAugmentation": {
"choices": ["faq"] # faq,spokenQuery、spo、shortSummary按需增加
}
}
}
示例代码
curl --location --request POST 'https://qianfan.baidubce.com/v2/knowledgeBase?Action=UploadDocuments' \
--header 'Authorization: Bearer <API Key>' \
--form 'file= @文件二进制流' \
--form 'payload="{ \"id\":\"4bcfc08f-0f30-4acd-95ec-2bedecc8f795\", \"source\": { \"type\": \"file\" }, \"contentFormat\": \"rawText\", \"processOption\": { \"template\": \"custom\", \"parser\": { \"choices\": [\"layoutAnalysis\"] }, \"chunker\": { \"choices\": [\"separator\"], \"separator\": { \"separators\": [\"。\"], \"targetLength\": 400, \"overlapRate\": 0.25 }, \"prependInfo\": [\"title\", \"filename\"] }, \"knowledgeAugmentation\": { \"choices\": [\"faq\",\"spokenQuery\"] } }}"'
返回响应
requestId
文档id
HTTP/1.1 200 OK
{
"requestId": "46017562-637f-402a-9000-cfe535986d5d",
"documentId": "ee50852a-57ed-44aa-9b8a-6cb7156cf79c"
}
HTTP/1.1 400
{
"code": "InvalidRequestArgumentError",
"message": "Dataset Not Found",
"requestId": "9873898f-4af9-42da-b670-7cd71de8c4d2"
}