上传文件到知识库
更新时间:2024-09-09
接口描述
上传文件到知识库
权限说明
Authorization需要填写密钥
接口定义
URL | /v2/knowledgeBase?Action=UploadDocuments |
---|---|
Method | POST |
Content-Type | multipart/form-data |
Authorization | 请求签名(此签名为应用工作台密钥) |
请求结构
POST /v2/knowledgeBase?Action=UploadDocuments HTTP/1.1
HOST: qianfan.baidubce.com
Authorization: authorization string
Content-Type: multipart/form-data
form-data参数:
file:上传文件
payload:json字符串,结构如下:
{
"id":"knowledgeBaseID",
"source": { # 数据来源
"type": "file" # file
},
"contentFormat": "", # rawText (允许配置后续分割策略), qa(不支持配置后续分割策略)
"processOption": {
"template": "ppt", # 可选项为 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按需增加
}
}
}
请求头域
除公共头域外,无其它特殊头域。
请求参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
file | file | 是 | 待上传文件地址,文件名限制命名不可包含 < > / \ | : " * ? 特殊符号,文件大小不能超过50MB |
payload | string | 是 | 知识库配置 |
payload参数的结构说明如下:
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
id | string | 是 | 知识库id |
source | dict | 是 | 数据来源 |
source \ type | string | 是 | 数据来源类型 (file) |
contentFormat | string | 是 | 上传的数据类型 (rawText 普通文件上传 | qa 问答对) |
processOption | string | contentFormat为rawText时是 | 文档处理策略 |
processOption \ template | string | 是 | 模板类型 (ppt | paper | qaPair | resume | custom | default) |
processOption \ parser | dict | 否 | 文档解析配置 |
processOption \ parser \ choices | []string | 否 | 解析方法(文字提取默认启动,参数不体现,layoutAnalysis版面分析,ocr按需增加) |
processOption \ chunker | dict | 自定义配置(template为custom)时是 | chunker配置 |
processOption \ chunker \ choices | []string | 是 | 使用哪些chunker方法 (separator | pattern | onePage) |
processOption \ chunker \ separator | dict | chunker.choices[]中包含时是 | 分隔符配置 |
processOption \ chunker \ separator \ separators | []string | chunker.choices[]中包含separator时是 | 分隔符列表,可以使用分页符 |
processOption \ chunker \ separator \ targetLength | int | chunker.choices[]中包含separator时是 | 分段最大长度 |
processOption \ chunker \ separator \ overlapRate | float | chunker.choices[]中包含separator时是 | 重叠比例 |
processOption \ chunker \ pattern | dict | chunker.choices[]中包含时是 | 正则配置 |
processOption \ chunker \ pattern \ markPosition | string | chunker.choices[]中包含pattern时是 | 匹配命中时,命中内容放置策略(head | tail | drop) |
processOption \ chunker \ pattern \ regex | string | chunker.choices[]中包含pattern时是 | 正则表达式 |
processOption \ chunker \ pattern \ targetLength | int | chunker.choices[]中包含pattern时是 | 分段最大长度 |
processOption \ chunker \ pattern \ overlapRate | float | chunker.choices[]中包含pattern时是 | 重叠比例 |
processOption \ chunker \ prependInfo | []string | 否 | chunker关联元数据,可选值未title (增加标题), filename(增加文件名) |
knowledgeAugmentation | dict | 否 | 数据增强策略 |
knowledgeAugmentation \ choices | []string | 否 | faq,spokenQuery、spo、shortSummary按需增加 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
字段 | 类型 | 必然存在 | 说明 |
---|---|---|---|
requestId | string | 是 | requestId |
documentId | string | 是 | 文档id |
示例
请求curl 示例
curl --location --request POST 'https://qianfan.baidubce.com/v2/knowledgeBase?Action=UploadDocuments' \
--header 'Authorization: Bearer authorization string' \
--form 'file=@"/Users/Desktop/xxx.pdf"' \
--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\"] } }}"'
正确响应示例
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"
}