RAG从入门到实战:给大模型接上私有知识库 - U9AI导航

RAG从入门到实战:给大模型接上私有知识库

发布时间:2026-09-25T12:27:06.894Z

大模型不懂你的公司文档?RAG技术就是解决这个问题的。从原理到实操,用LangChain+ChromaDB搭一个能查内部文档的问答系统,代码不到100行。 大模型什么都好,就是不知道你公司内部的事。问它"我们公司的报销标准是多少",它只能瞎编。RAG就是解决这个问题的——Retrieval-Augmented Generation,检索增强生成。原理说穿了很简单:先从你的文档里搜出相关段落,把这些段落塞给大模型当参考资料,再让它基于资料回答。 我用最简单的技术栈跑一遍:Python + LangChain + ChromaDB(本地向量数据库)+ DeepSeek API。 先装依赖:pip install langchain chromadb openai pypdf。然后准备一份PDF文档——比如你们公司的员工手册。 核心代码分三步。第一步是加载和切分文档:用PyPDFLoader读PDF,然后用RecursiveCharacterTextSplitter把文档切成500字左右的块,重叠50字。切分大小很关键:切太大,检索进来一堆无关内容浪费token;切太小,上下文不完整。500字是个比较稳的起点。 第二步是建向量索引。把每个文本块通过embedding模型转成向量,存进ChromaDB。我用的是BAAI/bge-small-zh-v1.5这个开源中文embedding模型,本地跑不用花钱。这一步只做一次,后面查询直接复用索引。 第三步是问答。用户提问时,先把问题也转成向量,在ChromaDB里找最相似的3个文本块,然后拼一个prompt:"根据以下资料回答问题:[资料1][资料2][资料3]。问题是:[用户问题]"。把这个prompt发给DeepSeek API,返回的答案就是基于你文档内容生成的。 我拿一份20页的公司制度文档测了。问"年假怎么算",它准确回答了"入职满1年5天,满10年10天"——这些信息确实在文档里。问"有没有提到加班工资",它回答"文档中没有相关规定",没有瞎编。这就是RAG比微调靠谱的地方——答案有出处,不会幻觉。 实战中有两个坑要注意。一是文档格式混乱时切分效果差——表格、图片里的文字会丢,最好提前把文档转成纯文本。二是检索质量决定一切,如果搜出来的段落不相关,大模型再强也答不对。可以试试混合检索(关键词+向量)或者重新排序(rerank)提升准确率。 整套代码不到100行,一下午能跑通。先从这个最小demo开始,再根据效果逐步优化。

相关推荐