教程人工智能大模型RAG【免费下载链接】all-in-rag大模型应用开发实战一RAG 技术全栈指南在线阅读地址https://datawhalechina.github.io/all-in-rag/项目地址https://gitcode.com/datawhalechina/all-in-rag点击查看免费下载导读本文以开源仓库 Datawhale all-in-rag 的 C8 章节食谱知识库中的 小炒肉.md 为分析样本完整还原这道湘式家常菜从原料配比、腌制到出锅的 10 步做法并以此为窗口深入解析该菜谱文档在仓库 RAG检索增强生成系统中所扮演的数据角色Markdown 结构感知分块、难度星级元数据解析、混合检索向量 BM25 RRF与分步骤回答生成的全链路机制。读完本文你既能照着做出地道的小炒肉也能理解一份食谱文档如何被「烹饪式」地加工成可检索、可回答的 RAG 知识库语料。一、小炒肉食谱文档在项目中的定位小炒肉食谱是 data/C8 食谱数据集下meat_dish荤菜分类的一篇标准 Markdown 菜谱。在仓库的目录设计中每道菜都以独立 Markdown 文件存放路径本身携带了分类信息分类依据路径中的目录名meat_dish会被映射为「荤菜」菜品名称文件名小炒肉会被提取为dish_name元数据难度等级文档正文中的星级★★★会被解析为「中等」。这份文档是 code/C8 中「尝尝咸淡」食谱 RAG 系统的输入语料之一。整个系统围绕data/C8/cook下的全部菜谱构建索引用户提问「小炒肉怎么做」「推荐几个荤菜」时系统会先检索相关菜谱再由大模型组织回答。二、必备原料与工具清单原文档完整罗列了制作小炒肉所需的原料与调料摘自 小炒肉.md五花肉朝天椒小米椒豆豉豆瓣酱老抽淀粉盐葱蒜从配料结构看这是一道典型的「干煸五花 双椒 豉香」风味菜朝天椒提供干香小米椒提供鲜辣豆豉与豆瓣酱叠加发酵酱香老抽上色、淀粉锁水是湘式小炒中「煸香 酱香 辣香」三味合一的代表做法。三、每份用量计算原料配比表原文档按「每份」给出精确配比摘自 小炒肉.md原料用量每份备注五花肉500g主料建议选肥瘦相间的三层五花朝天椒4 条干香辣味小米椒4 颗鲜辣味豆豉10g可根据个人口味 ±5g豆瓣酱10g可根据个人口味 ±5g老抽10ml上色淀粉10g腌制用锁住肉汁盐1-2g腌制底味葱0.5-1 根切段出锅前增香蒜2 瓣煸香食用油15ml煸炒用油配比要点豆豉与豆瓣酱均给出 ±5g 的浮动空间说明这两味酱料是风味弹性最大的变量——喜重口可加到 15g喜清淡可减至 5g盐仅需 1-2g因为豆瓣酱与豆豉本身含盐腌制时注意不要过咸。四、分步操作10 步还原小炒肉原文档的完整操作步骤摘自 小炒肉.md切肉五花肉切片。建议切成 2-3mm 的薄片肥瘦相连便于快速煸出油脂。腌制肉片放入器皿加入淀粉、老抽、盐搅拌腌制半小时。淀粉 老抽 盐的腌料组合既上色又保水半小时的静置让肉片充分吸收底味。备葱葱切段。备椒小米椒、朝天椒斜刀切好。斜刀切法增大辣椒与热油的接触面积更易释放辣味与香气。热锅热锅、倒油15ml。煸肉油热后加入五花肉煸炒炒至变色后盛出。这一步目的是逼出五花肉部分油脂使肉片边缘微焦、口感干香。煸料头锅中加蒜煸出香味加入豆豉翻炒均匀。豆豉需经油温激发才会释放豉香。下酱加入豆瓣酱翻炒均匀。豆瓣酱需炒出红油酱香才充分。合炒加入炒好的五花肉继续翻炒均匀让肉片均匀裹上酱料。收尾加入小米椒、朝天椒、葱段翻炒 40 秒后出锅。辣椒与葱段不宜久炒40 秒恰好断生并保持脆感。五、从菜谱到语料Markdown 结构感知分块小炒肉这道菜谱之所以能被 RAG 系统有效检索关键在于其规范的 Markdown 标题结构。仓库的数据准备模块 data_preparation.py 使用MarkdownHeaderTextSplitter按三级标题分块headers_to_split_on [ (#, 主标题), # 菜品名称 (##, 二级标题), # 必备原料、计算、操作等 (###, 三级标题) # 简易版本、复杂版本等 ] markdown_splitter MarkdownHeaderTextSplitter( headers_to_split_onheaders_to_split_on, strip_headersFalse # 保留标题便于理解上下文 )对应到小炒肉文档它会被切分为「主标题小炒肉的做法」「二级标题必备原料和工具」「二级标题计算」「二级标题操作」等独立 chunk。strip_headersFalse意味着每个 chunk 都保留标题文本使检索到的片段自带语义上下文——当用户问「小炒肉需要什么原料」时系统能直接命中「必备原料和工具」这一块。分块后每个子块还会被打上chunk_id、parent_id、chunk_index等元数据并维护parent_child_map父子映射见 data_preparation.py为后续「检索子块 → 回溯完整菜谱」的小块召回 / 父文档生成Parent Document Retrieval模式奠定基础。六、元数据增强星级如何变成「中等」数据准备模块会对每篇菜谱自动增强元数据见 data_preparation.py# 提取菜品分类路径含 meat_dish → 荤菜 # 提取菜品名称文件名 小炒肉 → 小炒肉 # 分析难度等级使用正则精确匹配连续星号数量 star_match re.search(r★, content) if star_match: star_count len(star_match.group()) difficulty_map {5: 非常困难, 4: 困难, 3: 中等, 2: 简单, 1: 非常简单} doc.metadata[difficulty] difficulty_map.get(star_count, 未知)小炒肉文档开头的「预估烹饪难度★★★」会被正则★匹配到连续 3 颗星从而映射为难度「中等」。这解释了菜谱文档为什么约定用连续星号而非「三颗星」之类的文字表述——星号长度可直接被正则计算是机器友好的难度编码方式。增强后的元数据category荤菜、dish_name小炒肉、difficulty中等会随子块一并进入向量索引并被检索阶段的元数据过滤和回答生成阶段的上下文格式化所复用。七、检索与生成小炒肉如何被「回答」出来7.1 混合检索 RRF 重排索引构建模块 index_construction.py 使用BAAI/bge-small-zh-v1.5嵌入模型在 CPU 上完成向量化并构建 FAISS 索引检索优化模块 retrieval_optimization.py 则同时启用向量检索与 BM25 检索再用 RRFReciprocal Rank Fusion融合排序rrf_score 1.0 / (k rank 1) # k 默认 60当用户问「小炒肉怎么做」时向量检索负责语义匹配「做法 / 操作」类片段BM25 则精确命中「小炒肉」这一关键词两者经 RRF 融合后按 config.py 中的top_k3返回 Top-3 子块。7.2 查询路由与分步骤回答主程序 main.py 在检索前先用大模型对问题路由list推荐列表/detail具体做法/general一般问题。「小炒肉怎么做」会被路由为detail随后触发generate_step_by_step_answer——生成集成模块 generation_integration.py 中的烹饪导师提示词会要求 LLM 按「菜品介绍 / 所需食材 / 制作步骤 / 制作技巧」组织回答且明确「优先使用原文中的实用技巧如果原文的附加内容与烹饪无关或为空可以省略」——小炒肉文档的「附加内容」章节为空模型将基于制作步骤总结要点。检索到的子块会通过get_parent_documents回溯到完整菜谱见 data_preparation.py保证生成阶段拿到的是包含原料、用量、操作在内的整篇小炒肉文档而非零散片段。八、动手实践运行与提问在code/C8目录下按 requirements.txt 安装依赖设置MOONSHOT_API_KEY环境变量后运行 main.pyexport MOONSHOT_API_KEYyour_key_here python main.py系统默认数据路径为../../data/C8/cook可覆盖 config.py 中的data_path、embedding_model、llm_model、top_k、temperature等配置。可尝试的提问「小炒肉怎么做」→ 路由为 detail返回分步骤制作指导「推荐几道荤菜」→ 路由为 list返回去重后的菜品名列表「有没有中难度的菜」→ 触发元数据过滤命中difficulty中等的菜谱。九、小结一份看似简单的小炒肉菜谱在 Datawhale all-in-rag 的 C8 食谱 RAG 系统中完成了「文档加载 → 元数据增强分类 / 菜名 / 难度→ 结构感知分块 → 向量 关键词混合索引 → 路由 重写 检索 分步生成」的完整数据旅程。理解这份菜谱文档的格式约定星号难度、标题层级、分类目录也就掌握了为 RAG 知识库设计高质量结构化语料的核心要领——无论是菜谱还是任何领域的技术文档良好的结构本身就是最好的「可检索性设计」。赞分享教程人工智能大模型RAG【免费下载链接】all-in-rag大模型应用开发实战一RAG 技术全栈指南在线阅读地址https://datawhalechina.github.io/all-in-rag/项目地址https://gitcode.com/datawhalechina/all-in-rag点击查看免费下载相关推荐Hindsight 中 AI Agent 的短期记忆与长期记忆两层架构、retain/recall 实现与落地评估方法Hindsight 中 AI Agent 的短期记忆与长期记忆两层架构、retain/recall 实现与落地评估方法 理解短期记忆 vs 长期记忆这一主教程人工智能大模型RAGRoo Code v2.2.29 发布解析为自动写入增加可配置延迟让诊断与 Linter 从容跟上Roo Code v2.2.29 发布解析为自动写入增加可配置延迟让诊断与 Linter 从容跟上 Roo Code 2.2.29 引入了一项直接影响开发体教程人工智能大模型RAG以「咖喱炒蟹」为例all-in-rag 食谱 RAG 系统数据准备实战解析以「咖喱炒蟹」为例all in rag 食谱 RAG 系统数据准备实战解析 本篇以 all in rag 第 8 章「尝尝咸淡」食谱 RAG 系统知识库中的一教程人工智能大模型RAG创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
