all-in-rag 食谱知识库精讲酸梅汤的做法全解析——从结构化菜谱到 RAG 可检索数据资产【免费下载链接】all-in-rag大模型应用开发实战一RAG 技术全栈指南在线阅读地址https://datawhalechina.github.io/all-in-rag/项目地址: https://gitcode.com/datawhalechina/all-in-rag导读本文以 all-in-rag 开源仓库第 8 章实战项目尝尝咸淡 RAG 系统中的一道经典饮品菜谱《酸梅汤的做法》为核心完整还原这道古法酸梅汤的原料配比、头煎二煎工艺与冷藏饮用要点并进一步揭示该菜谱文档在仓库中的定位它不仅是可照做的家常菜谱更是 code/C8 食谱 RAG 系统data/C8/cook数据源中的一份结构化 Markdown 数据资产。读完本文你既能按方熬出一锅冰镇酸梅汤也能理解这类菜谱文件如何被 数据准备模块 按 Markdown 标题分块、做元数据增强最终成为可被检索、可被 LLM 引用的知识库单元。一、菜谱在 all-in-rag 中的位置一份饮品类的 RAG 数据资产在 code/C8/main.py 中食谱 RAG 系统通过RAGConfig将数据路径指向../../data/C8/cook随后递归加载该目录下全部 Markdown 菜谱文件。酸梅汤文档位于数据文件data/C8/cook/dishes/drink/酸梅汤/酸梅汤.md成品图片目录data/C8/cook/dishes/drink/酸梅汤/imges/从目录层级dishes/drink/可以看出系统在加载文档后会依据文件路径自动推断分类。在 data_preparation.py 的 CATEGORY_MAPPING 中drink: 饮品正是为这类路径准备的映射——酸梅汤因此被自动打上category饮品的元数据标签用户向系统提问有什么饮品推荐时即可通过元数据过滤精准命中。这份菜谱同时具备该实战项目对数据的两点核心要求见 docs/chapter8/01_env_architecture.md 的数据分析章节结构高度规整每个菜谱文件都严格使用统一的小标题组织内容内容篇幅适中单篇菜谱约数百字适合直接按标题结构分块无需与长度类分割器组合。二、文档结构解读与 Markdown 结构分块的天然契合酸梅汤菜谱原文遵循标准的五段式结构这与 MarkdownHeaderTextSplitter 的三级标题分割策略一一对应菜谱章节标题层级分割器标签分块后检索用途# 酸梅汤的做法一级标题主标题菜品名称与整体定位## 必备原料和工具二级标题二级标题用户问需要什么食材时精确命中## 计算二级标题二级标题用量配比可回答做几份要多少乌梅## 操作二级标题二级标题制作步骤回答怎么做## 附加内容二级标题二级标题保存与饮用的补充建议分割器设置strip_headersFalse保留标题信息使得每个子块都能独立理解上下文同时每个子块会继承父文档的parent_id建立小块检索、大块生成的父子关系——当用户问酸梅汤怎么做时系统可能只检索到操作子块但生成回答时会通过 get_parent_documents 取回包含原料、计算在内的完整父文档保证 LLM 回答不缺失上下文。此外元数据增强逻辑_enhance_metadata还会为这份文档打上另外两个标签dish_name从文件名提取即酸梅汤difficulty用正则★匹配连续星号。原文档标出预估烹饪难度★★★★4 星按映射{5:非常困难, 4:困难, ...}会被自动判定为困难等级。也就是说这道酸梅汤在 RAG 系统眼中是一条饮品 困难 酸梅汤的元数据完备记录可用于按分类/难度过滤检索。三、必备原料和工具原文档列出的原料清单如下9 种水乌枣乌梅山楂片生黄冰糖甘草陈皮红豆蔻干桂花从制作工艺看这组原料可归为三类主料乌枣、乌梅——酸梅汤酸香与枣香的主要来源、辅料山楂片、甘草、陈皮、红豆蔻——提供酸甜层次与回甘、调味与增香黄冰糖——甜度来源、干桂花——出锅增香。工具方面需要一口可加盖炖煮的锅砂锅、不锈钢锅均可与一个足够大的盆或容器用于混合冰糖水以及用于沥出药渣的滤具。注意原文档要求冲洗材料干桂花和冰糖除外即乌枣、乌梅、山楂片、甘草、陈皮、红豆蔻在浸泡前需先流水冲洗去除浮尘而冰糖与干桂花不洗直接使用。四、计算一份 2 升装的标准配比原文档给出的是以两升水为基准的标准用量所有用量可等比例增加或减小方便按需扩量原料用量水2000 ml两升乌枣25 克乌梅25 克黄冰糖100 克山楂片生30 克甘草2 克陈皮4 克红豆蔻1 克干桂花3 克几点解读冰糖是甜度主体100 克用量约为乌梅/乌枣的 4 倍提供甜适度的平衡感乌梅与乌枣等量各 25 克一酸一甜互为骨架香辛料用量极轻甘草 2 克、陈皮 4 克、红豆蔻 1 克仅作风味点缀不宜过量否则会盖过主味干桂花 3 克为最后增香所用不计入浸泡与煎煮。在 RAG 系统中计算章节作为一个独立子块存在当用户询问酸梅汤放多少冰糖两升水配多少乌梅时该子块即可被精确检索并引用。五、操作步骤详解头煎、二煎与桂花增香原文档的操作流程可拆解为五个阶段完整保留如下浸泡2 小时以上冲洗材料干桂花和冰糖除外用 1.5 升水常温浸泡两小时以上头煎40 分钟开中大火煮沸盖盖转小火煮 40 分钟冰糖水将冰糖放入盆内再将沥好药材的头汤趁热倒入搅拌至冰糖完全融化二煎20 分钟药材重新装回锅内加 600 毫升水开大火煮沸盖盖转中火再煮 20 分钟混合与增香将二煎与冰糖水趁热混合为成品在成品 60–70℃ 时加入干桂花不要超过 80℃加盖晾凉后放入冰箱冷藏 3 小时以上。关键技术点说明为什么分头煎与二煎头煎以小火慢煮 40 分钟充分萃取出乌梅、乌枣、山楂的酸香与果胶二煎仅 20 分钟进一步榨取剩余风味物质两次汤液合并风味浓度更高。这比单次长时间煮制更能兼顾出味充分与不苦涩。水量分配浸泡用 1.5 升 二煎加水 0.6 升 ≈ 2.1 升其中头煎汤液在熬煮中会有所蒸发二煎与冰糖水混合后最终约得 2 升成品。干桂花温度红线80℃ 以上高温会迅速破坏桂花香气物质因此必须在 60–70℃ 区间加入且加完后立即加盖闷香、缓慢降温。冷藏熟成冷藏 3 小时以上不仅让饮品冰凉适口也让桂花香与酸梅味进一步融合。饮用时记得将干桂花沥出。原文档描述成品风味为如饮茶般细啜冰凉振齿酸醒人、甜适度滋味丰满而悠长。六、附加内容与保存建议原文档在附加内容中给出的核心建议是放入冰箱冷藏后再饮用效果更佳。这与第五步冷藏 3 小时以上的要求一致——低温既带来口感上的振齿清凉感也给予各风味物质充分的融合时间。可操作层面的引申建议均为基于原文工艺的合理推断非新配方冷藏保存期间应加盖密封避免串味与香气挥发干桂花在饮用前过滤沥出可避免长时间浸泡导致香气转涩若一次制作量大可按比例缩减冷藏时间观测风味变化再决定后续批量制作的冷藏时长。七、从菜谱到 RAG这份文档在系统中的完整流转为方便读者把做酸梅汤与用 RAG两条线索串起来这里梳理该文档在 all-in-rag 第 8 章实战项目中的完整数据流转模块调用链可对照 docs/chapter8/02_data_preparation.md加载DataPreparationModule.load_documents 通过rglob(*.md)递归扫描data/C8/cook读入酸梅汤.md并以相对路径的 MD5 生成稳定的parent_id元数据增强_enhance_metadata从路径提取category饮品、从文件名提取dish_name酸梅汤、从★★★★提取difficulty困难结构化分块MarkdownHeaderTextSplitter按#/##/###将文档切成做法标题、必备原料、计算、操作、附加内容等子块每个子块记录chunk_id、parent_id、chunk_index并写入parent_child_map建索引与检索子块经 索引构建模块 用 BGE-small-zh-v1.5 向量化存入 FAISS用户提问后由 检索优化模块 执行向量 BM25 的 RRF 混合检索命中操作等子块取回父文档get_parent_documents按parent_id去重取回完整菜谱交由 生成集成模块 生成分步骤回答。也就是说本文讲解的这份酸梅汤文档正是尝尝咸淡食谱 RAG 系统数据管线的真实样本data/C8/cook下每一篇规整的 Markdown 菜谱都会经历上述加载 → 增强 → 分块 → 索引 → 检索 → 生成的完整链路。八、常见问题FAQQ1用量可以调整吗可以。原文档明确说明上述所有用量可以等比例增加或减小即按两升基准乘以/除以比例系数即可各原料间配比关系保持不变。Q2为什么浸泡要用 1.5 升水而二煎只加 600 毫升浸泡用水承担了大部分萃取的溶剂角色量多利于食材充分吸水出味二煎的 600 毫升用于补提剩余风味两次汤液合并后恰好接近 2 升成品量避免过量稀释。Q3干桂花什么时候加在成品温度降至 60–70℃ 时加入不要超过 80℃加后加盖闷香晾凉冷藏。饮用前将桂花沥出。Q4在 RAG 系统里搜索酸梅汤怎么做会命中哪个子块会命中操作子块向量检索按语义匹配怎么做生成阶段再取回包含原料与计算在内的完整父文档保证回答完整。Q5系统如何知道酸梅汤属于饮品、难度是困难由 数据准备模块 的元数据增强完成分类来自文件路径中的drink目录映射难度来自内容中★星级的正则匹配菜名来自文件名。这些标签无需人工标注是 RAG 系统中从非结构化数据自动提取结构化元数据的典型实践。附原始菜谱全文以下为 data/C8/cook/dishes/drink/酸梅汤/酸梅汤.md 的完整原始内容供读者对照本文研读# 酸梅汤的做法 预估烹饪难度★★★★ ## 必备原料和工具 - 水 - 乌枣 - 乌梅 - 山楂片生 - 黄冰糖 - 甘草 - 陈皮 - 红豆蔻 - 干桂花 ## 计算 - 两升水 - 乌枣 25 克 - 乌梅 25g - 黄冰糖 100 克 - 山楂片 30 克 - 甘草 2 克 - 陈皮 4 克 - 红豆蔻 1 克 - 干桂花 3 克 上述所有用量可以等比例增加或减小。 ## 操作 - 冲洗材料干桂花和冰糖除外1.5 升水常温浸泡两小时以上干桂花和冰糖除外 - 开中大火煮沸盖盖转小火煮 40 分钟为头煎 - 将冰糖放入盆内再将沥好用材的头汤趁热倒入搅拌至冰糖融化。 - 药材重新装回锅内再 600 毫升的水开大火煮沸盖盖转中火再煮 20 分钟为二煎 - 最后将二煎和冰糖水趁热混合为成品。在成品 60-70℃ 加入干桂花不要超过 80℃加盖晾凉再放入冰箱冷藏 3 小时以上。 - 饮用时记得将干桂花沥出。如饮茶般细啜冰凉振齿酸醒人、甜适度滋味丰满而悠长 ## 附加内容 放入冰箱冷藏后再饮用效果更佳。这份全文约 40 行、数百字的文档正是 all-in-rag尝尝咸淡 RAG 系统所期望的标准数据样本——结构化、可拆分、元数据可自动提取读罢既能照方熬汤也理解了它为何能成为 RAG 知识库中一条高质量的饮品·困难·酸梅汤条目。【免费下载链接】all-in-rag大模型应用开发实战一RAG 技术全栈指南在线阅读地址https://datawhalechina.github.io/all-in-rag/项目地址: https://gitcode.com/datawhalechina/all-in-rag创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
