add_doc_v2 用于向已创建的知识库添加文档。
| 参数 | 类型 | 是否必传 | 默认值 | 参数说明 |
|---|---|---|---|---|
| collectionName | String | 否 | -- | 知识库名称 |
projectName | String | 否 | default | 知识库所属项目,获取方式参考文档 API 接入与技术支持 |
resourceId | String | 否 | -- | 知识库唯一 ID |
docId | String | 是 | -- | 知识库下的文档唯一标识
|
docName | String | 否 | -- | 文档名称
|
docType | String | 否 | -- | 上传文档的类型
|
description | String | 否 | -- | 文档描述
|
tagList | List | 否 | -- | Tag 为结构体,包含
|
uri | String | 是 | -- | 待上传的文件 uri 链接,示例:
|
| path_segments | List | 否 | -- | 文档所在的目录路径,列表元素按目录层级顺序填写。例如:List.of("产品文档", "V2.0", "使用手册") |
| 参数 | 类型 | 参数说明 | 备注 |
|---|---|---|---|
| code | Integer | 状态码 | |
| message | String | 返回信息 | |
| requestId | String | 标识每个请求的唯一标识符 | |
| data | AddDocResponseData | AddDocResponseData |
| 字段 | 类型 | 参数说明 |
|---|---|---|
| collectionName | String | 知识库的名字 |
| resourceId | String | 知识库唯一标识 |
| project | String | 项目名 |
| docId | String | 文档唯一标识 |
| dedupInfo | DedupInfo | DedupInfo |
| moreInfo | String | 更多信息 |
| 字段 | 类型 | 参数说明 |
|---|---|---|
| skip | Boolean | 是否跳过(去重命中) |
| sameDocIds | List | 重复的文档 id 列表 |
| 状态码 | http状态码 | 返回信息 | 状态码说明 |
|---|---|---|---|
| 0 | 200 | success | 成功 |
| 1000001 | 401 | unauthorized | 鉴权失败 |
| 1000002 | 403 | no permission | 权限不足 |
| 1000003 | 400 | invalid request: %s | 非法参数 |
| 1000005 | 400 | collection not exist | collection 不存在 |
| 1001002 | 400 | invalid request: doc_id:xxx is duplicated with doc_ids:xxx | 文档内容与现有文档重复 |
| 1001010 | 400 | doc num is exceed 3000000 | doc 数量已达限额,点击详情查看知识库配额限制 |
首次使用知识库 SDK ,可参考 使用说明
本示例演示了知识库 Java SDK 中 AddDocV2 的基础使用方法,使用前需配置 API Key 鉴权参数(VIKING_API_KEY)。
package com.volcengine.vikingdb.runtime.knowledge.examples.doc_add_v2; import com.fasterxml.jackson.databind.ObjectWriter; import com.volcengine.vikingdb.runtime.core.ApiClient; import com.volcengine.vikingdb.runtime.core.RequestAddition; import com.volcengine.vikingdb.runtime.core.auth.Auth; import com.volcengine.vikingdb.runtime.core.auth.AuthWithApiKey; import com.volcengine.vikingdb.runtime.enums.Scheme; import com.volcengine.vikingdb.runtime.knowledge.model.CollectionMeta; import com.volcengine.vikingdb.runtime.knowledge.model.request.AddDocV2Request; import com.volcengine.vikingdb.runtime.knowledge.model.response.AddDocResponse; import com.volcengine.vikingdb.runtime.knowledge.service.KnowledgeCollectionClient; import com.volcengine.vikingdb.runtime.knowledge.service.KnowledgeService; import java.util.List; import java.util.UUID; public class Main { private static final ObjectWriter PRETTY_JSON = ApiClient.objectMapper.writerWithDefaultPrettyPrinter(); private static final Scheme SCHEME = Scheme.HTTPS; private static final String HOST = "api-knowledgebase.mlp.cn-beijing.volces.com"; private static final String REGION = "cn-beijing"; private static final String PROJECT = "default"; private static final String COLLECTION_NAME = "<YOUR_COLLECTION_NAME>"; private static final String COLLECTION_RESOURCE_ID = ""; public static void main(String[] args) throws Exception { String apiKey = getEnv("VIKING_API_KEY"); if (apiKey.isEmpty()) { System.out.println("missing_auth: set VIKING_API_KEY"); return; } Auth auth = new AuthWithApiKey(apiKey); KnowledgeService service = newKnowledgeService(auth); KnowledgeCollectionClient kc = service.collection(defaultCollectionMeta()); String docId = "java-example-doc-" + UUID.randomUUID(); String uri = "https://pdf.dfcfw.com/pdf/H3_AP202504281663850212_1.pdf"; AddDocV2Request req = AddDocV2Request.builder() .docId(docId) .docName("Java SDK Knowledge Doc AddV2 Example") .docType("pdf") .uri(uri) .pathPrefix(List.of("产品文档", "V2.0", "使用手册")) .build(); AddDocResponse resp = kc.addDocV2(req, new RequestAddition()); printJson("add_doc_v2", resp); } private static KnowledgeService newKnowledgeService(Auth auth) { return new KnowledgeService(SCHEME, HOST, REGION, auth); } private static CollectionMeta defaultCollectionMeta() { return CollectionMeta.builder() .collectionName(COLLECTION_NAME) .projectName(PROJECT) .resourceId(COLLECTION_RESOURCE_ID) .build(); } private static String getEnv(String name) { String v = System.getenv(name); if (v == null) { return ""; } v = v.trim(); return v.isEmpty() ? "" : v; } private static void printJson(String name, Object obj) throws Exception { if (obj == null) { System.out.println(name + ": null"); return; } System.out.println(name + ": " + PRETTY_JSON.writeValueAsString(obj)); } }