Back to home

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):主机端,注册 /kb HTTP 路由、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-kbpackages/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.jsonreferences 里加一行:

{ "path": "./packages/kb/rag-kb" },

tsconfig.client.jsonreferences 里加一行:

{ "path": "./packages/client/ui-kb" },

tsconfig.base.json@deepseek-ai/dsh-* 通配符列表里加一行(让源码模式能解析 @deepseek-ai/dsh-rag-kb):

"./packages/kb/*/src",

packages/bundle/web-app/package.jsondependencies 里加两个依赖:

"@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,刷新浏览器后左下角出现「知识库」悬浮按钮。

使用

  1. 左下角「知识库」按钮(可拖动)→ 打开面板。
  2. 「配置解析模型」可调整 Embedding 服务地址 / 模型 / 分块大小(默认 http://localhost:11434/api/embed + nomic-embed-text)。
  3. 新建知识库 → 展开 → 「添加文件」 → Windows 选择框选中 .txt/.md/.doc/.docx(可多选)。
  4. 之后在对话里说「查一下知识库里关于 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 foundollama pull nomic-embed-text
添加文件报错 / 中文路径无效确认用的是最新版本(已支持 base64 传参)
浏览器里没出现按钮确认已重启 dsh web 且补丁文件生效
.doc 无法提取旧版 Word 二进制格式,需要本机安装 Microsoft Word(.docx 无需)

作者与反馈

许可证

MIT