概述
add_doc 用于向已创建的指定知识库导入文档。
请求参数
参数 | 子参数 | 类型 | 是否必选 | 默认值 | 参数说明 |
---|
project | -- | string | 否 | default | 知识库所属项目
即在【访问控制】-【资源管理】-【项目】中创建的项目 |
resource_id | -- | string | 否 | -- | 知识库唯一 id
可选择直接传 resource_id,或同时传 name 和 project 作为知识库的唯一标识 |
add_type | -- | string | 是 | -- | 文档添加的方式,可为以下枚举值: - url:提供了可以直接下载的 url 链接
- tos:tos 的已授权目录,目前只支持华北区域
|
doc_id | -- | string | 否 | -- | 知识库下的文档唯一标识 - 只能使用英文字母、数字、下划线_,并以英文字母开头,不能为空
- 长度要求:[1, 128]
注: - 多次上传,重复的 doc_id 会进行覆盖(新上传的覆盖旧的)
- "add_type" == "url" 时,该字段必传
- "add_type" == "tos" 时,该字段无效,系统会自动从 tos 文件的 meta 中获取知识库常见问题
|
doc_name | -- | string | 否 | -- | 文档名称 - 长度要求:[1, 256]
- "add_type" == "url" 时,该字段必传
- "add_type" == "tos" 时,该字段无效,系统会自动从 tos 中获取
|
doc_type | -- | string | 否 | -- | 上传文档的类型
当前支持以下类型:txt, doc, docx, pdf, md(markdown), faq.xlsx, pptx
注: - "add_type" == "url" 时,该字段必传
- "add_type" == "tos" 时,该字段无效,系统会自动从 tos 文件的扩展名中获取
【对于 faq 格式的说明】 - 上传文档时,需要通过特殊的后缀 .faq 进行标识,格式为:文档名.faq.xlsx;文档固定格式为一列问题、一列答案,示例:Q&A问答对示例
- 解析限制说明:支持解析多个 sheet,不超过 50 个;多个 sheet 总行数上限为 1万,超过文档处理失败;对于问题或答案为空的行会跳过不做处理
|
tos_path | -- | string | 否 | -- | - 已授权的 tos 目录(注意需要以/结尾)或指定文件路径
- "add_type" == "url" 时,该字段无效
- "add_type" == "tos" 时,该字段必传
- 系统会自动生成 doc_id,若需手动指定,可参考 知识库常见问题,在 tos 元信息中定义
- 元数据信息上除 doc_id 外的其他信息会被当做文件的 doc_meta 信息保存
注: - 导入目录下的文档是一次性的,后续目录下的文档变更不会被自动同步到知识库
- tos 目录下文档的 doc_id 取值若重复,最终导入知识库只会保留最后一个上传的文档,即 doc_id 唯一
- 如果目录下文件内容的变更需求,有以下两种方式:
- 通过 url 方式导入,并指定要替换文档的 doc_id (相对比较快)
- 通过 tos 方式导入,这种方式会对目录下所有的文档做变更检查,并将新文档替换旧文档。由于需要做文件校验,这种方式耗时较长
- 导入目录时只会扫描目录下的文件,而不会递归查看子目录
|
url | -- | string | 否 | -- | 上传文档的url链接 - 对应 url 链接的文档不超过 20 MB
- "add_type" == "url" 时,该字段必传,字段长度范围是[1,1024]
- add_type 为其他值时,该字段无效
|
meta | | array 或 array 对应的json 字符串 | 否 | -- | - meta 信息
- "add_type" == "url" 时,该字段有效
- add_type 为其他值时,该字段无效
|
| field_name | string | 否 | -- | 字段名 - 不能为 “doc_id”
- 使用英文字母,数字,下划线,并以英文字母开头,长度不得超过 128
- 存在于 collection 的 fields 中的 field_name 可以用于在检索时的字段筛选,不存在的只能用于信息展示(注意类型需要保持一致)
|
| field_type | string | 否 | -- | 字段类型 |
| field_value | 与 field_type 指定类型一致 | 否 | -- | 字段值 |
示例
请求参数
请先完成 SDK 初始化,再运行代码,详见初始化SDK
my_collection = viking_knowledgebase_service.get_collection("example")
# 由tos路径上传doc,注意上传文件夹时以/结尾
tos_path = "your_tos/path/"
my_collection.add_doc(add_type="tos", tos_path=tos_path)
# 由url上传doc
url = ""
my_collection.add_doc(add_type="url", doc_id="", doc_name="", doc_type="", url=url)
返回值
Python 调用执行上面的任务,执行成功无返回信息。