AlowEnsoul/dsh-rag-kb

DeepSeek Harness 本地 RAG 知识库插件:本地文档切片、向量化、语义检索,全程本地运行(Ollama + 纯前端/主机端)。A local-first RAG knowledge base plugin for DeepSeek Harness.

Project Overview项目介绍

A local RAG knowledge base plugin for DeepSeek Harness, adding a draggable floating panel to the page. Core capability: import local txt, md, doc, and docx files, chunk them, and perform semantic retrieval via Ollama embeddings (nomic-embed-text, 768 dimensions by default), with multiple libraries and theme switching. Use it when you need conversations grounded in local documents without cloud services. Caveat: legacy .doc files require Microsoft Word installed, and Windows is required.

本地 RAG 知识库插件,为 DeepSeek Harness 注入可拖拽悬浮面板。核心能力:导入 txt/md/doc/docx 等本地文档,切片后通过 Ollama embedding(默认 nomic-embed-text,768 维)做语义检索,支持多知识库与主题切换。使用场景:希望对话引用本地资料且完全离线运行。提示:旧版 .doc 需本机安装 Microsoft Word 才能提取,且仅支持 Windows。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add github:AlowEnsoul/dsh-rag-kb

AlowEnsoul/dsh-rag-kb 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

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 found ollama pull nomic-embed-text
添加文件报错 / 中文路径无效 确认用的是最新版本(已支持 base64 传参)
浏览器里没出现按钮 确认已重启 dsh web 且补丁文件生效
.doc 无法提取 旧版 Word 二进制格式,需要本机安装 Microsoft Word(.docx 无需)

作者与反馈

许可证

MIT

上一个 Prev dsh-nene-theme 下一个 Next dsh-sidebar