Back to home

YuMu247

dsh-kb-rag

Local-first RAG knowledge tools for DSH: kb_query / kb_ingest / kb_crawl / kb_related, backed by the kb-rag Python pipeline (Ollama bge-m3 + ChromaDB). Zero API cost, on-premises.

Stars
0
Language
JavaScript
Created
Aug 15, 2026
Updated
Aug 15, 2026

Introduction

@dsh-external/dsh-kb-rag

Local-first RAG knowledge tools for DSH — thin tool wrapper around the kb-rag Python pipeline (Ollama bge-m3 + ChromaDB + SiYuan). Four tools, all on-premises, zero API cost, your documents never leave the machine.

ToolWhat it doesBacking script
kb_querySemantic search over your local vector DB (top-k chunks with source + similarity)query.py --json
kb_ingestIngest a docs directory into ChromaDB (incremental, manifest hash-idempotent; Shiyu notes auto-stripped of front-matter + machine layer)ingest.py
kb_crawlBatch-crawl URLs to clean Markdown (Scrapling + markdownify)crawl.py
kb_relatedRelated-document recommendations: retrieval-style, graph-style knowledge walk, or from a known docrelated.py

The plugin is a pure forwarder: it locates Python, spawns the kb-rag scripts and parses their output. All knowledge-base logic lives in the Python project, which you can also use standalone.

Install

# requires a dsh build with the `dsh plugin` subcommand; <profile> = tui/headless/web/...
dsh plugin --profile <profile> add github:YuMu247/dsh-kb-rag
dsh --profile <profile>        # restart: kb_query / kb_ingest / kb_crawl / kb_related injected

Peer dependencies (@deepseek-ai/dsh-tools, @deepseek-ai/cordis) are provided by the dsh profile.

Prerequisites (one-time, on the host)

# 1. the Python pipeline
git clone https://github.com/YuMu247/kb-rag
pip install -r kb-rag/requirements.txt

# 2. Ollama + embedding model
ollama pull bge-m3        # ~1.2GB

# 3. tell the plugin where kb-rag lives (either one)
#    a) plugin config:  kbRagDir: "/path/to/kb-rag"
#    b) env var:        KB_RAG_DIR=/path/to/kb-rag
#    c) default:        ./kb-rag under the session working directory

# 4. ingest something, then ask
python kb-rag/ingest.py --docs /path/to/docs

Optional (Windows daily sync): examples/sync_daily.cmd in the kb-rag repo starts Ollama, syncs Shiyu video notes, ingests and imports into SiYuan.

Tool arguments

  • kb_queryquery (required), k (default 5, max 20). Returns {ok, count, chunks:[{source, chunk, similarity, text}]}.
  • kb_ingestdocs (default <kb-rag>/docs), force, reset, heading, chunkSize (default 512), overlap (default 64). Returns {ok, summary}.
  • kb_crawlurls (array) or urlsFile (path), out (default <kb-rag>/out), delay (default 1.5s, min 0.2). Returns {ok, summary, outDir}.
  • kb_relatedseed or fromDoc (exactly one), k (default 5), graph (>0 enables graph-style walk). Returns {ok, text}.

Plugin config

All keys optional, set in the profile plugin config:

KeyDefaultMeaning
pythonCmdpython (win) / python3 (other)Python executable
kbRagDirKB_RAG_DIR env, then <cwd>/kb-ragkb-rag checkout directory

Development

npm install                 # typescript + @types/node + dsh-tools/cordis types (compile only)
npm run typecheck           # tsc -b

Runtime has zero npm dependencies; src/ is the source of truth and lib/ the compiled copy (both shipped).

中文说明

DSH 的本地优先知识库插件:kb_query(语义检索)/ kb_ingest(增量入库)/ kb_crawl(网页批量抓取)/ kb_related(关联推荐),底层调用 kb-rag Python 管线(Ollama bge-m3 + ChromaDB),全程本地、零 API 成本。安装:dsh plugin --profile <profile> add github:YuMu247/dsh-kb-rag。前置:克隆 kb-rag、pip install -r requirements.txtollama pull bge-m3,并用配置 kbRagDir 或环境变量 KB_RAG_DIR 指明 kb-rag 路径。

License

MIT