AlowEnsoul
dsh-rag-kb
DeepSeek Harness 本地 RAG 知识库插件:本地文档切片、向量化、语义检索,全程本地运行(Ollama + 纯前端/主机端)。A local-first RAG knowledge base plugin for DeepSeek Harness.
- Stars
- 1
- Language
- TypeScript
- Created
- Aug 13, 2026
- Updated
- Aug 13, 2026
Introduction
dsh-rag-kb · DeepSeek Harness 本地知识库插件
一个为 DeepSeek Harness(dsh)打造的本地 RAG 知识库:在页面左下角提供可拖拽的悬浮面板,把本地文档(文本 / Markdown / Word 等)切片、向量化、语义检索,全部在本地完成(Ollama + 纯前端/主机端,无第三方云服务)。
作者:AlowEnsoul · 问题或建议请反馈至:2724749416@qq.com
功能特性
- 🎈 可拖拽悬浮入口:页面左下角「知识库」按钮,可任意拖动、记忆位置、不遮挡已有功能。
- 📄 原生文件选择:点「添加文件」弹出 Windows 文件选择框,支持
.txt/.md/.json/.py/...与.doc/.docx(Word 自动提取文字)。 - 🔍 语义检索:基于 Ollama embedding + 余弦相似度,按语义而非关键词召回。
- 🗂️ 多知识库:可新建多个库,各自独立索引。
- ⚙️ 可配置:Embedding 服务地址、模型、分块大小均可在面板里调整。
- 🌗 日间 / 夜间 / 跟随系统 三档主题。
- 🖥️ 桌面控制台(可选):一键开启/关闭 harness 与 Ollama 的极简 EXE。
工作原理
浏览器(ui-kb) ──fetch /kb──▶ 主机端(rag-kb) ──curl──▶ Ollama /api/embed
▲ │
│ 分块 + 余弦检索
│ │
└── JSON 持久化 ◀──────── dsh-kb-store.json
packages/client/ui-kb(@deepseek-ai/dsh-client-ui-kb):浏览器端 UI,注入shell.overlay槽位。packages/kb/rag-kb(@deepseek-ai/dsh-rag-kb):主机端,注册/kbHTTP 路由、kb_search/kb_index/kb_status工具、JSON 持久化。- Embedding 走本机 Ollama(默认
nomic-embed-text,768 维),全程本地。
目录结构
dsh-rag-kb/
├── packages/
│ ├── kb/rag-kb/ # 主机端包(KB 存储 + embedding + /kb 路由 + 工具)
│ └── client/ui-kb/ # 浏览器端包(悬浮面板 UI)
├── launcher/ # 桌面控制台(C# 源码 + 编译说明)
├── config/
│ └── cordis.patch.yml.example # 用户补丁示例
├── README.md
└── LICENSE
安装(在你的 dsh 仓库中启用)
前提:已有 DeepSeek Harness 仓库源码(
dsh web可运行)、本机已安装并启动 Ollama。
1. 复制两个包
把 packages/kb/rag-kb 和 packages/client/ui-kb 整个复制到你 dsh 仓库的对应位置:
# 在 dsh 仓库根目录
mkdir -p packages/kb
cp -r <本仓库>/packages/kb/rag-kb packages/kb/rag-kb
cp -r <本仓库>/packages/client/ui-kb packages/client/ui-kb
2. 修改仓库配置(共 4 处)
① tsconfig.host.json 的 references 里加一行:
{ "path": "./packages/kb/rag-kb" },
② tsconfig.client.json 的 references 里加一行:
{ "path": "./packages/client/ui-kb" },
③ tsconfig.base.json 的 @deepseek-ai/dsh-* 通配符列表里加一行(让源码模式能解析 @deepseek-ai/dsh-rag-kb):
"./packages/kb/*/src",
④ packages/bundle/web-app/package.json 的 dependencies 里加两个依赖:
"@deepseek-ai/dsh-rag-kb": "workspace:^",
"@deepseek-ai/dsh-client-ui-kb": "workspace:^",
3. 注册插件行(用户补丁)
把 config/cordis.patch.yml.example 的内容合并到你的用户补丁 $DSH_HOME/cordis.patch.yml($DSH_HOME 默认是 ~/.dsh;不存在则新建):
- insert:
- id: rag-kb
name: '@deepseek-ai/dsh-rag-kb'
- id: ui-kb
name: '@deepseek-ai/dsh-client-ui-kb'
4. 安装依赖 + 构建
pnpm install
pnpm run build:lib:host
pnpm run build:lib:client
5. 重启并拉起 Ollama
- 拉取模型(首次):
ollama pull nomic-embed-text - 重启
dsh web,刷新浏览器后左下角出现「知识库」悬浮按钮。
使用
- 左下角「知识库」按钮(可拖动)→ 打开面板。
- 「配置解析模型」可调整 Embedding 服务地址 / 模型 / 分块大小(默认
http://localhost:11434/api/embed+nomic-embed-text)。 - 新建知识库 → 展开 → 「添加文件」 → Windows 选择框选中
.txt/.md/.doc/.docx(可多选)。 - 之后在对话里说「查一下知识库里关于 XX 的内容」,agent 会用
kb_search检索回答。
桌面控制台(可选)
launcher/Launcher.cs 是一个极简 C# WinForms 程序,4 个按钮:开启/关闭 harness、打开/关闭 Ollama。
编译(Windows 自带 .NET Framework 编译器,无需安装额外工具):
csc.exe /target:winexe /out:知识库服务控制台.exe ^
/r:System.Windows.Forms.dll /r:System.Drawing.dll /codepage:65001 Launcher.cs
注意:源码里的路径(
E:\deepseek\deepseek-harness、Ollama 安装路径、pnpm.cmd路径)是作者本机配置,请按你的环境修改后编译。
常见问题
| 问题 | 解决 |
|---|---|
ollama error: model "nomic-embed-text" not found | 先 ollama pull nomic-embed-text |
| 添加文件报错 / 中文路径无效 | 确认用的是最新版本(已支持 base64 传参) |
| 浏览器里没出现按钮 | 确认已重启 dsh web 且补丁文件生效 |
.doc 无法提取 | 旧版 Word 二进制格式,需要本机安装 Microsoft Word(.docx 无需) |
作者与反馈
- 作者:AlowEnsoul
- 反馈 / 建议:2724749416@qq.com