RAG实战笔记(二)LangChain / LlamaIndex 框架入门
温馨提示:结合资源学习效果更加!配套代码路径:src/qa_chain.py、src/retriever.py。详见以下项目文件资源csdn平台地址微信公众号原文链接
https://mp.weixin.qq.com/s/jd-A8DHyAdesJnjD-TjThQ
资源文件目录展示
项目名称:从零搭建一套完整的 RAG 私有知识库问答系统 ,下面我以此作为示例进行分析学习。

一、为什么用框架
自己拼 OpenAI + FAISS 也能做 RAG,但LangChain / LlamaIndex框架提供了:
-
统一的组件抽象(LLM / Embedding / VectorStore / Retriever / Document);
-
可替换后端(换模型、换向量库只改配置);
-
丰富的集成(上百种数据源、模型、存储)。

二、LangChain 核心概念
|
概念 |
作用 |
本项目对应 |
|---|---|---|
Document |
文本 + 元数据 |
document_loader.py |
TextSplitter |
切片 |
chunker.py |
Embeddings |
向量化接口 |
embeddings.py |
VectorStore |
向量存储检索 |
vectorstore.py(FAISS) |
Retriever |
召回接口 |
retriever.py |
PromptTemplate |
提示词 |
qa_chain.py |
Runnable(LCEL) |
链式编排 |
qa_chain.py |
最小示例(LCEL 链式):

三、LlamaIndex 和 LangChain 对比
LlamaIndex 更「RAG 专精」:以 Index 为核心,数据摄入/索引/查询 API 极简, 适合「把一堆文档变成可问答索引」的场景;生态集成不如 LangChain 广。 本项目选 LangChain,是因为需要灵活组合「多路召回 + 重排 + 自定义 Prompt」, LangChain 的组合能力更强,也方便你顺手接入 LlamaIndex 做对比实验。两者可混用:用 LlamaIndex 建索引,把结果转成 LangChain Document 接入本管线。
四、快速上手路线
(简单示例,具体操作步骤以实战,项目文件资源csdn平台地址:
https://download.csdn.net/download/GreenHands495/93326491中的使用说明为准)
-
装依赖:
pip install -r requirements.txt(本地 Embedding/重排见requirements-extra.txt)。


-
配密钥:复制
.env.example为.env,填入OPENAI_API_KEY。 -
放文档:把资料丢进
data/docs/。
-
建索引:
python -m src.ingest。检查配置,确定AI大模型没有问题,可以用openai或ollama本地部署方式,这里用ollama示例。

因为我这里这里用的是本地大模型,所以用ollama部署了nomic-embed-text和qwen2.5:7b
python -m src.ingest 的流程:
解析文档 → 切片 → 调用 Ollama nomic-embed-text 把每个切片变成向量 → 保存索引
第 3 步向量化需要 Ollama 服务响应,所以必须开着。
python -m src.query 时也需要:
用 nomic-embed-text 把你的问题向量化
用 qwen2.5:7b 根据检索结果生成答案

简单说:Ollama = 你的本地大脑(Embedding + LLM),关掉它等于关掉大脑,项目就跑不动了。
检查配置没问题之后开始执行python -m src.ingest创建索引

创建完成之后会生成向量数据库
rag_kb.faiss 向量索引文件(FAISS格式)
rag_kb.pkl 对应的元数据(切片内容、来源信息)

-
问答:
python -m src.query,或python -m src.web_ui用界面。这里用图形化页面演示,执行python -m src.web_ui命令之后,浏览器进入http://127.0.0.1:7860

提问问题查看系统会检索知识库并返回带来源的答案

与导入的数据来源文件对比,上面截图中提问了“RAG的概念是什么?”的回答是准确的,而提问“LangChain的概念是什么?”的时候,因为知识库示例文档中没有此问题相关的记录所以无法查询到。

至此,本篇已经结束,
最后
RAG 是当前大模型落地最实用的技术之一。与其反复折腾 Prompt,不如让模型"开卷考试"——把参考资料摆在面前,答案自然更准确、更可信。
希望这个项目能成为你 RAG 实战的起点,而不仅仅是终点。
更多推荐

所有评论(0)