免费课程!从零开始构建生产级 RAG 系统,掌握热门 AI 工程技能
AI 项目第一阶段RAG 系统之 arXiv 论文策展器——聚焦学习者的生产级 RAG 系统之旅通过实践操作从零开始学习构建现代 AI 系统掌握当下最热门的 AI 工程技能检索增强生成RAG。课程介绍这是一个以学习者为中心的项目将构建一个完整的研究助手系统。该系统能自动获取学术论文理解其内容并运用先进的 RAG 技术回答研究问题。《arXiv 论文策展器》课程将教你采用行业最佳实践构建生产级 RAG 系统。与那些直接跳到向量搜索的教程不同遵循专业路径先掌握关键词搜索基础再结合向量进行混合检索。专业差异以成功公司的方式构建 RAG 系统——以坚实的搜索基础为依托辅以 AI 技术而非忽视搜索基础的纯 AI 优先方法。学完本课程将拥有自己的 AI 研究助手并具备为任何领域构建生产级 RAG 系统的深厚技术能力。你将构建的内容第 1 周完成包含 Docker、FastAPI、PostgreSQL、OpenSearch 和 Airflow 的基础设施搭建。第 2 周搭建自动从 arXiv 获取和解析学术论文的数据管道。第 3 周实现具备过滤和相关性评分功能的生产级 BM25 关键词搜索。第 4 周进行智能分块并结合关键词和语义理解实现混合搜索。第 5 周完成包含本地大语言模型LLM、流式响应和 Gradio 界面的完整 RAG 管道。第 6 周使用 Langfuse 跟踪和 Redis 缓存进行生产监控以优化性能。第 7 周构建基于 LangGraph 的智能 RAG 系统并集成 Telegram 机器人以实现移动访问。系统架构演进第 7 周智能 RAG 与 Telegram 机器人集成完整架构展示 Telegram 机器人与智能 RAG 系统 LangGraph 的集成。详细工作流程呈现 LangGraph 的工作流程包括决策节点、文档评分和自适应检索。代码演示与博客讲解基于 LangGraph 和 Telegram 的智能 RAG 系统介绍关键创新点智能决策代理评估并调整检索策略。文档评分通过语义评估自动进行相关性评估。查询重写结果不足时进行自适应查询优化。护栏机制检测域外内容防止幻觉生成。移动访问通过 Telegram 机器人在任何设备上实现对话式 AI。透明度完整跟踪推理步骤便于调试和建立信任。快速开始先决条件Docker Desktop含 Docker ComposePython 3.12 及以上版本UV 包管理器安装指南8GB 以上内存和 20GB 以上可用磁盘空间开始步骤克隆并设置项目git clone 项目仓库地址cd arxiv-paper-curator配置环境重要cp .env.example .env.env 文件包含 OpenSearch、arXiv API 和服务连接的所有必要配置默认配置即可使用。需要添加 Jina 嵌入免费 API 密钥和 Langfuse 密钥查看博客获取详情。安装依赖uv sync启动所有服务docker compose up --build -d验证一切正常curl http://localhost:8000/api/v1/health每周学习路径周数主题博客文章代码发布第 0 周AI 项目之母 - 6 个阶段《AI 项目之母 - 第 1 周基础设施基础》-第 1 周基础设施基础《支撑 RAG 系统的基础设施》week1.0第 2 周数据摄取管道《为 RAG 构建数据摄取管道》week2.0第 3 周OpenSearch 摄取与 BM25 检索《每个 RAG 系统都需要的搜索基础》week3.0第 4 周分块与混合搜索《使混合搜索生效的分块策略》week4.0第 5 周完整 RAG 系统《完整的 RAG 系统》week5.0第 6 周生产监控与缓存《生产就绪的 RAG监控与缓存》week6.0第 7 周智能 RAG 与 Telegram 机器人《基于 LangGraph 和 Telegram 的智能 RAG》week7.0克隆特定周的版本git clone --branch 版本号 https://github.com/jamwithai/arxiv-paper-curatorcd arxiv-paper-curatoruv syncdocker compose down -vdocker compose up --build -d将 版本号 替换为week1.0、week2.0 等。访问服务服务URL用途API 文档http://localhost:8000/docs交互式 API 测试Gradio RAG 界面http://localhost:7861用户友好的聊天界面Langfuse 仪表盘http://localhost:3000RAG 管道监控与跟踪Airflow 仪表盘http://localhost:8080工作流管理OpenSearch 仪表盘http://localhost:5601混合搜索引擎 UI注意查看 airflow/simple_auth_manager_passwords.json.generated 获取 Airflow 的用户名和密码。每周详细内容第 1 周基础设施基础从这里开始掌握支撑现代 RAG 系统的基础设施。学习目标使用 Docker Compose 完成基础设施设置。进行 FastAPI 开发具备自动文档和健康检查功能。配置和管理 PostgreSQL 数据库。设置 OpenSearch 混合搜索引擎。配置 Ollama 本地 LLM 服务。进行服务编排和健康监控。搭建具备代码质量工具的专业开发环境。架构概述FastAPI支持异步的 REST 端点端口 8000。PostgreSQL 16存储论文元数据端口 5432。OpenSearch 2.19带仪表盘的搜索引擎端口 9200、5601。Apache Airflow 3.0工作流编排端口 8080。Ollama本地 LLM 服务器端口 11434。设置指南uv run jupyter notebook notebooks/week1/week1_setup.ipynb完成指南按照第 1 周的笔记本进行实践设置和验证步骤。深度博客文章《支撑 RAG 系统的基础设施》——详细的操作指南和生产实践见解。第 2 周数据摄取管道基于第 1 周的基础设施学习自动获取、处理和存储学术论文。学习目标集成 arXiv API具备速率限制和重试逻辑。使用 Docling 进行科学 PDF 解析。利用 Apache Airflow 构建自动数据摄取管道。实现元数据提取和存储工作流。完成从 API 到数据库的完整论文处理流程。架构概述MetadataFetcher协调整个管道的主要编排器。ArxivClient具备速率限制和重试逻辑的论文获取器。PDFParserService基于 Docling 的科学文档处理服务。Airflow DAGs每日自动论文摄取工作流。PostgreSQL Storage结构化论文元数据和内容存储。实现指南uv run jupyter notebook notebooks/week2/week2_arxiv_integration.ipynb完成指南按照第 2 周的笔记本进行实践实现和验证步骤。深度博客文章《为 RAG 构建数据摄取管道》——arXiv API 集成和 PDF 处理。第 3 周关键词搜索优先——关键基础基于第 1 - 2 周的基础实现专业 RAG 系统依赖的关键词搜索基础。学习目标理解关键词搜索对 RAG 系统的重要性基础优先方法。进行 OpenSearch 索引管理、映射和搜索优化。掌握 BM25 算法及其有效关键词搜索背后的数学原理。使用查询 DSL 构建带过滤和增强功能的复杂搜索查询。进行搜索分析衡量相关性和性能。学习实际公司使用的生产模式。架构概述OpenSearch Servicesrc/services/opensearch/——专业搜索服务实现。Search APIsrc/routers/search.py——带 BM25 评分的搜索 API 端点。学习材料notebooks/week3/——完整的 OpenSearch 集成指南。质量指标精度、召回率和相关性评分。设置指南uv run jupyter notebook notebooks/week3/week3_opensearch.ipynb完成指南按照第 3 周的笔记本进行 OpenSearch 设置和 BM25 搜索实现。深度博客文章《每个 RAG 系统都需要的搜索基础》——使用 OpenSearch 完成 BM25 实现。第 4 周分块与混合搜索——语义层基于第 3 周的基础添加使搜索真正智能化的语义层。学习目标进行基于章节的分块实现智能文档分割。集成 Jina AI 进行生产级嵌入并掌握备用策略。掌握使用 RRF 融合进行关键词 语义检索的混合搜索。设计统一 API单个端点支持多种搜索模式。分析搜索方法之间的性能和权衡。架构概述Text Chunkersrc/services/indexing/text_chunker.py——具备重叠策略的章节感知分块。Embeddings Servicesrc/services/embeddings/——基于 Jina AI 的生产级嵌入管道。Hybrid Search APIsrc/routers/hybrid_search.py——支持所有模式的统一搜索 API。学习材料notebooks/week4/——完整的混合搜索实现指南。设置指南uv run jupyter notebook notebooks/week4/week4_hybrid_search.ipynb完成指南按照第 4 周的笔记本进行实践实现和验证步骤。深度博客文章《使混合搜索生效的分块策略》——生产级分块和 RRF 融合实现。第 5 周集成 LLM 的完整 RAG 管道基于第 4 周的混合搜索添加将搜索转化为智能对话的 LLM 层。学习目标集成 Ollama 本地 LLM确保数据完全隐私。通过减少 80% 的提示实现性能优化速度提高 6 倍。使用 Server-Sent Events 实现流式响应实现实时交互。设计双 API包含标准和流式端点。构建具有高级参数控制的交互式 Gradio 界面。架构概述RAG Endpointssrc/routers/ask.py——双端点/api/v1/ask /api/v1/stream。Ollama Servicesrc/services/ollama/——优化提示的 LLM 客户端。System Promptsrc/services/ollama/prompts/rag_system.txt——针对学术论文优化的提示。Gradio Interfacesrc/gradio_app.py——支持流式的交互式 Web UI。Launcher Scriptgradio_launcher.py——简易启动脚本运行在端口 7861。设置指南uv run jupyter notebook notebooks/week5/week5_complete_rag_system.ipynbuv run python gradio_launcher.py打开 http://localhost:7861。完成指南按照第 5 周的笔记本进行 LLM 集成和 RAG 管道实现。深度博客文章《完整的 RAG 系统》——集成本地 LLM 并进行优化的完整 RAG 系统。第 6 周生产监控与缓存基于第 5 周的完整 RAG 系统添加可观测性、性能优化和生产级监控。学习目标集成 Langfuse 进行端到端 RAG 管道跟踪。采用 Redis 缓存策略实现智能缓存键和 TTL 管理。使用实时仪表盘监控性能包括延迟和成本。学习生产级可观测性和优化模式。进行成本分析和 LLM 使用优化缓存可提速 150 - 400 倍。架构概述Langfuse Servicesrc/services/langfuse/——集成完整跟踪和 RAG 特定指标。Cache Servicesrc/services/cache/——具备精确匹配缓存和优雅回退的 Redis 客户端。Updated Endpointssrc/routers/ask.py——集成跟踪和缓存中间件。Docker Configdocker-compose.yml——添加 Redis 服务和 Langfuse 本地实例。学习材料notebooks/week6/——完整的监控和缓存实现指南。设置指南uv run jupyter notebook notebooks/week6/week6_cache_testing.ipynb完成指南按照第 6 周的笔记本进行 Langfuse 跟踪和 Redis 缓存实现。深度博客文章《生产就绪的 RAG监控与缓存》——具备监控和缓存的生产就绪 RAG 系统。第 7 周基于 LangGraph 和 Telegram 机器人的智能 RAG基于第 6 周的生产系统添加智能推理、多步决策和 Telegram 机器人集成实现移动优先的 AI 交互。学习目标使用 LangGraph 工作流进行基于状态的代理编排包含决策节点。实现护栏机制进行查询验证和域边界检测。通过语义相关性评估进行文档评分。进行查询重写实现自动查询优化和更好的检索。实现自适应检索具备多尝试检索和智能回退。集成 Telegram 机器人支持异步操作和错误处理。通过公开代理决策过程实现推理透明度。架构概述Agent Nodessrc/services/agents/nodes/——护栏、检索、评分、重写和生成节点。Workflow Orchestrationsrc/services/agents/agentic_rag.py——LangGraph 工作流协调。Telegram Botsrc/services/telegram/——命令处理和消息处理。Agentic Endpointsrc/routers/agentic_ask.py——智能 RAG API 端点。学习材料notebooks/week7/——第 7 周的学习材料和示例。设置指南uv run jupyter notebook notebooks/week7/week7_agentic_rag.ipynb完成指南按照第 7 周的笔记本进行 LangGraph 智能 RAG 和 Telegram 机器人实现。深度博客文章《基于 LangGraph 和 Telegram 的智能 RAG》——构建具备决策、自适应检索和移动访问功能的智能代理。配置设置cp .env.example .env编辑 .env 文件以适应你的环境。关键变量JINA_API_KEY第 4 周及以后需要带嵌入的混合搜索。TELEGRAM__BOT_TOKEN第 7 周需要Telegram 机器人集成。LANGFUSE__PUBLIC_KEY 和 LANGFUSE__SECRET_KEY第 6 周可选监控。完整配置查看 .env.example 获取所有可用选项和详细文档。参考与开发指南技术栈服务用途状态FastAPI带自动文档的 REST API就绪PostgreSQL 16论文元数据和内容存储就绪OpenSearch 2.19混合搜索引擎BM25 向量就绪Apache Airflow 3.0工作流自动化就绪Jina AI嵌入生成第 4 周就绪Ollama本地 LLM 服务第 5 周就绪Redis高性能缓存第 6 周就绪LangfuseRAG 管道可观测性第 6 周就绪开发工具UV、Ruff、MyPy、Pytest、Docker Compose项目结构arxiv-paper-curator/├── src/ # 主应用代码│ ├── routers/ # API 端点搜索、问答、论文│ ├── services/ # 业务逻辑OpenSearch、Ollama、代理、缓存│ ├── models/ # 数据库模型SQLAlchemy│ ├── schemas/ # Pydantic 验证模式│ └── config.py # 环境配置├── notebooks/ # 每周学习材料第 1 - 7 周├── airflow/ # 工作流编排DAGs├── tests/ # 测试套件└── compose.yml # Docker 服务编排API 端点参考端点方法描述周数/healthGET服务健康检查第 1 周/api/v1/papersGET列出存储的论文第 2 周/api/v1/papers/{id}GET获取特定论文第 2 周/api/v1/searchPOSTBM25 关键词搜索第 3 周/api/v1/hybrid-search/POST混合搜索BM25 向量第 4 周API 文档访问 http://localhost:8000/docs 进行交互式 API 探索。基本命令使用 Makefile推荐# 查看所有可用命令make help# 快速工作流make start# 启动所有服务make start# 检查所有服务健康状况make health# 运行测试make test# 停止服务make stop所有可用命令命令描述make start启动所有服务make stop停止所有服务make restart重启所有服务make status显示服务状态make logs显示服务日志make health检查所有服务健康状况make setup安装 Python 依赖make format格式化代码make lint代码检查和类型检查make test运行测试make test-cov运行带覆盖率的测试make clean清理所有内容直接命令可选# 启动服务docker compose up --build -d# 检查状态docker compose ps# 查看日志docker compose logs# 运行测试uv run pytest目标受众受众原因AI/ML 工程师学习超越教程的生产级 RAG 架构软件工程师采用最佳实践构建端到端 AI 应用程序数据科学家使用现代工具实现生产级 AI 系统故障排除常见问题服务无法启动等待 2 - 3 分钟查看 docker compose 日志。端口冲突停止使用端口 8000、8080、5432、9200 的其他服务。内存问题增加 Docker Desktop 的内存分配。获取帮助查看第 1 周笔记本的综合故障排除部分。查看服务日志docker compose logs [服务名称]。完全重置docker compose down --volumes docker compose up --build -d成本结构本课程完全免费只需为可选服务支付少量费用本地开发$0所有操作在本地运行可选云 API外部 LLM 服务约 $2 - 5可选开启你的 AI 工程之旅从第 1 周的设置笔记本开始构建你的第一个生产级 RAG 系统本课程专为希望掌握现代 AI 工程的学习者打造。由 Shirin Khosravi Jam 和 Shantanu Ladhwe 精心制作。许可证MIT 许可证——详情见 LICENSE 文件。