|
1 | 1 | # 文档管理命令手册 |
2 | 2 |
|
3 | | -文档管理覆盖文件上传、OSS 导入、解析状态跟踪、文档删除和标签管理。文档导入知识库后自动解析为 chunk。 |
| 3 | +文档管理覆盖目录同步、文件上传、OSS 导入、已有文件入库、解析状态跟踪、文档删除和标签管理。文档导入知识库后自动解析为 chunk。 |
4 | 4 |
|
5 | 5 | > **通用约定**(鉴权、Workspace ID、全局参数、输出格式、危险操作确认、Dry-run 模式)请参阅 [总览文档](./kscli-cli-guide.md#通用约定)。 |
6 | 6 |
|
7 | 7 | --- |
8 | 8 |
|
| 9 | +#### `kscli doc sync` |
| 10 | + |
| 11 | +将本地目录增量同步到已有知识库。`bl knowledge doc sync` 使用相同参数。 |
| 12 | + |
| 13 | +```bash |
| 14 | +# 先预览;允许读取远端,不创建状态目录、不上传、不删除 |
| 15 | +kscli doc sync --dir ./docs --index-id idx-xxx --dry-run |
| 16 | + |
| 17 | +# 仅新增不要求删除确认;替换或删除会返回确认要求(退出码 7) |
| 18 | +kscli doc sync --dir ./docs --index-id idx-xxx |
| 19 | + |
| 20 | +# 确认预览中的替换范围后执行 |
| 21 | +kscli doc sync --dir ./docs --index-id idx-xxx --yes |
| 22 | + |
| 23 | +# 本地删文件默认保留远端;显式删除也先预览 |
| 24 | +kscli doc sync --dir ./docs --index-id idx-xxx --delete --dry-run |
| 25 | +kscli doc sync --dir ./docs --index-id idx-xxx --delete --yes |
| 26 | +``` |
| 27 | + |
| 28 | +| 参数 | 说明 | |
| 29 | +| --------------------------- | ----------------------------------------------------------------- | |
| 30 | +| `--dir <path>` | 必填,本地文档目录;不跟随符号链接 | |
| 31 | +| `--index-id <id>` | 必填,已有文档知识库 ID | |
| 32 | +| `--state-file <path>` | 默认 `<dir>/.bailian/sync-state.json`,保存文件与远端文档对应关系 | |
| 33 | +| `--category-id <id>` | 首次默认解析工作空间默认类目;后续使用状态中绑定的真实类目 | |
| 34 | +| `--sync-id <uuid>` | 指定同步集;恢复丢失状态时需提供原 UUID | |
| 35 | +| `--delete` | 删除此同步集中本地已移除的索引文档 | |
| 36 | +| `--poll-interval <seconds>` | 正数,默认 5 秒 | |
| 37 | + |
| 38 | +每次扫描完整内容哈希,不因大小和修改时间相同而跳过校验。内容未变的已验证文档跳过上传;更新先等待新版就绪,再删除旧索引版本。重命名视为新路径添加与旧路径保留(启用 `--delete` 才删除旧路径)。不支持的格式、音视频、符号链接以及内部目录会列入跳过项;已托管路径变为不支持或不可读时,不将其视为可以删除。 |
| 39 | + |
| 40 | +同步仅管理该同步集建立的文档;手工上传和其他同步集文档不会被 `--delete` 清理。源文件始终保留在数据中心。导入可能产生解析、向量化模型费用;删除文档甚至清空文档都不等于删除知识库,不会停止知识库运行时长计费。 |
| 41 | + |
| 42 | +保留状态文件;CI 中将它作为持久数据保存,并为同一个同步集配置全局串行执行。本地锁不能防止不同机器同时写入。状态绑定 API 地址、工作空间、知识库、类目和同步集,不应复制到其他目标使用。 |
| 43 | + |
| 44 | +状态丢失后,显式提供原 `--sync-id` 才尝试恢复当前仍存在的本地路径。只有唯一的远端路径标签匹配才恢复关联,并经确认重新上传,以重新建立内容验证;不会把远端 MD5 当成完整内容证明。远端无法还原路径的文档作为 orphan 保留,不自动删除。多个版本对应同一路径或导入结果未知时停止,需先核对资源。 |
| 45 | + |
| 46 | +执行失败后保留状态文件;下一次运行先恢复未完成操作,恢复完成后重新预览剩余变更。不要删除状态或换名称来绕过未知写请求。确认之后若本地内容、状态版本或远端清单变化,执行停止,需重新预览。 |
| 47 | + |
| 48 | +JSON 输出包含 `summary`、`actions`、`skipped`、`unmanaged`、`orphans`、`notices`、`stateFile`;失败时 stderr 的 `KNOWLEDGE_SYNC_INCOMPLETE` 提供最新可读 checkpoint,原错误继续输出并返回非零退出码。中途已完成的项目以 checkpoint 为准,不将部分失败报告为全部成功。 |
| 49 | + |
| 50 | +--- |
| 51 | + |
9 | 52 | #### `kscli doc list` |
10 | 53 |
|
11 | 54 | 列出知识库中的文档及其解析/索引状态。 |
@@ -342,3 +385,32 @@ kscli doc import-oss --bucket my-bucket --region cn-beijing --oss-key docs/a.pdf |
342 | 385 | --- |
343 | 386 |
|
344 | 387 | ← [返回总览](./kscli-cli-guide.md) |
| 388 | + |
| 389 | +## 已有文件导入与音视频接入 |
| 390 | + |
| 391 | +`doc upload` 从本地上传到数据中心,`doc import-oss` 从已授权 OSS 注册到数据中心;两者产生 fileId。`doc import` 把这些已有文件加入已有知识库,不重复上传。`bl knowledge doc import` 使用相同参数。 |
| 392 | + |
| 393 | +```bash |
| 394 | +kscli doc import --index-id idx-xxx --doc-id file-xxx --wait |
| 395 | +kscli doc import --index-id idx-xxx --category-id cate-xxx --dry-run |
| 396 | +kscli doc list --index-id idx-xxx --details --page-number 2 --page-size 10 |
| 397 | +``` |
| 398 | + |
| 399 | +`--doc-id` 与 `--category-id` 可重复但互斥,必须选一种。`--wait` 与 `--poll-interval` 控制等待;返回 ingestionId。等待会汇总任务所有页的文件状态,失败文件不会因不在第一页而漏掉。超时后用原 ingestionId 继续查询,不必重新导入。 |
| 400 | + |
| 401 | +普通文档可传 `--chunk-mode h1|h2|h3|h4|h5|length|page|regex`、`--chunk-size`、`--overlap-size`、`--separator`、`--enable-headers true|false`。length 需要 chunk-size,regex 需要 separator;这些不是音视频的按秒切片参数。 |
| 402 | + |
| 403 | +`doc list --details` 调用文件详情列表接口,文本显示 chunkSize、overlapSize、separator、chunkMode、enableHeaders;JSON 保留原始响应。详情接口每页最多 **10** 条,默认普通列表仍为最多 100 条。 |
| 404 | + |
| 405 | +音视频格式:aac、amr、flac、flv、m4a、mp3、mpeg、ogg、opus、wav、webm、wma、mp4、mkv、avi、mov、wmv。后缀不区分大小写,目录扫描包含这些格式。单文件本地上限 **2 GiB = 2,147,483,648 字节**,采用二进制单位。原有文档/图片的大小限制保持不变。 |
| 406 | + |
| 407 | +```bash |
| 408 | +kscli doc upload --file ./short.mp4 --parser DOCMIND_LLM_VERSION_MEDIA --index-id idx-xxx --wait |
| 409 | +kscli doc import-oss --bucket my-bucket --region cn-beijing --oss-key samples/short.mp4 --parser DOCMIND_LLM_VERSION_MEDIA |
| 410 | +``` |
| 411 | + |
| 412 | +两个接入命令均支持 `--parser-config-file <JSON对象文件>`,保留未知配置键;OSS 参数应用到本批每个 fileDetails 元素。未指定 parser 时保持原有默认行为。上传使用流式 MD5 和流式 PUT,不把整个媒体加载进内存。 |
| 413 | + |
| 414 | +带 `--index-id` 时,一次最多接入 50 个已知本地媒体文件,超限在上传前拒绝,不自动拆批。历史 fileId 和类目的类型/数量由服务端验证;类目个数不等于文件数。OSS 注册仍最多 10 个对象,与知识库导入上限不同。 |
| 415 | + |
| 416 | +临时问答附件使用 `doc upload --category-type SESSION_FILE`,租约和注册都传同一类型;不能同时指定 index-id 或自定义 parser/config。会话附件不是长期知识库入库方式。 |
0 commit comments