DSH 插件 yumu247/dsh-kb-rag 为 DSH 提供了一套本地优先的 RAG 知识库工具。它位于 kb-rag Python 管线之上,支持语义检索、增量入库、网页抓取和关联推荐。这套工具旨在满足本地化部署需求,避免云端 API 调用成本,并确保数据留在本地机器。
核心功能¶
插件封装了四个核心命令,分别对应不同的知识库操作:
- kb_query (语义检索):在本地向量数据库中进行语义搜索,返回相关文本块及来源和相似度。
- kb_ingest (增量入库):将文档目录导入 ChromaDB。支持增量更新(基于 manifest hash),并自动处理 SiYuan 的前置元数据。
- kb_crawl (网页批量抓取):利用 Scrapling 和 markdownify 批量抓取 URL,并将结果清洗为 Markdown 格式。
- kb_related (关联推荐):基于检索或图谱模式,为已知文档推荐相关文档。
安装与前置准备¶
在安装插件之前,需要确保宿主机已配置好 Python 环境、Ollama 模型以及 kb-rag 管线。
- 安装 Python 管线
克隆kb-rag仓库并安装依赖:
git clone https://github.com/YuMu247/kb-rag
cd kb-rag
pip install -r requirements.txt
- 安装 Ollama 模型
拉取嵌入模型bge-m3:
ollama pull bge-m3
-
配置路径
将kb-rag的安装路径告知插件。可以通过插件配置或环境变量设置:- 配置方式:在 DSH 的 profile 配置中设置
kbRagDir。 - 环境变量方式:设置
KB_RAG_DIR环境变量指向kb-rag目录。 - 默认行为:如果未配置,插件会在会话工作目录下查找
./kb-rag。
- 配置方式:在 DSH 的 profile 配置中设置
-
安装 DSH 插件
使用 DSH 的插件管理命令安装:
dsh plugin --profile <profile> add github:YuMu247/dsh-kb-rag
安装后,`kb_query`、`kb_ingest`、`kb_crawl`、`kb_related` 四个命令将注入到当前 DSH 进程中。安装前请确认当前 DSH 构建版本支持 `dsh plugin` 子命令。
典型用法¶
kb_query¶
用于查询本地知识库。
* 参数:
* query (必填):查询文本。
* k (可选):返回结果数量,默认 5,最大 20。
* 返回格式:JSON 格式,包含匹配的文本块及来源。
kb_ingest¶
用于将文档目录导入向量库。
* 参数:
* docs:默认为 <kb-rag>/docs。
* chunkSize:分块大小,默认 512。
* overlap:分块重叠大小,默认 64。
* force、reset、heading:控制覆盖和元数据处理。
kb_crawl¶
用于批量抓取网页。
* 参数:
* urls 或 urlsFile:目标 URL 列表或文件路径。
* out:输出目录,默认 <kb-rag>/out。
* delay:抓取间隔(秒),默认 1.5。
kb_related¶
用于文档关联推荐。
* 参数:
* seed 或 fromDoc:种子文档 ID(二选一)。
* k:返回数量,默认 5。
* graph:图模式开关,大于 0 时启用图模式知识漫步。
注意事项¶
- 本地运行:该插件全程在本地运行,无需调用云端 API,零成本。
- 环境依赖:插件本身不包含 Python 逻辑,必须正确配置
kbRagDir才能运行。 - 权限与安全:插件以当前 DSH 进程的权限运行,请确保对相关文件和目录有读写权限。