教程人工智能大模型RAG【免费下载链接】all-in-rag大模型应用开发实战一RAG 技术全栈指南在线阅读地址https://datawhalechina.github.io/all-in-rag/项目地址https://gitcode.com/datawhalechina/all-in-rag点击查看免费下载这是一篇以 data/C8/cook/dishes/meat_dish/白菜猪肉炖粉条.md 菜谱为标本的实战解析文章。读者一方面能照单学会这道东北家常菜的标准做法从原料计算到出锅收汁另一方面能透过这份菜谱理解 all-in-rag 项目第 8 章尝尝咸淡 RAG 系统是如何把这类高度规整的 Markdown 菜谱改造成小块检索、大块生成的知识库进而支撑今天吃什么这类智能问答的。读完本文你将同时掌握一份可下厨复现的菜谱以及一条可运行的菜谱 RAG 流水线数据加载 → 元数据增强 → 结构分块 → 混合检索 → 生成回答。一、菜谱档案一道简单上乘的东北家常菜白菜猪肉炖粉条是一道简单易做的传统东北家常菜以做法简单、味道上乘的特点在广大东北人民群众中备受喜爱。原菜谱文档给出的预估烹饪难度为★★★中等属于典型的一锅炖家常菜食材常见、火候宽容、容错率高非常适合作为 RAG 菜谱知识库的入门语料来观察整个处理链路。从数据视角看这份菜谱文件本身就是一份教科书级的结构化 Markdown它严格遵循# 标题 简介 难度评级 ## 必备原料和工具## 计算## 操作## 附加内容的固定骨架。这一点在 docs/chapter8/01_env_architecture.md 中被明确点出——HowToCook 风格菜谱结构高度规整、篇幅较短几乎不需要额外清洗就能直接用于 RAG 构建。二、必备原料与工具制作这道菜需要的原料清单对应菜谱文档的必备原料和工具小节原料/工具说明五花肉带皮三层五花为佳肥瘦相间炖煮后油脂融入汤汁白菜大白菜需将嫩叶与白菜帮子分开处理土豆干粉条建议使用土豆淀粉干粉条耐煮、久炖不烂十三香中式复合香料提供炖菜底味鸡精提鲜食用盐基础调味老抽给肉上色生抽提鲜调味无需特殊厨具一口炒锅/炖锅、一把菜刀即可完成全部操作。三、用量计算每份的标准配比菜谱文档明确给出了每份的精确配比这是该文档计算小节的核心内容也是 RAG 系统回答需要什么食材放多少量类问题时被检索到的关键信息原料用量每份五花肉300g大白菜500g土豆干粉条50g十三香10g鸡精5g食用盐15g老抽5ml生抽5ml从烹饪原理看这份配比遵循了肉 3 : 菜 5 : 粉条 0.5的东北炖菜黄金比例五花肉提供油脂与肉香白菜量大且炖后大幅出水缩水粉条吸水膨胀三者成菜后体积与味道恰好平衡。老抽与生抽各 5ml 的分工明确——老抽负责上色、生抽负责提鲜二者不可互相替代。四、操作步骤九步做出地道东北味以下是菜谱文档操作小节的完整步骤我按执行时序重新组织了编号并补充了每一步的原理说明方便下厨复现第 1 步最先做泡发粉条锅内烧水水开后放入干粉条煮 5 分钟后连同水一起倒入容器中盖上盖子继续浸泡备用。原文档特别强调第一步先做这个因为土豆干粉条煮制时间长先泡上可以利用等待时间并行推进后续步骤这是全流程的时间管理关键。第 2 步切肉五花肉切成 3mm 的肉片备用。3mm 是兼顾快速炒熟上色与久炖不柴的折中厚度太薄炖后易碎太厚则油脂难以析出。第 3 步切菜大白菜嫩叶与白菜帮子分开切成 2 份菜片备用。帮子与嫩叶熟成时间差异大分开处理是保证帮子软烂、叶子不烂的关键技巧。第 4 步热锅下油热锅锅内放入 10ml15ml 食用油等待 10 秒让油温升高。热锅凉油有利于后续肉片不粘锅。第 5 步煸炒五花肉放入五花肉保持翻炒至肉变色。此步将肉中的油脂逼出是整道菜香气的根基。第 6 步老抽上色加入老抽炒1 分钟给肉上色。老抽需在肉片表面裹匀并炒出焦香才能形成红亮色泽。第 7 步炒白菜帮加入白菜帮子加入食用盐、生抽炒一分钟如果粘锅烹入 10ml 水。先加盐有助于白菜帮快速出水避免干烧粘锅。第 8 步加水炖煮20 分钟加水没过所有食材加入鸡精、十三香沸腾后将火调小然后等待 20 分钟。这一阶段是味道融合的核心肉香、菜甜、料香在慢火中互相渗透。第 9 步粉条入锅5 分钟粉条滤水切成小段放入碗中备用加入白菜嫩叶炒匀后将粉条放在菜上方加盖再煮5 分钟。粉条放在菜上方而不是埋进汤底可避免粉条沉底粘锅糊底。第 10 步收汁出锅尝味、关火、收汁。原文档的附加内容强调最后一步务必尝味如果发现味道偏淡或未熟继续加盖煮一段时间即可这是一道容错率极高的菜。五、实操技巧与注意事项菜谱文档附加内容小节给出的两条经验值得单独展开粉条先行土豆干粉条煮制时间长放在第一步操作期间可并行切肉、切菜整体耗时可压缩到 30 分钟内。尝味兜底最后一步尝味是出锅前的质量闸门——味道淡继续加盐未熟继续加盖炖无需担心过火因为白菜与粉条在余温下依然会继续熟成。补充两条从步骤中可推出的要点一是老抽与生抽 5:5 的比例使成品颜色红亮而不发黑二是粉条置于菜上的摆法有效避免了粉条与锅底直接接触导致的糊底问题。六、进阶视角这道菜在尝尝咸淡 RAG 系统中的全生命周期本仓库的 C8 章节构建了一个名为尝尝咸淡的食谱问答 RAG 系统背景见 docs/chapter8/01_env_architecture.md其数据目录正是 data/C8/cook白菜猪肉炖粉条这道菜就是其中荤菜类meat_dish知识库的一份语料。结合 code/C8 源码可以完整还原这道菜从 Markdown 文件到可被问答的检索单元的处理过程。6.1 文档加载与元数据增强在 code/C8/rag_modules/data_preparation.py 的load_documents()中系统通过rglob(*.md)递归扫描数据目录读取所有菜谱随后调用_enhance_metadata()对每个文档做元数据增强。以本菜谱为例菜品分类category通过CATEGORY_MAPPING将路径中的目录名映射为中文分类meat_dish→荤菜菜品名称dish_name直接取文件名主干即白菜猪肉炖粉条难度等级difficulty用正则r★精确匹配连续星号数量本菜谱★★★映射为中等。值得注意的实现细节是源码中的难度映射表为{5: 非常困难, 4: 困难, 3: 中等, 2: 简单, 1: 非常简单}与菜谱文档顶部的星级评级一一对应而parent_id通过数据根目录相对路径的 MD5 哈希生成保证同一份菜谱多次加载时 ID 确定不变见 data_preparation.py。6.2 Markdown 结构分块一份菜谱切成五个子块chunk_documents()使用 LangChain 的MarkdownHeaderTextSplitter按#、##、###三级标题进行结构感知分块strip_headersFalse保留标题以便理解上下文。按照这个逻辑本菜谱会被切分为如下父子结构映射关系存储于parent_child_map子块通过parent_id关联父文档父文档白菜猪肉炖粉条.md完整菜谱doc_typeparent ├── 子块1# 白菜猪肉炖粉条的做法 简介 难度评级 ├── 子块2## 必备原料和工具 食材清单 ├── 子块3## 计算 用量配比 ├── 子块4## 操作 详细制作步骤 └── 子块5## 附加内容 技巧这种小块检索、大块生成的设计架构说明见 docs/chapter8/02_data_preparation.md解决了一个关键矛盾如果整篇菜谱作为一个向量块用户问白菜猪肉炖粉条需要什么食材时该问题在整篇文档中占比太小可能检索不到而按标题分块后必备原料和工具子块能精确命中食材类问题生成阶段再通过get_parent_documents()取回完整父文档保证 LLM 拿到全部上下文。6.3 智能去重检索多块合并为完整菜谱用户若问白菜猪肉炖粉条怎么做混合检索可能同时命中操作与计算等多个子块。get_parent_documents()data_preparation.py会统计每个父文档被命中的子块数量作为相关性指标按命中次数降序去重输出父文档——同一道菜只出现一次且命中子块越多的菜谱排名越靠前。6.4 检索与生成链路在 code/C8/main.py 的ask_question()中问题会依次经过查询路由query_router将问题分为list推荐菜品、detail具体做法、general一般知识三类查询重写query_rewrite对模糊查询如想做点简单的荤菜补充烹饪术语对明确包含菜名的查询保持原样混合检索向量检索FAISS BGE 中文嵌入模型与 BM25 关键词检索双路召回经RRFReciprocal Rank Fusion重排融合见 retrieval_optimization.py元数据过滤_extract_filters_from_query()会从问题中提取荤菜中等等关键词作为过滤条件生成detail类问题走generate_step_by_step_answer()分步指导模式以菜品介绍 → 所需食材 → 制作步骤 → 制作技巧的结构输出——这正是本菜谱从 Markdown 分块到自然语言问答的最终呈现形态。其中嵌入模型、LLM 模型、检索数量、生成参数等均可在 code/C8/config.py 的RAGConfig数据类中配置默认embedding_modelBAAI/bge-small-zh-v1.5、llm_modelkimi-k2-0711-preview、top_k3、temperature0.1索引会持久化到./vector_index目录实现秒级重启加载。七、运行与复现在仓库根目录下按以下方式即可运行这套菜谱 RAG 系统详见 docs/chapter8/01_env_architecture.md# 创建并激活虚拟环境示例使用 conda conda create -n cook-rag-1 python3.12.7 conda activate cook-rag-1 # 安装依赖 cd code/C8 pip install -r requirements.txt # 配置 MOONSHOT_API_KEY 环境变量后启动 python main.py启动后进入交互式问答可以尝试提问白菜猪肉炖粉条怎么做推荐几道简单的荤菜白菜猪肉炖粉条需要什么食材——前者会命中操作子块并展开分步指导后者会精确命中必备原料和工具子块而推荐类问题则会走list路由返回菜品名称列表直观验证本文所述的分块与检索链路。结语白菜猪肉炖粉条这道菜烹饪上讲究粉条先行、帮叶分离、慢火 20 分钟在 all-in-rag 的 RAG 体系中它则示范了一类典型语料的标准处理范式——目录路径映射为分类元数据、星级标记解析为难度字段、标题结构切分为父子子块、RRF 混合检索保证召回精度、父子回溯保证生成上下文完整。掌握了这道菜的两种做法你既能端出一锅热气腾腾的东北炖菜也能照此范式把任何一批结构化 Markdown 文档快速改造成可问答的 RAG 知识库。赞分享教程人工智能大模型RAG【免费下载链接】all-in-rag大模型应用开发实战一RAG 技术全栈指南在线阅读地址https://datawhalechina.github.io/all-in-rag/项目地址https://gitcode.com/datawhalechina/all-in-rag点击查看免费下载相关推荐Roo Code v2.2.29 发布解析为自动写入增加可配置延迟让诊断与 Linter 从容跟上Roo Code v2.2.29 发布解析为自动写入增加可配置延迟让诊断与 Linter 从容跟上 Roo Code 2.2.29 引入了一项直接影响开发体教程人工智能大模型RAG包菜炒鸡蛋粉丝烹饪全解一道家常菜的结构化菜谱与 RAG 知识库实践all-in-rag包菜炒鸡蛋粉丝烹饪全解一道家常菜的结构化菜谱与 RAG 知识库实践all in rag 本篇以 all in rag 项目 C8 章节 https://l教程人工智能大模型RAG小龙虾菜谱的结构化数据与 RAG 智能问答all-in-rag 菜品知识库实战剖析小龙虾菜谱的结构化数据与 RAG 智能问答all in rag 菜品知识库实战剖析 本篇技术指南以 小龙虾菜谱 https://link.gitcode.co教程人工智能大模型RAG创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
