You need to enable JavaScript to run this app.
文档中心
向量数据库VikingDB

向量数据库VikingDB

复制全文
下载 pdf
文档
add
复制全文
下载 pdf
add
概述

/api/knowledge/doc/add 接口用于向已创建的知识库添加文档。

前提条件

完成 API Key 鉴权(在控制台获取 VIKING_API_KEY)后,可调用 API 接口实现导入文档到知识库功能。

请求接口
URI/api/knowledge/doc/add统一资源标识符
请求方法POST客户端对知识库服务请求的操作类型
请求头Content-Type: application/json请求消息类型
Authorization: Bearer {VIKING_API_KEY}鉴权
请求参数
参数子参数类型是否必选默认值参数说明
collection_name--string二选一--知识库名称。长度 [1, 64],必须以英文字母开头,仅支持英文字母、数字和下划线;与 resource_id 至少传一个。

project

--

string

否

default

知识库所属项目,获取方式参见文档API 接入与技术支持
若需要操作指定项目下的知识库,需正确配置该字段。

resource_id--string二选一--知识库唯一 ID;与 collection_name 至少传一个,都不传返回参数错误,同时传入时优先使用 resource_id。

add_type

--

string

是

--

文档添加的方式,可为以下枚举值:

  • url :提供了可以直接公开下载的 url 链接
  • tos :tos 的已授权目录,目前只支持华北区域
  • lark:上传飞书文档时,此参数传 lark

doc_id

--

string

否

--

知识库下的文档唯一标识

  • 只能使用英文字母、数字、下划线_,并以英文字母或下划线开头,不能为空
  • 长度要求:[1, 128]
    注:
  • 多次上传,重复的 doc_id 会进行覆盖(新上传的覆盖旧的)
  • "add_type" == "url" 时,该字段必传
  • "add_type" == "tos" 时,该字段无效,系统会自动从 tos 文件的 “x-tos-meta-doc_id” 中获取
  • "add_type" == "lark" 时,该字段为可选。若未传,会自动生成 doc_id

doc_name

--

string

否

--

文档名称

  • 格式要求:不能包含有特殊用途的字符 < > : ' " / \ | ? * 及空格
  • 长度要求:[1, 256]
  • "add_type" == "url" 时,该字段必传
  • "add_type" == "tos" 时,该字段无效,系统会自动从 tos 中获取,自动以文件名作为 doc_name
  • "add_type" == "lark" 时,该字段无效,系统会自动获取对应飞书文档的标题或本地上传文件名

strategy_resource_id

--

string

否

--

指定处理策略 ID
可通过处理策略的创建或查询结果获取
若未指定则使用库配置

doc_type

--

string

否

--

上传文档的类型

  • 非结构化文档支持类型:txt, doc, docx, pdf, markdown, pptx, ppt, jpeg, png, webp, bmp, mp4, mp3, wav, aac, flac, ogg;
    (.jpg .jpeg 文件 doc_type 均为 jpeg)(.md .markdown 文件 doc_type 均为 markdown)
  • 结构化文档支持类型:xlsx, csv, jsonl
  • 飞书文档支持类型:wiki, docx, sheet, bitable, folder, file(本地上传文件)
    注:
  • add_type 为 url 时,该字段必传
  • add_type 为 tos 时,该字段无效,系统会自动从 tos 文件的扩展名中获取
  • add_type 为 lark 时,该字段必传

description

--

string

否

--

文档描述
描述会参与对图片的检索,如电商场景下,描述可以用于存放图片对应的详细商品说明,售卖亮点,价格等
注:

  • 暂只在 doc_type 为图片类型文档时支持,其他类型文档设置无效。
  • 长度 [0,4000]

lark_file

--

json

否

--

待上传的飞书文档地址
仅当 "add_type" == "lark" 时,该字段必传
支持以下两种配置方式,任选其一:
方式一:通过 URL 导入
{
"url": "链接",
"include_child": false
}
方式二:通过对象类型和 Token 导入
{
"obj_type": "docx",
"obj_token": "xxxx",
"include_child": false
}
字段说明:

  • url:飞书文档链接。支持文档、电子表格、文件夹、Wiki、多维表格及本地上传文档。
  • obj_type:对象类型。可选值包括 wiki、docx、folder、sheet、space、bitable、file。
  • obj_token:与 obj_type 对应的 Token,可从飞书开放平台获取。
  • include_child:是否导入子文档,默认值为 false。

tos_path

--

string

否

--

