轻量向量知识库工具 — 本地 ONNX 嵌入 + sqlite-vec 混合检索 + MCP 工具接口 + RAG 对话
See the code轻量向量知识库工具 — 本地 ONNX 嵌入 + sqlite-vec 混合检索 + MCP 工具接口
⚠️ 许可证声明
AGPL-3.0 开源 + 商业授权 — 本软件开源版本使用 AGPL-3.0 许可证。 允许个人和商业使用,但须遵守 AGPL-3.0 的源代码公开义务。 如需闭源嵌入或获得企业级商业授权,请联系项目维护者。
DocMind 把任意文档(PDF / Word / Excel / PPT / Markdown / HTML / 图片 / 代码) 转成语义分块、向量索引和可检索的知识库。全部计算在本地完成, 默认嵌入模型 ~35MB,向量库 ~5MB,无需 PyTorch / ChromaDB / Java。
start.bat:
doc2mind doctor,全维检查 Python、向量数据库、模型缓存、GPU 硬件加速与镜像网络,一键获取修复指南!# 1. 环境诊断与自愈
doc2mind doctor # 系统全维体检(Python/存储/模型缓存/GPU/网络)
# 2. 新手示例文档体验
doc2mind sample # 一键注入内置官方示例文档库
# 3. 摄入文档与目录
doc2mind ingest ./docs/
doc2mind ingest ./report.pdf --collection papers
# 4. 混合检索(向量 + BM25 双引擎)
doc2mind search "双引擎混合检索原理" --top-k 5
# 5. RAG 智能对话(支持终端真流式打字机打印)
doc2mind chat "请总结 DocMind 的核心特性"
# 6. 索引重建与跨模型维度迁移
doc2mind reindex # 重新计算向量索引
# 8. 列出 / 统计 / 删除文档
doc2mind list
doc2mind list --collection papers
doc2mind stats
doc2mind remove ./old.pdf
# 9. 格式转换(PDF/Word/Excel/PPT -> MD/JSON/TXT/HTML)
doc2mind convert input.docx output.md
doc2mind convert ./batch/ --format md --out ./out/
vector_score = 1 - distance(0~1,1 完全一致,正交为 0)。旧失真公式(“相关度 60+”的根因)已移除。bm25_jieba_enabled=true 默认开):2 字中文词可精确召回,切换 tokenizer 自动一次性重建 FTS5 索引。semantic_floor:低于相关度门槛的弱命中被诚实丢弃(top_k 是上限不硬填),建议值可用
python tools/eval_retrieval.py 在本机数据上标定后配置。query_instruction:检索时先拼官方检索指令前缀再嵌入查询,提升 bge 系列召回;
文档嵌入不受影响,其余功能(去重/聚类)保持纯净。neighbor_context_window=1(0 关闭):问答时把命中 chunk 同源的相邻分块并入上下文,
提升跨块回答完整性;检索排序与引用仍以命中为准。改动链路或接手新环境时,先跑一遍接口冒烟,确认主链(摄入 → 检索 → 问答 → 流式 → 会话)没坏:
# 连接已运行的后端
.\scripts\smoke.ps1
# 完全隔离跑:自起后端 + 临时库 + 关鉴权(推荐给 CI)
.\scripts\smoke.ps1 -StartBackend -TempDb -DisableAuth
# 追加支线:格式转换 / 交付物导出 / 重建索引 / AI 整理 / 知识图谱
.\scripts\smoke.ps1 -Deep
存在 FAIL 时退出码为 1,可直接接 CI。完整卡点矩阵、验收标准与文档漂移清单见
docs/verification/core-chain-and-smoke.md。
把 doc2mind mcp 注册到 AI 工具的 MCP 配置即可:
// claude_desktop_config.json / Cursor MCP 配置
{
"mcpServers": {
"doc2mind": {
"command": "doc2mind",
"args": ["mcp"]
}
}
}
暴露 15 个工具,分四组:
| 分组 | 工具 |
|---|---|
| 摄入 | ingest、ingest_job(异步,返回 job_id)、get_job、ingest_text(文本直入) |
| 检索与对话 | search(BM25 + 向量 RRF 融合)、chat(RAG 带引用) |
| 管理 | list_docs、remove_doc、quality_check、convert_file、reindex |
| AI 增强 | curate(自动打标签/归类/去重/蒸馏)、graph_get(知识图谱)、create_artifact / inspect_artifact(PPT 大纲生成与体检) |
详见 docs/mcp.md。
CLI ─┐
MCP ┼─► Python 后端 (FastAPI on localhost:8765)
WPF ┘ │
├─ Loader (8 种文档格式)
├─ Chunker (语义 / 表格 / 代码)
├─ Embedder (fastembed ONNX)
├─ Store (sqlite-vec)
├─ Retriever (BM25 + 向量 RRF 融合)
└─ Converter (格式互转)
WPF 桌面客户端源码在 DocMind/,HTTP API 文档在 docs/api.md,
使用说明在 docs/使用说明-每个页面在干嘛.md,
MCP 接入文档在 docs/mcp.md。
默认配置文件位置:
| 平台 | 路径 |
|---|---|
| Windows | %APPDATA%\doc2mind\config.toml |
| macOS | ~/Library/Application Support/doc2mind/config.toml |
| Linux | ~/.config/doc2mind/config.toml |
也可通过环境变量 DOC2MIND_* 覆盖,或用 --config 指定。
doc2mind chat 需要配置 LLM 才能使用。支持 4 种提供商(DOC2MIND_LLM_PROVIDER):
# OpenAI 兼容 API(DeepSeek/Qwen/Kimi/OpenAI 通用,可用 DOC2MIND_LLM_BASE_URL 切换服务商)
set DOC2MIND_LLM_PROVIDER=openai
set DOC2MIND_LLM_API_KEY=sk-your-api-key
set DOC2MIND_LLM_MODEL=deepseek-chat
# Anthropic Claude
set DOC2MIND_LLM_PROVIDER=anthropic
set DOC2MIND_LLM_API_KEY=sk-ant-your-key
set DOC2MIND_LLM_MODEL=claude-sonnet-4-5
# Google Gemini
set DOC2MIND_LLM_PROVIDER=gemini
set DOC2MIND_LLM_API_KEY=your-key
set DOC2MIND_LLM_MODEL=gemini-2.5-flash
# 本地 Ollama(完全离线,无需 API Key)
set DOC2MIND_LLM_PROVIDER=ollama
set DOC2MIND_LLM_MODEL=llama3.2
WPF 桌面端在「设置 → 大模型对话」图形化配置(API Key 经 DPAPI 加密存储), 支持「测试连接」一键验证。详见 docs/mcp.md 的「RAG 对话配置」。
AGPL-3.0 开源 + 商业授权
本软件开源版本采用 GNU Affero General Public License v3.0(AGPL-3.0):
如需在闭源或非 AGPL 环境下使用本软件,可获取商业授权(请通过 GitHub Issues 联系)。
项目依赖的第三方库许可证见 NOTICE 和 THIRD_PARTY_LICENSES.md。 默认嵌入模型 BAAI/bge-small-zh-v1.5 采用 MIT 许可证。
Python
57.6%
C#
37.1%
HTML
2.9%
PowerShell
1.5%
轻量向量知识库工具 — 本地 ONNX 嵌入 + sqlite-vec 混合检索 + MCP 工具接口 + RAG 对话
See the code轻量向量知识库工具 — 本地 ONNX 嵌入 + sqlite-vec 混合检索 + MCP 工具接口
⚠️ 许可证声明
AGPL-3.0 开源 + 商业授权 — 本软件开源版本使用 AGPL-3.0 许可证。 允许个人和商业使用,但须遵守 AGPL-3.0 的源代码公开义务。 如需闭源嵌入或获得企业级商业授权,请联系项目维护者。
DocMind 把任意文档(PDF / Word / Excel / PPT / Markdown / HTML / 图片 / 代码) 转成语义分块、向量索引和可检索的知识库。全部计算在本地完成, 默认嵌入模型 ~35MB,向量库 ~5MB,无需 PyTorch / ChromaDB / Java。
start.bat:
doc2mind doctor,全维检查 Python、向量数据库、模型缓存、GPU 硬件加速与镜像网络,一键获取修复指南!# 1. 环境诊断与自愈
doc2mind doctor # 系统全维体检(Python/存储/模型缓存/GPU/网络)
# 2. 新手示例文档体验
doc2mind sample # 一键注入内置官方示例文档库
# 3. 摄入文档与目录
doc2mind ingest ./docs/
doc2mind ingest ./report.pdf --collection papers
# 4. 混合检索(向量 + BM25 双引擎)
doc2mind search "双引擎混合检索原理" --top-k 5
# 5. RAG 智能对话(支持终端真流式打字机打印)
doc2mind chat "请总结 DocMind 的核心特性"
# 6. 索引重建与跨模型维度迁移
doc2mind reindex # 重新计算向量索引
# 8. 列出 / 统计 / 删除文档
doc2mind list
doc2mind list --collection papers
doc2mind stats
doc2mind remove ./old.pdf
# 9. 格式转换(PDF/Word/Excel/PPT -> MD/JSON/TXT/HTML)
doc2mind convert input.docx output.md
doc2mind convert ./batch/ --format md --out ./out/
vector_score = 1 - distance(0~1,1 完全一致,正交为 0)。旧失真公式(“相关度 60+”的根因)已移除。bm25_jieba_enabled=true 默认开):2 字中文词可精确召回,切换 tokenizer 自动一次性重建 FTS5 索引。semantic_floor:低于相关度门槛的弱命中被诚实丢弃(top_k 是上限不硬填),建议值可用
python tools/eval_retrieval.py 在本机数据上标定后配置。query_instruction:检索时先拼官方检索指令前缀再嵌入查询,提升 bge 系列召回;
文档嵌入不受影响,其余功能(去重/聚类)保持纯净。neighbor_context_window=1(0 关闭):问答时把命中 chunk 同源的相邻分块并入上下文,
提升跨块回答完整性;检索排序与引用仍以命中为准。改动链路或接手新环境时,先跑一遍接口冒烟,确认主链(摄入 → 检索 → 问答 → 流式 → 会话)没坏:
# 连接已运行的后端
.\scripts\smoke.ps1
# 完全隔离跑:自起后端 + 临时库 + 关鉴权(推荐给 CI)
.\scripts\smoke.ps1 -StartBackend -TempDb -DisableAuth
# 追加支线:格式转换 / 交付物导出 / 重建索引 / AI 整理 / 知识图谱
.\scripts\smoke.ps1 -Deep
存在 FAIL 时退出码为 1,可直接接 CI。完整卡点矩阵、验收标准与文档漂移清单见
docs/verification/core-chain-and-smoke.md。
把 doc2mind mcp 注册到 AI 工具的 MCP 配置即可:
// claude_desktop_config.json / Cursor MCP 配置
{
"mcpServers": {
"doc2mind": {
"command": "doc2mind",
"args": ["mcp"]
}
}
}
暴露 15 个工具,分四组:
| 分组 | 工具 |
|---|---|
| 摄入 | ingest、ingest_job(异步,返回 job_id)、get_job、ingest_text(文本直入) |
| 检索与对话 | search(BM25 + 向量 RRF 融合)、chat(RAG 带引用) |
| 管理 | list_docs、remove_doc、quality_check、convert_file、reindex |
| AI 增强 | curate(自动打标签/归类/去重/蒸馏)、graph_get(知识图谱)、create_artifact / inspect_artifact(PPT 大纲生成与体检) |
详见 docs/mcp.md。
CLI ─┐
MCP ┼─► Python 后端 (FastAPI on localhost:8765)
WPF ┘ │
├─ Loader (8 种文档格式)
├─ Chunker (语义 / 表格 / 代码)
├─ Embedder (fastembed ONNX)
├─ Store (sqlite-vec)
├─ Retriever (BM25 + 向量 RRF 融合)
└─ Converter (格式互转)
WPF 桌面客户端源码在 DocMind/,HTTP API 文档在 docs/api.md,
使用说明在 docs/使用说明-每个页面在干嘛.md,
MCP 接入文档在 docs/mcp.md。
默认配置文件位置:
| 平台 | 路径 |
|---|---|
| Windows | %APPDATA%\doc2mind\config.toml |
| macOS | ~/Library/Application Support/doc2mind/config.toml |
| Linux | ~/.config/doc2mind/config.toml |
也可通过环境变量 DOC2MIND_* 覆盖,或用 --config 指定。
doc2mind chat 需要配置 LLM 才能使用。支持 4 种提供商(DOC2MIND_LLM_PROVIDER):
# OpenAI 兼容 API(DeepSeek/Qwen/Kimi/OpenAI 通用,可用 DOC2MIND_LLM_BASE_URL 切换服务商)
set DOC2MIND_LLM_PROVIDER=openai
set DOC2MIND_LLM_API_KEY=sk-your-api-key
set DOC2MIND_LLM_MODEL=deepseek-chat
# Anthropic Claude
set DOC2MIND_LLM_PROVIDER=anthropic
set DOC2MIND_LLM_API_KEY=sk-ant-your-key
set DOC2MIND_LLM_MODEL=claude-sonnet-4-5
# Google Gemini
set DOC2MIND_LLM_PROVIDER=gemini
set DOC2MIND_LLM_API_KEY=your-key
set DOC2MIND_LLM_MODEL=gemini-2.5-flash
# 本地 Ollama(完全离线,无需 API Key)
set DOC2MIND_LLM_PROVIDER=ollama
set DOC2MIND_LLM_MODEL=llama3.2
WPF 桌面端在「设置 → 大模型对话」图形化配置(API Key 经 DPAPI 加密存储), 支持「测试连接」一键验证。详见 docs/mcp.md 的「RAG 对话配置」。
AGPL-3.0 开源 + 商业授权
本软件开源版本采用 GNU Affero General Public License v3.0(AGPL-3.0):
如需在闭源或非 AGPL 环境下使用本软件,可获取商业授权(请通过 GitHub Issues 联系)。
项目依赖的第三方库许可证见 NOTICE 和 THIRD_PARTY_LICENSES.md。 默认嵌入模型 BAAI/bge-small-zh-v1.5 采用 MIT 许可证。
Python
57.6%
C#
37.1%
HTML
2.9%
PowerShell
1.5%