尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

all-in-rag 实战:从「尖叫牛蛙」菜谱到 C8 尝尝咸淡 RAG 系统的结构化数据源解析

all-in-rag 实战:从「尖叫牛蛙」菜谱到 C8 尝尝咸淡 RAG 系统的结构化数据源解析 教程人工智能大模型RAG【免费下载链接】all-in-rag大模型应用开发实战一RAG 技术全栈指南在线阅读地址https://datawhalechina.github.io/all-in-rag/项目地址https://gitcode.com/datawhalechina/all-in-rag点击查看免费下载本篇以 all-in-rag 仓库 C8 章实战项目尝尝咸淡 RAG 系统中的一份典型菜谱文档「尖叫牛蛙」为核心样本完整还原其原料清单、用量计算与烹饪操作全流程并深入剖析这类 Markdown 菜谱文档如何在 数据准备模块 中被加载、增强元数据、按标题分块最终经混合检索与查询路由支撑起今天吃什么的智能问答。读完本文你将掌握一份结构化菜谱从静态 Markdown 文件到可检索可问答的知识库单元的完整链路并可直接对照源码复现。一、菜谱文档在仓库中的定位在 all-in-rag 仓库的 C8 章中构建了一个名为尝尝咸淡 RAG 系统的食谱智能问答项目其灵感来自社区菜谱仓库 HowToCook——用统一 Markdown 格式记录菜品制作方法。仓库将所有菜谱数据组织在data/C8/cook/dishes/下按菜品分类建目录例如meat_dish/荤菜vegetable_dish/素菜soup/汤品dessert/甜品aquatic/水产breakfast/早餐staple/主食condiment/调料drink/饮品本文要讲的「尖叫牛蛙」就位于data/C8/cook/dishes/meat_dish/尖叫牛蛙/尖叫牛蛙.md是一道典型的荤菜四星难度困难级菜谱。对照data/C8/cook/dishes/template/示例菜/示例菜.md模板可知仓库对每道菜谱的文件结构有严格要求标题统一为菜名 的做法、正文按必备原料和工具 / 计算 / 操作 / 附加内容四个二级标题组织、难度用 ★ 数量表达。这种高度规整的结构正是后文 RAG 分块与元数据提取能够开箱即用的前提。二、尖叫牛蛙菜谱全解原料、用量与操作2.1 菜品简介与难度尖叫牛蛙是一道容易上手的菜一般初学者 1-2 小时即可完成。味道鲜美且具有开胃功效特别适合食欲不佳时食用老少皆宜能吃辣者更佳。原文档给出的难度评级为预估烹饪难度★★★★四星对应仓库源码中的困难等级——在 data_preparation.py 的_enhance_metadata中通过正则re.search(r★, content)精确匹配连续星号数量再按映射{5: 非常困难, 4: 困难, 3: 中等, 2: 简单, 1: 非常简单}自动生成难度元数据这意味着尖叫牛蛙文档入库后会被自动打上difficulty 困难的标签。2.2 必备原料和工具原文档列出的原料清单如下共 15 项请按此准备牛蛙肉泡姜泡椒野山椒也可以用干红辣椒替代青红辣椒大蒜豆瓣酱推荐郫县豆瓣盐巴胡椒粉生粉干淀粉也可啤酒推荐雪花料酒藤椒油可选猪油可选葱花2.3 用量计算每份本菜固定按 1 份制作每份精确用量如下请完整保留原料用量说明牛蛙肉块800g买 3 斤活蛙建议挑小个头肉质更鲜嫩泡姜20-30 克看口味重口可多放泡椒5-10 克视吃辣承受能力不能吃辣建议减半至 2.5 克微微辣野山椒10 克—青红辣椒20 克—大蒜30-50 克按口味调整最好不低于 30 克豆瓣酱20-30 克重口选 30 克清淡选 20 克这道菜很难太清淡盐巴15 克其中腌制阶段分两次使用见操作胡椒粉10 克腌制用 5 克焖煮用 5 克啤酒400-500ml去腥抓洗用 50ml 以上焖煮用 400ml料酒10ml腌制用藤椒油5-10ml可选焖煮阶段加 5ml生粉30 克干淀粉可平替腌制裹粉用猪油20ml没有可用食用油替代食用油200ml宽油过油用锅底平可再加 100ml另保留 50ml 炒料葱花5 克出锅点缀2.4 操作步骤完整版原文档共 10 步是这道菜的灵魂逐条保留如下牛蛙肉洗净后控干水分加入 10 克以上的盐巴和 50ml 以上的啤酒用手抓 5 分钟去除牛蛙肉的腥味。对着清水冲洗直至不再流出血水和杂质控干水分放到合适的器皿中准备腌制。加入 5 克盐、30 克生粉、10ml 料酒、5 克胡椒粉用手抓均匀腌制 5-10 分钟。将泡姜、泡椒、野山椒切丝或切片根据自己刀工选择青红辣椒切成圈圈大蒜拨开即可。起锅烧热加入 200ml 食用油锅底比较平的可以再加 100ml烧至 6 成油温有小气泡出现将腌制好的牛蛙倒入快速过油炸制10 秒钟后捞出不能超时太多否则蛙肉会老柴。捞出蛙肉后控油并将锅中的热油倒出到碗中保留 30ml加入 20ml 猪油如果没有则在锅中保留总共 50ml 食用油。待油温 6 成热加入泡姜、泡椒、野山椒、大蒜炒出香味加入豆瓣酱 20 克中火翻炒至出红油时间控制在 30 秒倒入 400ml 啤酒。倒入炸过的牛蛙肉用勺子推着翻不要用力搅拌加入 5 克胡椒粉加入 5ml 藤椒油中火慢焖 3 分钟。加大火力大火收汁半分钟加入青红辣椒圈再煮 10 秒准备起锅。盛到盆里撒上葱花开动2.5 附加技巧控干水分的时候可以选择漏勺按压。生粉抓揉时要均匀覆盖蛙肉。三、从菜谱到知识库源码级数据链路解析一份像「尖叫牛蛙」这样的菜谱 Markdown 文档是如何进入 RAG 知识库并被检索问答的C8 项目的 main.py 在build_knowledge_base()中依次调用数据准备、索引构建模块完成入库链路如下。3.1 数据加载与元数据增强data_preparation.py 的load_documents()会递归遍历data_path默认../../data/C8/cook见 config.py下所有.md文件直接读取原文保持 Markdown 格式并为每个文档生成基于相对路径的确定性 MD5parent_id。随后_enhance_metadata()依据文件路径与内容自动打标签分类category通过路径片段匹配CATEGORY_MAPPING命中meat_dish即标记为荤菜菜名dish_name取文件名去扩展名即尖叫牛蛙难度difficulty用正则★精确匹配连续星号4 颗星映射为困难。于是用户问有没有困难的荤菜时系统即可通过metadata_filtered_search直接过滤出此类文档——这正是 main.py 中_extract_filters_from_query做的事从问题中识别分类关键词荤菜/素菜/汤品…与难度关键词非常简单/简单/中等/困难/非常困难组合成过滤条件。3.2 Markdown 结构感知分块chunk_documents()使用MarkdownHeaderTextSplitter按标题层级分块headers_to_split_on [ (#, 主标题), # 菜品名称 (##, 二级标题), # 必备原料、计算、操作等 (###, 三级标题) # 简易版本、复杂版本等 ]并设置strip_headersFalse保留标题便于理解上下文。以尖叫牛蛙为例会被分割成主标题菜名简介难度必备原料和工具计算操作附加内容等若干子块每个子块继承父文档元数据并建立chunk_id - parent_id的父子映射。这对应 01_env_architecture.md 中强调的设计理念——小块检索、大块生成用小而精确的子块匹配具体问题如尖叫牛蛙需要什么调料命中必备原料和工具生成阶段再通过get_parent_documents()取回完整父文档保证上下文完整。3.3 混合检索与 RRF 重排retrieval_optimization.py 中hybrid_search()同时执行 FAISS 向量检索embedding 模型为BAAI/bge-small-zh-v1.5与 BM25 关键词检索各取 5 个候选再用 RRFReciprocal Rank Fusion融合rrf_score 1.0 / (k rank 1) # k 60按融合分数排序后截取top_k默认 3返回。向量检索负责语义BM25 负责精确关键词两者互补确保尖叫牛蛙怎么做这类口语化问题也能稳定命中。3.4 查询路由与生成generation_integration.py 的query_router()将用户问题分为三类list要菜品列表/推荐如推荐几个简单的素菜detail要具体做法如尖叫牛蛙怎么做——命中后走generate_step_by_step_answerLLM 会按菜品介绍 / 所需食材 / 制作步骤 / 制作技巧输出结构化答案general其他一般性问题。detail与general查询还会先经过query_rewrite()做智能重写具体明确的查询保持原样模糊查询补全烹饪术语。最终由配置中的kimi-k2-0711-preview模型config.pytemperature0.1, max_tokens2048结合检索到的完整父文档生成答案。读者可运行python code/C8/main.py需配置MOONSHOT_API_KEY体验交互式提问尖叫牛蛙怎么做即可得到基于本文菜谱的分步指导。四、小结「尖叫牛蛙」这份菜谱文档既是可独立照做的家常菜教程也是 C8 尝尝咸淡 RAG 系统中一个结构规范、标签完整的知识库样本路径决定分类、星级决定难度、标题决定分块、正文决定检索质量。对照 data_preparation.py、retrieval_optimization.py、generation_integration.py 与 main.py 源码可以完整复现从静态菜谱到可问答知识库的每一个环节。想要扩展菜谱库时只需参照 示例菜模板 的结构新增 Markdown 文件并重启系统重建索引即可无需改动任何代码。赞分享教程人工智能大模型RAG【免费下载链接】all-in-rag大模型应用开发实战一RAG 技术全栈指南在线阅读地址https://datawhalechina.github.io/all-in-rag/项目地址https://gitcode.com/datawhalechina/all-in-rag点击查看免费下载相关推荐Time-Series-Library 完整指南从一条命令到时间序列预测结果Time Series Library 完整指南从一条命令到时间序列预测结果 时间序列模型论文读得越多你越清楚一件事真正费劲的从来不是读懂网络结构而是把教程人工智能大模型RAG豆豉鲮鱼油麦菜做法详解all-in-rag「尝尝咸淡」RAG 系统的经典菜谱数据源豆豉鲮鱼油麦菜做法详解all in rag「尝尝咸淡」RAG 系统的经典菜谱数据源 豆豉鲮鱼油麦菜是一道广式家常快手菜材料简单、操作方便鲮鱼咸香、油麦菜脆教程人工智能大模型RAGall-in-rag 尝尝咸淡 RAG 系统实战西红柿豆腐汤羹菜谱数据与检索问答全解析all in rag 尝尝咸淡 RAG 系统实战西红柿豆腐汤羹菜谱数据与检索问答全解析 西红柿豆腐汤羹是一道清淡鲜美、营养均衡的经典家常汤羹在 all in教程人工智能大模型RAG创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表