ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

all-in-rag 食谱知识库实战:溏心蛋的做法详解与 RAG 数据源解析

all-in-rag 食谱知识库实战:溏心蛋的做法详解与 RAG 数据源解析 all-in-rag 食谱知识库实战溏心蛋的做法详解与 RAG 数据源解析【免费下载链接】all-in-rag大模型应用开发实战一RAG 技术全栈指南在线阅读地址https://datawhalechina.github.io/all-in-rag/项目地址: https://gitcode.com/datawhalechina/all-in-rag溏心蛋是一道制作门槛低、营养密度高的快手早餐本文以 Datawhale all-in-rag 项目data/C8/cook食谱知识库中的 溏心蛋.md 为蓝本完整还原其做法、用量计算与安全注意事项并结合 data_preparation.py 的源码剖析这份菜谱在 RAG 检索系统中是如何被加载、解析、打标与分块的。读完本文你既能照着步骤做出一颗理想流心的溏心蛋也能理解这类结构化 Markdown 菜谱在检索增强生成链路中的数据形态。一、菜品简介为什么是溏心蛋溏心蛋半熟水煮蛋是健身人群与快手早餐的经典选择每颗鸡蛋可提供约 6 克优质蛋白质且整个制作过程大约只需15 分钟几乎不需要额外厨具。项目 菜谱模板 中定义了统一的难度分级标准1 星代表简单混合即可完成、5 星代表步骤复杂且需要精妙火候掌控。本文主角溏心蛋被标记为预估烹饪难度★★★对应模板中3 星的定义步骤不算太复杂但需要一定烹饪经验能够熟练掌握火候、时间的组合技巧——溏心蛋的核心难点正在于对加热时间与余温静置的精确控制这一难度标签会被 RAG 系统的元数据增强逻辑自动识别详见下文作为 RAG 数据源一节。二、必备原料和工具制作溏心蛋所需材料极简仅需四样原料/工具说明鸡蛋1 颗起只要电锅装得下即可批量制作电锅用于加热与关火后保温静置水冷水用于淹没鸡蛋与后续降温秒表可选用于精确计时静置时长追求稳定出品建议准备三、用量计算溏心蛋的制作量非常灵活计算公式如下鸡蛋1 颗或更多只要电锅装得下不管几颗都可以冷水淹没鸡蛋后水面高出鸡蛋约2 公分水量淹没高度直接决定加热效率与余温环境2 公分是一个经过实践验证的平衡点既保证加热均匀又不至于水量过多导致升温过慢。四、操作步骤详解整个流程可归纳为一滚、一关、一静置、一冲洗四个阶段入锅将鸡蛋放入电锅中。注意鸡蛋不可互相堆叠应皆平放于底部彼此之间留有可以晃动的空间以保证受热均匀。加水倒入淹没鸡蛋约 2 公分的冷水。加热开盖使用最大功率加热至水滚起。判定标准是水温大约85–95 度、水面稍微滚动即可不需要完全沸腾——这是避免蛋壳爆裂与蛋黄过度凝固的关键。静置关火盖上盖子利用余温让鸡蛋继续熟成。静置时长直接决定成品状态静置 6 分钟得到中央有流动蛋黄流心的溏心蛋静置 10 分钟得到完全煮熟、蛋黄易碎的全熟蛋。降温沥干水分用冷水冲洗鸡蛋约1 分钟利用热胀冷缩原理使蛋壳与蛋白分离之后即可轻松去壳食用。时间控制提示从水滚起到关火的加热过程受水量、鸡蛋数量、室温影响而 6 分钟与 10 分钟两个静置节点是决定成品形态的核心变量建议使用秒表精确计时。若成品偏生可在下一轮制作中适当增加水量。五、附加内容与安全警告调整建议如果觉得鸡蛋不够熟可以依照自己的喜好添加更多的水延长余温熟成时间。⚠️ 安全警告溏心蛋存在沙门氏菌感染的风险不建议静置 5 分钟以内。请务必遵守上述最短静置时间底线老人、儿童、孕妇及免疫力较低人群应谨慎食用半熟蛋。六、作为 RAG 数据源这份菜谱在 all-in-rag 中的生命周期在 all-in-rag 项目的 C8 章食谱 RAG 系统尝尝咸淡中溏心蛋.md 并不是孤立存在的菜谱文件而是知识库data/C8/cook数百份 Markdown 菜谱中的一员。它会在 main.py 的build_knowledge_base()流程中被完整处理具体经历以下阶段6.1 递归加载与元数据增强data_preparation.py 中的load_documents()通过rglob(*.md)递归扫描data/C8/cook目录默认路径配置见 config.py 中的data_path: str ../../data/C8/cook读取菜谱原始 Markdown 内容随后由_enhance_metadata()执行元数据增强菜品分类依据文件路径中的目录名映射分类CATEGORY_MAPPING中breakfast: 早餐使得位于dishes/breakfast/目录下的溏心蛋被自动打上早餐标签菜品名称直接取文件名不含扩展名即溏心蛋难度等级源码使用正则re.search(r★, content)精确匹配连续星号数量并通过difficulty_map {5: 非常困难, 4: 困难, 3: 中等, 2: 简单, 1: 非常简单}映射。因此本文档中的★★★会被自动识别为中等难度无需人工标注。6.2 Markdown 结构感知分块chunk_documents()调用_markdown_header_split()使用MarkdownHeaderTextSplitter按三级标题结构分割菜谱配置为headers_to_split_on [ (#, 主标题), # 菜品名称 (##, 二级标题), # 必备原料、计算、操作等 (###, 三级标题) # 简易版本、复杂版本等 ]对溏心蛋而言分割后大致得到如下父子文本块结构父文档溏心蛋.md完整菜谱 ├── 子块1# 溏心蛋的做法 简介 难度评级 ├── 子块2## 必备原料和工具 食材清单 ├── 子块3## 计算 用量配比 ├── 子块4## 操作 详细制作步骤 └── 子块5## 附加内容 安全警告每个子块通过parent_id与父文档建立映射并记录chunk_index、chunk_size等元数据。这套小块检索、大块生成的父子架构使得用户询问溏心蛋需要哪些材料时能精确命中必备原料子块而生成阶段则回传完整父文档以保证上下文完整。6.3 检索与去重分块后的子块会进入向量索引与 BM25 混合检索链路见 retrieval_optimization.py 的hybrid_search与 RRF 重排。当用户提问命中溏心蛋的多个子块时get_parent_documents()会按匹配子块数统计相关性并智能去重保证最终只输出一份完整的溏心蛋菜谱而非重复片段。若用户问早餐有什么简单又营养的系统还会结合_extract_filters_from_query()从问题中提取早餐、中等等过滤条件进行元数据过滤检索。七、小结本文以 溏心蛋.md 为线索完整梳理了电锅静置法制作溏心蛋的原料、用量、步骤与安全要点并顺藤摸瓜还原了它在 all-in-rag 食谱 RAG 系统中从文件加载、元数据打标、标题分块到混合检索去重的完整数据生命周期。这份菜谱既是可照做的厨房实操指南也是理解 data_preparation.py 数据准备模块设计意图的一个具体、可验证的样例。【免费下载链接】all-in-rag大模型应用开发实战一RAG 技术全栈指南在线阅读地址https://datawhalechina.github.io/all-in-rag/项目地址: https://gitcode.com/datawhalechina/all-in-rag创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表