返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

用 LangGraph 打造了一个迷你 RAG:150 行代码跑通知识库问答

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 21:34 |阅读模式 打印 上一主题 下一主题

你是不是厌倦了在低代码平台上,拖拉拽一通操作搭建RAG系统?是不是想深入学习RAG,自己实现RAG的每一个步骤?今天我们将用最精简的方式,带你从零实现一个完整的RAG系统!通过LangChain+LangGraph实战,深入拆解RAG的每个核心模块,告别"黑箱"操作,真正理解检索增强生成的运行机制。

速览 MiniRAG

体积:不到 150 行核心代码

向量存储:PGVector,一个 Docker 命令搞定

嵌入 & 重排:直接调用 SiliconFlow API,无需本地 GPU

编排:LangGraph 工作流,像拼乐高一样搭链路

RAG流程图

MiniRAG流程图

项目结构

├── .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
向量存储
PGVector 存储嵌入
Docker 容器
检索 & 重排
先用向量召回 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)
Demo结果
(完)


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