本文档介绍命令行工具中知识库(Knowledge Base)相关的命令及参数,覆盖知识库管理、文档管理、文档检索和子空间工作流。
前置条件
已完成命令行工具的安装与访问凭证配置。具体操作,请参见命令行工具。
如需上传文档,需提前配置 OSS Bucket(
oss_endpoint和oss_bucket_name),或交由命令行工具自动创建托管 Bucket。
知识库管理
知识库是文档存储和语义检索的顶层容器。
创建知识库
tablestore-agent-cli kb create --name my_kb --description "产品文档知识库"支持启用子空间和自定义 Embedding 模型等更多选项:
tablestore-agent-cli kb create --name product_docs \
--description "产品文档" \
--tags "tech,docs" \
--subspace \
--embedding-provider bailian \
--embedding-model text-embedding-v4 \
--embedding-dimension 1024参数说明:
参数 | 必填 | 默认值 | 说明 |
| 是 | — | 知识库名称。字母、数字、下划线,字母开头,长度 1~64 字符。 |
| 否 | — | 描述信息。不超过 4 KB。 |
| 否 |
| 是否启用子空间分区。 |
| 否 | — | 标签。逗号分隔,总大小不超过 4 KB。 |
| 否 | — | Metadata schema 的 JSON 字符串。与 |
| 否 | — | Metadata schema 的 JSON 文件路径。 |
| 否 | — | 完整请求体 JSON 文件路径。与其他参数互斥。 |
| 否 | — | Embedding 服务提供方。可选值为 |
| 否 | — | Embedding 模型名称。如 |
| 否 | — | 向量维度。 |
| 否 | — | 自定义 Embedding 服务的 API Key。 |
| 否 | — | 自定义 Embedding 服务的 URL。需提前在 OTS 注册。 |
| 否 | — | 检索配置的 JSON 文件路径。 |
Metadata 字段类型:支持 string、long、double、boolean、date 及对应的 list 变体。单个知识库最多支持 200 个 Metadata 字段,字段名称不超过 128 字符。
列出知识库
tablestore-agent-cli kb list
tablestore-agent-cli kb list --limit 50kb list 自动翻页,返回当前账号下的全部知识库。--limit 指定每页返回数量,不影响最终结果总数。
查看知识库
tablestore-agent-cli kb describe --name my_kb输出包含知识库的基本元信息、Embedding 配置和检索配置。
删除知识库
删除知识库会清除其下全部文档和向量数据,且不可恢复。请谨慎操作。
tablestore-agent-cli kb delete --name my_kb # TTY 环境下会提示确认
tablestore-agent-cli kb delete --name my_kb -y # 跳过确认文档管理
添加文档
支持三种来源:本地文件、本地目录、已有 OSS 对象。
添加本地文件:
tablestore-agent-cli kb doc-add --kb my_kb --file ./report.pdf
tablestore-agent-cli kb doc-add --kb my_kb --file ./doc1.pdf --file ./doc2.md扫描本地目录(支持递归和 glob 过滤):
支持首尾 * 通配符(如*.pdf)。
tablestore-agent-cli kb doc-add --kb my_kb --dir ./docs
tablestore-agent-cli kb doc-add --kb my_kb --dir ./docs --include "*.pdf,*.md"
tablestore-agent-cli kb doc-add --kb my_kb --dir ./docs --exclude "*.tmp" --no-recursive添加已有 OSS 对象:
tablestore-agent-cli kb doc-add --kb my_kb --oss-key oss://my-bucket/data.pdf指定子空间和元数据:
tablestore-agent-cli kb doc-add --kb my_kb --file ./doc.pdf --subspace tenant_A --metadata '{"author":"Alice"}'参数说明:
参数 | 必填 | 默认值 | 说明 |
| 是 | — | 知识库名称。 |
| 三选一 | — | 文档来源。支持重复指定以批量上传。 |
| KB 启用子空间时必填 | — | 子空间名称。 |
| 否 | — | Metadata JSON 字符串。与 |
| 否 | — | Metadata JSON 文件路径。 |
| 否 | — | glob 模式白名单。逗号分隔。 |
| 否 | — | glob 模式黑名单。逗号分隔。 |
| 否 |
| 是否递归扫描子目录。 |
| 否 |
| 上传并发数。 |
支持的文件格式:PDF、DOCX、DOC、WPS、PPTX、PPT、TXT、Markdown、HTML、XLSX、XLS、PNG、JPG、BMP、GIF。
查看文档
tablestore-agent-cli kb doc-get --kb my_kb --doc-id doc-123
tablestore-agent-cli kb doc-get --kb my_kb --oss-key data.pdf输出包含文档状态(pending、completed 或 failed)、分块数量、元数据等信息。
列出文档
tablestore-agent-cli kb doc-list --kb my_kb
tablestore-agent-cli kb doc-list --kb my_kb --subspace tenant_A,tenant_B自动翻页,返回知识库下的全部文档。--subspace 支持指定多个子空间,使用逗号分隔。
移除文档
tablestore-agent-cli kb doc-remove --kb my_kb --doc-id doc-123
tablestore-agent-cli kb doc-remove --kb my_kb --oss-key data.pdf --delete-file--delete-file 用于同时删除 OSS 中的源文件。未指定时仅从知识库中移除索引,OSS 源文件保留。
文档检索
针对知识库执行向量检索、全文检索或两者的混合检索。
基础检索
tablestore-agent-cli kb retrieve --kb my_kb --query "系统架构设计"常用场景
指定检索类型和返回数量:
tablestore-agent-cli kb retrieve --kb my_kb --query "SSL证书" --search-type DENSE_VECTOR --top-k 5通过 Metadata 过滤:
tablestore-agent-cli kb retrieve --kb my_kb --query "部署指南" --filter '{"author":{"equals":"Alice"}}'多子空间检索:
tablestore-agent-cli kb retrieve --kb my_kb --query "policy" --subspace "tenant_A,tenant_B"指定重排策略:
tablestore-agent-cli kb retrieve --kb my_kb --query "优化方案" --rerank-type WEIGHT --weight-dense 0.7 --weight-fulltext 0.3参数说明
参数 | 默认值 | 说明 |
|
| 检索类型。可选值为 |
|
| 同时设置 dense、fulltext 和重排阶段的返回数量。 |
| — | 重排策略。可选值为 |
| — | RRF 重排参数。 |
| — | WEIGHT 重排时 dense 和 fulltext 的权重。 |
| — | MODEL 重排时的模型提供方与模型名称。如 |
| — | Metadata 过滤 JSON 字符串。与 |
| — | Metadata 过滤 JSON 文件路径。 |
| — | 子空间列表。逗号分隔。 |
Metadata 过滤运算符
运算符 | 示例 |
|
|
|
|
|
|
|
|
|
|
|
|
子空间工作流
子空间用于在同一知识库中隔离多租户、多业务线或多场景的数据。创建知识库时通过 --subspace 开启子空间分区,后续的文档上传和检索操作均需指定子空间。
# 创建启用子空间的知识库
tablestore-agent-cli kb create --name multi_tenant_kb --subspace
# 上传时指定子空间
tablestore-agent-cli kb doc-add --kb multi_tenant_kb --file ./doc.pdf --subspace tenant_A
# 检索时支持指定多个子空间
tablestore-agent-cli kb retrieve --kb multi_tenant_kb --query "policy" --subspace "tenant_A,tenant_B"适用场景:多租户隔离、按业务线归档、A/B 测试等。