graph LR
A[原始笔记] --> B(Ingestion Pipeline)
B -->|1. 存原始文件| C[(data/files/)]
B -->|2. 记笔记索引| D[(data/sql_db/)]
B -->|3. 分块向量化| E[(data/chroma_db/)]
F[用户提问] --> G[RAG Agent]
G -->|1. 查询理解| G
G -->|2. 路由工具| H{工具选择}
H -->|search_notes| E
H -->|search_by_tags| D
H -->|get_file_content| C
E --> G
D --> G
C --> G
G -->|3. generation 后处理| I[重排序 + 去重]
I -->|4. 生成答案| J[答案 + 溯源引用]
🧠 AlgoNotes RAG - 个人算法竞赛笔记智能助手
📖 项目背景:从“算力奢侈品”到“个人外置大脑”
回到项目发起人(即笔者 fangtianchen)学习信息学奥赛(OI)的“前 AI 时代”,那时学习路径高度依赖博客笔记、碎片化题解与反复试错。那时,DeepSeek R1 尚未问世,GPT 等大语言模型对中学生而言仍是遥不可及的“算力奢侈品”。每一位选手都在黑暗中独自摸索:手写推导、整理错题、反复调试,知识沉淀缓慢且极易断层。笔者在经历了高三的题海与模考的挫折后,许多本可结构化的认知轨迹,最终散落在 cnblogs、洛谷提交记录与本地文件夹中,这让高考后复健算法准备 ICPC 遇到困难。
如今,AI 技术普惠与国产算力崛起正在重塑这一切。沐曦 GPU、Gitee.AI 等国产基础设施的成熟,让“每个人都能拥有专属 AI 助手”从愿景走向现实。然而,市面上的竞赛辅助工具多聚焦于“公共题库检索”或“通用代码生成”,却忽略了竞赛生最核心的资产——个人在实战中沉淀的认知路径。
AlgoNotes RAG 正是在此背景下诞生。它不追求替代人类的思考,而是致力于成为 OI/ICPC 选手的“私有外置大脑”:
本项目是国产 AI 算力在垂直教育场景的一次轻量级验证。我们以 MVP 闭环证明技术可行性,以开源姿态拥抱社区,希望向更多选手传递一个信念:在算法竞赛与个性化学习领域,中国开发者完全有能力用本土算力构建高质量工具。
📊 核心差异化:为什么需要它?
uv sync零依赖启动✅ 场景互补:本项目不替代公共知识图谱,而是通过两者配合使用,以填补 “个人碎片化知识管理” 空白。适合高三后复健、省选/NOIP 备赛阶段的私有化认知加固。
🏗️ MVP 架构设计(v1.0 已实现)
当前版本聚焦 可验证的核心闭环,采用轻量级架构确保比赛周期内稳定交付:
graph LR A[原始笔记] --> B(Ingestion Pipeline) B -->|1. 存原始文件| C[(data/files/)] B -->|2. 记笔记索引| D[(data/sql_db/)] B -->|3. 分块向量化| E[(data/chroma_db/)] F[用户提问] --> G[RAG Agent] G -->|1. 查询理解| G G -->|2. 路由工具| H{工具选择} H -->|search_notes| E H -->|search_by_tags| D H -->|get_file_content| C E --> G D --> G C --> G G -->|3. generation 后处理| I[重排序 + 去重] I -->|4. 生成答案| J[答案 + 溯源引用]MarkdownHeaderTextSplitter按标题分块 +RecursiveCharacterTextSplitter大块二次分割 + 自动注入source/type/ingested_at元数据 + Chromaadd_documents()data/files/)+ 关系索引(data/sql_db/)+ 向量库(data/chroma_db/)chain.stream()logging模块 + JSON Lines 格式 + LangSmith Trace 集成 + 自动计时器(time.perf_counter())src/mcp/模块,MCP 协议标准接口scripts/模块,argparse + Textual TUI🚀 5分钟快速开始
1️⃣ 环境准备
2️⃣ 配置沐曦算力 (Gitee.AI)
复制
.env.example为.env,填入 API Key,编辑config.toml:3️⃣ 使用 CLI 或运行 MCP 服务
使用本项目,运行本项目 MCP 服务的方法:
运行公开题库知识图谱 MCP 服务:
把两个 MCP 服务添加到你的 AI 前端(如 VS Code/Claude Code/Open Code/Codex),开始你的个人笔记管理之旅。
🤖 MCP 服务封装(比赛核心交付)
项目内置标准 MCP Server,按逻辑分类暴露以下四类工具供 AI Agent 调用(每类下可注册多个具体工具,具体见 mcp 文档):
ingest_notesdata/files/→ 记索引到data/sql_db/→ 分块/打标 → 入库data/chroma_db/update_notesdelete_notessearch_notesCLI 的使用方法与其类似,具体见文档。
📈 性能与验证数据
全程基于 沐曦 GPU (Gitee.AI) 真实调用,内置自动化日志收集,使用 LangSmith 观测数据:
🗺️ Roadmap:从 MVP 到个人知识引擎
本项目采用 分阶段交付 策略,确保核心价值先行,架构能力持续演进:
📚 文档目录
🤝 参考声明与合规说明
本项目严格遵守 CCF 开源创新大赛 规则,在以下方面参考了开源项目:
本项目所有核心代码(摄取/检索/生成/MCP封装)均为原创实现,仅借鉴架构思想与接口契约。
📜 License
MIT License. 欢迎 Fork、Issue、PR。
竞赛生专属优化建议请直接提交 Issue,我们将优先排期。
📺 演示视频
待录制