# knowledge-base **Repository Path**: Adnois/knowledge-base ## Basic Information - **Project Name**: knowledge-base - **Description**: ✨ 一个现代化的 Mac 桌面应用,用于管理和搜索本地知识库文档 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-01 - **Last Updated**: 2026-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: macOS, 本地知识库, 现代化 ## README # Knowledge Base - 本地知识库 > 一个现代化的 Mac 桌面应用,用于管理、搜索和关联本地知识库文档,内置 AI 助手与 RAG 检索。 --- ## 核心特性 | 特性 | 说明 | |:---|:---| | 富文本编辑 | 基于 TipTap 3 的编辑器,46 个扩展(表格/代码块/Mermaid/KaTeX/Excalidraw 等) | | 知识图谱 | 2D/3D 可视化(Three.js + xyflow),多种布局算法,相似文档推荐 | | AI 助手 | 聊天/写作/摘要/OCR/闪卡生成,支持多模型(OpenAI/Ollama/MoE) | | RAG 检索 | 本地嵌入(transformers.js WASM)+ 向量搜索 + 重排,无需外部服务 | | 工作流引擎 | 模板编排、调度、执行历史 | | 插件系统 | 内置/外部插件、运行时、注册表 | | 标签系统 | 自定义颜色/分组/层级,标签云与自动补全 | | 闪卡复习 | 间隔重复(SRS),AI 自动生成 | | TODO 管理 | 从文档提取待办,AI 优先级排序 | | 备份/恢复 | 自动/手动备份,导出/导入 | | 局域网分享 | 内置 HTTP 服务,IP 探测 | | MCP 协议 | Model Context Protocol 客户端 | | 知识管家 | 自动分析、建议、报告 | | 双主题 | 浅色/深色模式,CSS 变量管理 | --- ## 技术栈 ``` ┌─────────────────────────────────────────────────────────────┐ │ Tauri 2 · React 18 · TypeScript 5 │ ├─────────────────────────────────────────────────────────────┤ │ Rust(sled KV 存储 + 文件解析 + 向量索引 + 局域网分享) │ ├─────────────────────────────────────────────────────────────┤ │ Vite 5 · Tailwind CSS · Zustand + Immer · React Query │ ├─────────────────────────────────────────────────────────────┤ │ TipTap 3 · Three.js · ECharts · Mermaid · Excalidraw│ ├─────────────────────────────────────────────────────────────┤ │ transformers.js(WASM 嵌入) · LlamaIndex · ChromaDB │ └─────────────────────────────────────────────────────────────┘ ``` --- ## 快速开始 ### 安装依赖 ```bash npm install ``` ### 开发模式 ```bash npm run tauri:dev ``` ### 构建应用 ```bash npm run tauri:build ``` > 构建产物(.app / .dmg)位于 `src-tauri/target/release/bundle/`。 ### 其他命令 ```bash npm run typecheck # TypeScript 类型检查 npm run lint # ESLint npm run test:all # 运行所有测试(Vitest + Node 测试) ``` --- ## 项目结构 ``` knowledge-base/ ├── src-tauri/ # Rust 后端 │ ├── src/ │ │ ├── lib.rs # 入口,注册 Tauri commands │ │ ├── commands/ # 命令模块(documents/vector/backup/ai/...) │ │ ├── store.rs # sled KV 存储封装 │ │ ├── embedding.rs # 嵌入服务接口 │ │ ├── vector_store.rs # 向量存储与搜索 │ │ ├── file_parser.rs # PDF/XLSX/DOCX 解析 │ │ ├── error.rs / state.rs │ ├── Cargo.toml │ └── tauri.conf.json ├── src/ │ ├── main/ # preload 桥接类型声明 │ ├── renderer/ # React 前端 │ │ ├── components/ # UI 组件(编辑器/图谱/AI/设置/...) │ │ ├── services/ # 服务层(ai/rag/workflow/mcp/...) │ │ ├── store/slices/ # Zustand 状态切片(14 个) │ │ ├── extensions/ # TipTap 编辑器扩展(46 个) │ │ ├── plugins/ # 插件系统 │ │ ├── skills/ # AI 技能 │ │ ├── maxkb/ # RAG 检索/分块/嵌入 │ │ ├── ipc/tauriBridge.ts # Tauri IPC 桥接 │ │ └── App.tsx │ └── shared/ # 共享类型与工具 ├── resources/ # 捆绑模型与插件 ├── docs/ # 文档 └── package.json ``` --- ## 数据存储 所有数据存储在本地,使用 **sled**(嵌入式 KV 数据库)进行持久化: - 文档内容和元数据 - 文件夹结构 - 标签配置与分组 - 设置与偏好 - 搜索历史与图谱状态 - 向量索引(`vector_index.json`) - 工作流与执行历史 - TODO / 闪卡 / 通知 / 系统日志 数据目录:`~/Library/Application Support/com.knowledgebase.app/` --- ## 架构说明 ### 嵌入与向量搜索 嵌入计算由 **前端 WASM**(@huggingface/transformers)完成,Rust 侧负责向量存储与余弦相似度搜索。前端计算 embedding 后通过 `vector_search_with_embedding` / `vector_rebuild_with_embeddings` 命令与 Rust 交互。 ### IPC 桥接 前端通过 `window.electronAPI` 接口调用后端(兼容历史 Electron API)。`tauriBridge.ts` 在 Tauri 环境下将调用转发到 `invoke()`,Rust 命令使用 snake_case,前端使用 camelCase。 ### 文件解析 - **Rust 侧**(calamine/lopdf/zip):用于文件导入时的 PDF/XLSX/DOCX 文本提取 - **前端侧**(pdfjs-dist/mammoth/xlsx):用于文件预览和 RAG ingest 解析 --- ## 键盘快捷键 | 快捷键 | 功能 | 快捷键 | 功能 | |:---|:---|:---|:---| | `⌘ + N` | 新建文档 | `⌘ + B` | 加粗 | | `⌘ + Shift + N` | 新建文件夹 | `⌘ + I` | 斜体 | | `⌘ + F` | 聚焦搜索 | `⌘ + K` | 插入链接 | | `⌘ + S` | 保存文档 | `⌘ + Shift + K` | 代码块 | | `⌘ + P` | 命令面板 | `⌘ + H` | 切换知识图谱 | > 完整快捷键列表请查看设置面板。 --- ## 贡献指南 欢迎提交 Issue 和 Pull Request! ## 许可证 MIT License © 2026