章节 01
导读:LLM_MVC——极简本地RAG问答机器人实现
LLM_MVC是一个最小可行代码(Minimal Viable Code)实现的本地RAG问答系统,基于Markdown知识库,支持自动分块、ChromaDB向量存储、多文件索引和带引用的回答生成。该项目依赖极简(仅openai、chromadb、python-dotenv三个核心库),代码精简,旨在帮助开发者以极低门槛理解RAG核心工作原理,同时具备实用性,可直接用于个人知识库管理与问答。
正文
基于本地 Markdown 知识库的检索增强生成(RAG)问答系统,支持自动分块、ChromaDB 向量存储、多文件索引和带引用的回答生成。
章节 01
LLM_MVC是一个最小可行代码(Minimal Viable Code)实现的本地RAG问答系统,基于Markdown知识库,支持自动分块、ChromaDB向量存储、多文件索引和带引用的回答生成。该项目依赖极简(仅openai、chromadb、python-dotenv三个核心库),代码精简,旨在帮助开发者以极低门槛理解RAG核心工作原理,同时具备实用性,可直接用于个人知识库管理与问答。
章节 02
LLM_MVC由Holden-Lin开发维护,项目名中"MVC"强调最小可行代码的设计理念,核心价值是用最少代码行数展示RAG系统核心原理,同时保持实用性。与复杂RAG框架不同,其仅需三个核心依赖,降低安装维护成本,让开发者能清晰追踪数据流环节。
章节 03
LLM_MVC遵循标准RAG范式:用户提问→Embedding向量化→ChromaDB top-k检索→LLM生成带引用回答。系统使用OpenAI的text-embedding-3-small模型(可配置切换)将问题与文档转为向量,存储于本地ChromaDB并支持持久化;用户提问时计算问题向量,检索语义最相近的top-k文本片段。
章节 04
文档分块是RAG关键环节,LLM_MVC实现自动检测文档结构的智能分块机制:
---分隔的笔记类文件,每个条目为独立chunk,过长则按段落拆分并保留重叠区域;#到####层级切分,每个chunk继承完整标题链(如产品指南>安装>环境要求)。
两种模式均支持段落合并、200字符重叠窗口、智能断句。章节 05
带引用回答:系统要求LLM在回答中标注[1][2]等来源编号,生成后自动输出参考列表(含原文片段与文件路径)。
配置与交互:通过.env管理配置(知识库路径、分块参数、检索参数、模型配置等);运行后进入REPL模式,支持/debug(仅显示检索chunks)、/reindex(重建索引)、/quit(退出)命令。
章节 06
索引更新:启动时计算知识库文件MD5哈希,与ChromaDB存储的哈希比对,一致则跳过索引,不同则全量重建;也可通过/reindex手动触发。
应用场景:个人知识管理、客服知识库(带URL引用)、RAG学习入门、原型快速验证。
章节 07
LLM_MVC的技术亮点包括:
章节 08
LLM_MVC证明实用RAG系统无需复杂架构与繁重依赖。通过精心设计的分块策略、清晰配置管理和高效索引机制,为开发者提供理想起点——无论是个人知识管理,还是深入学习RAG技术的入门案例。阅读其源码是理解RAG工作原理的直观方式。