# knowledge-base **Repository Path**: liudc0810/knowledge-base ## Basic Information - **Project Name**: knowledge-base - **Description**: 用go语言开发的文档知识查询系统。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-06 - **Last Updated**: 2026-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智汇 个人知识库管理工具,支持多格式文件索引、全文搜索、AI 问答(RAG)、标签管理和 Web 界面。 ## 功能特性 - **多格式支持**:自动识别并提取 Markdown (.md)、纯文本 (.txt)、Word (.docx)、Excel (.xlsx)、PowerPoint (.pptx)、PDF (.pdf)、HTML (.html/.htm) 等文件内容 - **PDF 智能识别**:自动检测文字版/图片版(扫描件),图片版调用 tesseract OCR 识别文字 - **全文搜索**:使用 bleve 引擎进行内容级全文检索,词组匹配 + BM25 得分过滤,不相关结果自动屏蔽 - **文档查看**:Web 界面弹出查看任意文档全文,Markdown 渲染展示,其他类型等宽纯文本 - **高级查询**:支持 AND/OR/NOT 逻辑运算符、content/tag/name/date/size 字段组合搜索 - **AI 问答(RAG)**:基于知识库文档内容,通过 `mimo run` 调用 AI 回答用户问题,支持手动选择参考文档 - **Markdown 编辑器**:内置完整 Markdown 编辑器,支持实时预览、工具栏格式化、Mermaid 图表、LaTeX 公式、主题切换,可直接在 Web 界面中编辑 MD 文档并保存回原文件 - **B站视频播放器**:内嵌 gbiliplay 播放器,支持 B站视频搜索、播放、下载 - **标签管理**:Web 界面直接添加/删除标签,按标签分类检索 - **Web 界面**:三标签页设计(文档 / AI 查询 / B站视频),响应式布局 ## 多格式支持说明 | 格式 | 扩展名 | 解析方式 | |------|--------|----------| | Markdown | `.md` | 文本读取 | | 纯文本 | `.txt` | 文本读取 | | Word | `.docx` | OOXML 解析 | | Excel | `.xlsx` | excelize 库解析 | | PowerPoint | `.pptx` | OOXML 解析 | | PDF | `.pdf` | go-fitz(MuPDF) + tesseract OCR | | HTML | `.html`, `.htm` | DOM 遍历提取可见文本 | ## 安装和运行 ### 1. 编译 ```bash go build -o knowledge-base . ``` ### 2. 配置 编辑 `config.json`,将 `watch_dirs` 改为你的笔记目录: ```json { "watch_dirs": ["/home/username/notes"], "exclude_dirs": [".git", "node_modules", "vendor"], "file_types": [".md", ".txt", ".docx", ".xlsx", ".pptx", ".pdf", ".html", ".htm"], "update_interval": 60 } ``` 或使用环境变量(优先级高于 config.json): ```bash KNOWLEDGE_BASE_WATCH_DIR=/home/username/notes ./knowledge-base ``` ### 3. 启动 ```bash # 首次运行:自动建立索引,然后启动服务 ./knowledge-base # 以后启动:跳过索引直接启动(秒启) ./knowledge-base # 强制重建索引 ./knowledge-base --rebuild ``` 启动后浏览器打开 `http://localhost:8080` ### 4. 可选:AI 查询 系统依赖 `mimo` CLI 工具。确保已安装并在 PATH 中: ```bash mimo --version ``` ### 5. 可选:B站视频 先启动 gbiliplay 播放器: ```bash cd ~/gitee/gbiliplay && ./gbiliplay ``` 然后在智汇的「B站视频」标签页中操作。 ## 项目结构 ``` . ├── main.go # 入口,配置加载、CLI参数、启动 ├── config.json # 用户配置 ├── go.mod / go.sum # Go 依赖 ├── internal/ │ ├── api/ │ │ └── handler.go # HTTP API 路由和处理 │ ├── indexer/ │ │ ├── bleve.go # 全文搜索索引 │ │ ├── sqlite.go # 文档元数据存储 │ │ └── indexer.go # 索引器核心逻辑 │ ├── model/ │ │ └── document.go # 数据模型 │ ├── parser/ │ │ ├── parser.go # 解析器接口和注册表 │ │ ├── text.go # 纯文本解析器 │ │ ├── markdown.go # Markdown 解析器 │ │ ├── word.go # Word 解析器 │ │ ├── excel.go # Excel 解析器 │ │ ├── pptx.go # PowerPoint 解析器 │ │ ├── pdf.go # PDF 解析器(含OCR检测) │ │ └── html.go # HTML 解析器 │ └── search/ │ └── query.go # 查询语法解析器 ├── web/ │ ├── index.html # Vue 3 前端页面 │ ├── app.js # Vue 3 前端逻辑 │ ├── style.css # 样式文件 │ ├── md-editor.html # Markdown 编辑器(沃垠AI·冷逸开发) │ └── i18n.js # 编辑器国际化文件 ├── docs/ │ └── user-manual.md # 用户操作手册 └── data/ # 自动创建:SQLite + Bleve 索引 ├── knowledge.db └── index.bleve/ ## 致谢 - **冷逸**(沃垠AI)— [lengyi-markdown-editor](https://gitee.com/liudc0810/lengyi-markdown-editor.git):内置 Markdown 编辑器的核心功能来自该项目,感谢冷逸开发的高质量编辑器 ```