Awesome-RAG
RAG 全栈实战资源库,涵盖 LangChain/LlamaIndex/Ollama 等主流框架的端到端示例代码
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
RAG 全栈实战资源库,涵盖 LangChain/LlamaIndex/Ollama 等主流框架的端到端示例代码
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你在用 GPT 或本地大模型回答专业问题时,是否遇到过这样的尴尬——模型一本正经地编造学术论文引用、虚构产品参数、甚至把行业术语张冠李戴?这种"幻觉"问题,正是 RAG(检索增强生成)技术诞生的根本原因:不让 AI 凭空发挥,而是让它"先查资料,再做回答"。
Awesome-RAG 就是这样一个一站式 RAG 学习与实战平台——它不是某个单一产品,而是一张覆盖 RAG 全流程的知识地图 + 实战代码库。无论你是刚入门的学生党,还是想落地企业知识库的开发老兵,这里都有你需要的东西。
Awesome-RAG 由独立开发者 lucifertrj 创建并维护,仓库建于 2023 年 12 月,至今持续活跃更新(最新更新于 2026 年 6 月)。作为一个纯个人维护项目,作者在仓库 README 中坦诚写道:
"我不是 AI 专家,但我热爱真正有用的 AI 应用。"
这种务实的态度贯穿整个项目。相比于学术界晦涩的论文和头部大厂的封闭 API 文档,Awesome-RAG 更像是一本"接地气的 RAG 实战手册",把复杂的技术路线拆解成可直接复制粘贴的示例代码。
项目获得 284 stars,收录了来自 LangChain、HuggingFace、LlamaIndex、Ollama 等主流框架的 RAG 实践案例,涵盖向量数据库选型、Embedding 模型对比、多模态文档解析等核心议题。
项目最核心的价值是提供了 LangChain 与 HuggingFace 两大主流框架的 RAG 实现对比。这两者并非替代关系——LangChain 提供高层次的链式编排能力,HuggingFace 提供底层模型生态,但它们的组合方式直接决定了 RAG 系统的上限。
Awesome-RAG 收录的框架路径包括:
| 框架组合 | 典型场景 | 技术特点 |
|---|---|---|
| LangChain + Chroma | 本地文档问答 | Ollama 本地推理,数据完全私有 |
| LlamaIndex + Qdrant | 企业知识库 | 云端向量检索,支持百万级文档 |
| HuggingFace + LlamaIndex | 模型微调 + RAG | Embedding 精调 + 检索增强 |
| GenAI Stack (deprecated) | Web 站点对话 | 支持多网站并发抓取与问答 |
特别值得推荐的是 "Build Your Own RAG Application" 章节,作者用 2 天时间从零构建了一个生产级 RAG 应用,完整覆盖了文档编码、向量入库、检索优化和生成调参的全流程,是新手入门的最佳实践路径。
项目包含一个可直接运行的 ollama-langchain 子模块,展示了如何用本地 Ollama 模型 + Chroma 向量数据库构建 RAG:
# ingest.py:文档向量化入库
from langchain_community.document_loaders import PyPDFLoader
from langchain_community.embeddings import HuggingFaceInferenceAPIEmbeddings
from langchain_community.vectorstores import Chroma
loader = PyPDFLoader("data/gsoc_proposal.pdf")
chunks = RecursiveCharacterTextSplitter(chunk_size=512).split_documents(loader.load())
vectorstore = Chroma.from_documents(chunks, embeddings, persist_directory="./db")
# app.py:检索增强生成
db = Chroma(persist_directory="./db", embedding_function=embeddings)
retriever = db.as_retriever(search_kwargs={"k": 2})
chain = {"context": retriever, "question": RunnablePassthrough()} | prompt | llm | output_parser
这套代码虽简洁,但完整展示了 RAG 的 R-I-A-G 五步流程(Retrieve、Identify、Augment、Generate),是理解 RAG 原理的绝佳起点。
项目还包含 evaluate_open_source/ 模块,对比测试了多个开源 Embedding 模型在不同 LLM 下的表现:
mixedbread-ai/mxbai-embed-large-v1 — 高质量 Embedding,兼容 Ollamabeyondllm + ollama 组合 — 端到端评测llama-index-embeddings-fastembed — 轻量级高速方案| 应用 | 说明 | 技术栈 |
|---|---|---|
| HealthBot | 医疗健康问答机器人 | LangChain Streaming |
| ResearchPaperBot | 学术论文解析助手 | PDF Loader + RAG |
| 多文档快速 RAG | 百万级文档秒检 | Binary Quantization |
| Chat with Website | 任意网站内容问答 | GenAI Stack |
Awesome-RAG 的使用方式以 命令行 + Python 脚本 为主,没有提供 Web UI 界面。需要读者具备:
ollama serve 和 ollama pull 怎么用)如果你只想快速体验 RAG 而不想折腾本地环境,推荐使用 "Simple RAG with Google Page Community" 方案——纯 API 调用,5 分钟跑通。
项目本身也有明显局限:
ollama-langchain/、apps/、evaluate_open_source/ 三个目录,缺乏统一包装,需要读者自行组装。llama2 模型较旧,新版 Ollama 已默认切换到 llama3,首次运行可能需要手动调整。Awesome-RAG 的增长轨迹,折射出 2023-2026 年 RAG 技术的演进路径:
项目的主题标签从最初的 ai、rag、llm,逐步扩展到 multi-agent、workflow,也印证了 RAG 从"单一检索"向"智能体协作"演进的行业趋势。
总结:Awesome-RAG 是一个以资源导航为核心、辅以实战代码的 RAG 学习仓库,适合有一定基础的开发者作为 RAG 技术选型和快速原型的参考手册。对于寻求开箱即用产品的用户,建议参考项目中的 "Build Your Own RAG Application" 路径,从零构建更可控的定制方案。