personal-notes-assistant
Enables querying, listing, and summarizing personal knowledge base documents using RAG with hybrid search and LLM.
README
个人笔记助手
个人笔记助手是一套基于 RAG(检索增强生成)与 MCP(Model Context Protocol)的本地知识管理服务。它可以摄取 PDF、Markdown 和文本资料,将内容切分、向量化并建立索引,再通过混合检索、重排和大语言模型生成带上下文的回答。
项目适合用于整理个人学习资料、工作文档、读书笔记与长期知识库。核心组件均可通过配置替换,既可以在本地运行,也可以接入 OpenAI、Azure OpenAI、Ollama 等服务。
核心能力
- 文档摄取:解析文档、切分内容、补充元数据并写入向量库。
- 混合检索:结合 Dense Embedding、BM25、RRF Fusion 与可选重排器。
- 多模态处理:通过 Vision LLM 为文档图片生成描述,让图片信息参与检索。
- MCP 工具:提供知识查询、集合列表和文档摘要接口,方便 AI 客户端调用。
- 可视化管理:使用 Streamlit 查看数据、摄取任务、查询链路和评估结果。
- 质量评估:支持 Ragas、自定义指标和 Golden Test Set 回归测试。
- 可观测性:记录摄取与查询过程中的阶段状态、耗时和错误信息。
项目结构
personal-notes-assistant/
├── config/ # 服务、模型与提示词配置
├── data/ # 本地索引、数据库和文档数据
├── logs/ # 运行与评估日志
├── scripts/ # 摄取、查询、评估和仪表盘脚本
├── src/
│ ├── core/ # 查询、响应、配置与链路追踪
│ ├── ingestion/ # 文档摄取流水线
│ ├── libs/ # 模型、检索、存储等可插拔实现
│ ├── mcp_server/ # MCP 服务与工具
│ └── observability/ # 仪表盘和评估模块
├── tests/ # 单元、集成和端到端测试
├── main.py # MCP 服务入口
└── pyproject.toml # Python 项目配置
环境要求
- Python 3.10 或更高版本
- 至少一种可用的 LLM 与 Embedding 服务
- Windows、macOS 或 Linux
安装
python -m venv .venv
Windows:
.venv\Scripts\Activate.ps1
pip install -e ".[dev]"
macOS / Linux:
source .venv/bin/activate
pip install -e ".[dev]"
根据实际使用的模型服务,在 config/settings.yaml 中选择提供商,并通过环境变量配置对应凭据。不要把真实密钥写入仓库。
使用方法
摄取文档:
python scripts/ingest.py <文档路径>
查询个人知识库:
python scripts/query.py "你的问题"
启动 MCP 服务:
python main.py
启动管理仪表盘:
python scripts/start_dashboard.py
运行测试:
pytest
运行不依赖真实模型服务的快速测试:
pytest tests/unit -m "not llm"
MCP 工具
| 工具 | 用途 |
|---|---|
query_knowledge_hub |
检索个人知识库并生成回答 |
list_collections |
查看已有知识集合 |
get_document_summary |
获取指定文档摘要 |
配置说明
主要配置文件为 config/settings.yaml,包括:
- LLM、Vision LLM 与 Embedding 提供商
- 文档切分和元数据增强策略
- Dense、BM25、RRF 与重排参数
- Chroma 等存储后端
- 日志、链路追踪和评估选项
修改配置后建议先摄取少量文档,再通过命令行查询和仪表盘检查结果。
安全与数据说明
data/与logs/可能包含个人文档、索引和查询记录,请按需要加入备份或清理策略。- 使用云端模型时,文档片段可能发送给相应服务商;敏感资料建议使用本地模型。
- 示例凭据文件仅用于说明字段,真实密钥应保存在环境变量或密钥管理工具中。
许可证
本项目采用 MIT License。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。