待上传的 tos 目录或指定文件路径
需要在*控制台/上传文档/tos 上传* 页面完成授权,仅当 "add_type" == "tos" 时,该字段必传

  • 正确示例:
  • tos_path="your_tos/path/"
  • tos_path="your_tos/path/知识库手册.pdf"
  • 错误示例:
  • tos_path="tos://your_tos/path/"
  • tos_path="tos://your_tos/path/知识库手册.pdf"
    注:
  • 导入目录下的文档是一次性的,后续目录下的文档变更不会被自动同步到知识库
  • 导入目录时只会扫描当前目录下的文件,而不会递归查看子目录
  • tos 目录下文档的 doc_id 取值若重复,最终导入知识库只会保留最后一个上传的文档,即 doc_id 唯一
  • 如果目录下文件内容的变更需求,有以下两种方式:
  • 单文件变更:通过 url 方式导入,并指定要替换文档的 doc_id (相对比较快)
  • 批量变更:再次导入 tos 目录,这种方式会对目录下所有的文档做变更检查,并将新文档替换旧文档。由于需要做文件校验,这种方式耗时较长
  • 文件大小限制参考:知识库配额说明

url

--

string

否

--

待上传的文件 url 链接
仅当 "add_type" == "url" 时,该字段必传,字段长度范围是[1, 1024]

metaarray<object> 或对应的 JSON 字符串否[]文档元数据键值对列表,用于存储自定义标签属性;不传时不添加标签。url、lark 导入时有效,tos 导入时由 TOS 元信息生成。
field_namestring否--标签名,长度 [1, 128],不能为 doc_id;需与知识库 fields 定义一致。

field_type

string

否

--

标签类型

  • 支持 "int64","float32","string","bool","list" 类型
  • 需对齐创建知识库时的 field_type
field_value与 field_type 指定类型一致否--标签值
dedupobject否--去重配置对象,包含 content_dedup、doc_name_dedup、auto_skip 三个 bool 子字段;任一去重开关为 true 时执行重复检测。

content_dedup

bool

否

false

内容去重

  • false:不按内容去重
    覆盖相同内容的文档,此时会查找库中相同 doc hash 的文档,查询到的数量为 C。当 content_dedup 为 true,doc_name_dedup 为 false 时:
  • C = 0 时,当做新文档导入,规则参考 dedup 说明
  • C = 1 时,根据 auto_skip 参数配置,给出不同处理策略。
  • C > 1 时,提示报错信息。

doc_name_dedup

bool

否

false

文档名称去重
覆盖相同 doc_name 的文档。此时会查找库中相同 doc_name 的文档,查询到的数量为 D。当 doc_name_dedup 为 true,content_dedup 为 false时:

  • D = 0 时,当做新文档导入,规则参考 dedup 说明
  • D = 1 时,根据 auto_skip 参数配置,给出不同处理策略。
  • D > 1 时,提示报错信息。

auto_skip

bool

否

false

重复文档处理策略
当 auto_skip 参数设置为 true 时,系统会自动跳过重复文档,并返回原始文档 ID;当 auto_skip 参数设置为 false 时,将覆盖后文档,并返回新文档 ID。

响应消息
参数参数说明备注
code状态码
message返回信息
request_id标识每个请求的唯一标识符

data

{
"collection_name": 知识库的名字,
"resource_id": 知识库唯一标识,
"project": 项目名,
"doc_id": 文档唯一标识,
"dedup_info": { // 当 dedup 任一子参数为 true 时返回该参数
"skip": true,
"same_doc_ids":[ ]
}
}

状态码说明

状态码http状态码返回信息状态码说明
0200success成功
1000001401unauthorized鉴权失败
1000002403no permission权限不足
1000003400invalid request:%s非法参数
1000005400collection not existcollection不存在
1001010400doc num is exceed 3000000doc数量已满。点击详情查看知识库配额限制
1709905400A parameter specified in the request is not valid: %s请求参数异常
1709900500Service has some internal Error. Pls Contact With Admin. %s内部异常
完整示例

请求消息

curl -i -X POST \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {VIKING_API_KEY}' \
  https://api-knowledgebase.mlp.cn-beijing.volces.com/api/knowledge/doc/add \
  -d '{
    "collection_name": "test_collection_name",
    "project": "default",
    "add_type": "url",
    "doc_id": "test0123",
    "doc_name": "张某某盗窃案",
    "doc_type": "pdf",
    "url": "https://example.com/path/to/document?X-Tos-Credential=REDACTED&X-Tos-Security-Token=REDACTED&X-Tos-Signature=REDACTED",
    "meta":[
    {"field_name":"行业","field_type":"string", "field_value":"企业服务"},
    {"field_name":"是否公开","field_type":"bool", "field_value":true}
    ]
}'

响应消息

执行成功返回:

HTTP/1.1 200 OK
Content-Length: 43
Content-Type: application/json
 
{
    "code":0,
    "message":"success",
    "request_id":"021695029537650fd001de666660000000000000000000230da93",
    "data":{
        "collection_name": "test_collection_name",
        "resource_id": "kb-8349ef57441ab57",
        "project": "default",
        "doc_id": "test0123"
        }
}

执行失败返回:

HTTP/1.1 400 Bad Request
Content-Length: 43
Content-Type: application/json
 
{"code":1000003, "message":"invalid request:%s", 
"request_id": "021695029757920fd001de6666600000000000000000002569b8f"}
最近更新时间:2026.09.08 20:33:09
这个页面对您有帮助吗?
有用
有用
无用
无用