|
你是不是厌倦了在低代码平台上,拖拉拽一通操作搭建RAG系统?是不是想深入学习RAG,自己实现RAG的每一个步骤?今天我们将用最精简的方式,带你从零实现一个完整的RAG系统!通过LangChain+LangGraph实战,深入拆解RAG的每个核心模块,告别"黑箱"操作,真正理解检索增强生成的运行机制。 速览 MiniRAG体积:不到 150 行核心代码 向量存储:PGVector,一个 Docker 命令搞定 嵌入 & 重排:直接调用 SiliconFlow API,无需本地 GPU 编排:LangGraph 工作流,像拼乐高一样搭链路 RAG流程图:  项目结构├── .env # 环境变量配置 ├── README.md # 项目说明 ├── demo_embedding.py # 文档嵌入示例 ├── demo_minirag.py # 问答系统示例 ├── src/ │ ├── config.py # 配置加载 │ ├── embedding.py # 嵌入逻辑 │ ├── prompts.py # 提示词模板 │ ├── reranker.py # 重排序逻辑 │ └── workflow.py # 工作流定义
麻雀虽小,五脏俱全 | | |
|---|
| 支持 4 种格式,自动按 1024token 切片 | src/embedding.py | | | | | 先用向量召回 Top-10 * n,再用 Reranker 取 Top-5 | src/reranker.py | | 自带中文模板,可自定义 system prompt | src/prompts.py | | LangGraph 可视化 DAG,方便加日志、重试 | src/workflow.py |
15行代码快速测试文档嵌入,运行demo_embedding.py fromsrc.embeddingimportload_and_chunk load_and_chunk( file_path =r"E:\vanna_technical_article.md", separator ="\n\n", chunk_size =1024, chunk_overlap =80 )
知识问答,运行demo_minirag.py fromsrc.workflowimportMiniRag minirag = MiniRag() query ="怎么使用Vanna实现chatBI" chunks = [] forchunkinminirag.invoke(query): chunks.append(chunk) print(chunks)

|