
mini-rag
手把手分步教学,带你从零搭出生产级 RAG 应用
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 754
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Python 3.10+
- Docker
- 模型 API Key
安装与启动步骤
-
1装系统依赖
数据库头文件与编译器要装。
sudo apt install libpq-dev gcc python3-dev -
2建环境
官方指定 Python 3.10。
conda create -n mini-rag python=3.10 && conda activate mini-rag -
3装依赖
Python 包比较多。
pip install -r requirements.txt -
4起依赖服务
向量库与数据库用 compose 起。
sudo docker compose up -d -
5起 API
主服务用 uvicorn。
uvicorn main:app --reload --host 0.0.0.0 --port 5000 -
6起 worker
索引是异步的,必须另起队列进程。
python -m celery -A celery_app worker --queues=default,file_processing,data_indexing --loglevel=info
如何确认成功
上传一份 PDF 后能问到文中细节,回答带出处片段。
注意事项
- 流程是上传、切分、向量化、检索,缺 worker 会卡在排队。
- compose 的数据卷要提前留足空间。
核心亮点
- 分步教学结构清晰,每步有可运行代码,适合循序渐进学习
- 覆盖生产级细节(如 API 封装、部署考量),不止于 demo
- 代码简洁易懂,Python 技术栈上手门槛低
不足之处
- 教学项目示例数据/场景有限,深度不如专项教程
- 文档/社区待观察
适用场景
- 初学者系统学习 RAG 原理与工程实现
- 作为团队内部 RAG 技术培训的实操教材
- 快速搭建一个基础 RAG 应用原型并理解其架构
替代项目
LangChain、LlamaIndex、Haystack
同类项目推荐
tavily-python
开源
几行代码让 Python 应用接入联网搜索与内容提取
The Tavily Python SDK allows for easy interaction with the Tavily API, offering the ···
chat_with_your_docs
开源
上传文档,即刻对话,让AI帮你提炼知识
Discover and converse with advanced AI models like Mistral, LLAMA2, and GPT-3.5 from···
KnowledgeBase-RAG-LLM-System
开源
上传文档,即可搭建带本地知识库的聊天机器人
轻量级本地知识库 RAG 问答系统 · Streamlit + LangChain + Chroma,支持知识库上传与检索···
DataChad
开源
上传数据,直接聊天提问,秒得答案
Ask questions about any data source by leveraging langchains
duckdb-embedding-search
开源
用DuckDB跑向量搜索,免装向量数据库,小数据量秒级响应
Fast similarity search using DuckDB
hacker-news-digest
开源
让 ChatGPT 帮你每天速读 Hacker News,省时省力
:newspaper: Let LLM Summarize Hacker News for You
nextjs-openai-doc-search
开源
用自然语言提问,秒级获取带引用的文档答案
Template for building your own custom ChatGPT style doc search powered by Next.js, O···
arcana
开源
在 Elixir/Phoenix 里快速接入 RAG 智能搜索,自带仪表盘
Embeddable RAG library for Elixir/Phoenix with agentic pipelines and dashboard
chunkr
开源
复杂文档一键变 RAG 可用的结构化分块数据
Vision infrastructure to turn complex documents into LLM-ready data