
教程人工智能大模型RAG【免费下载链接】all-in-rag大模型应用开发实战一RAG 技术全栈指南在线阅读地址https://datawhalechina.github.io/all-in-rag/项目地址https://gitcode.com/datawhalechina/all-in-rag点击查看免费下载虎皮青椒是一道经典的川渝家常菜以其表皮起皱如虎纹、酸辣回甜的口感著称。本文以 Datawhale all-in-rag 仓库中「尝尝咸淡 RAG 系统」知识库内的 虎皮青椒菜谱 为研究对象先完整讲解这道菜的原料配比与制作步骤再深入剖析这份 Markdown 菜谱是如何被系统加载、增强元数据、按标题分块、索引、检索并最终生成回答的让读者既学会做菜也看懂菜谱数据在 RAG 全链路中的流转方式。一、菜品档案虎皮青椒在知识库中的位置在 C8 章「尝尝咸淡 RAG 系统」中知识库根目录为data/C8/cook每道菜对应一个独立目录下的 Markdown 文件。虎皮青椒的完整路径为data/C8/cook/dishes/vegetable_dish/虎皮青椒/虎皮青椒.md。从路径即可读出两条关键元数据信息分类category目录名vegetable_dish会被数据准备模块映射为「素菜」。在 data_preparation.py 的CATEGORY_MAPPING中vegetable_dish与素菜一一对应这也是系统支持元数据过滤的素菜关键词来源。难度difficulty文件开头写着「预估烹饪难度★★★」数据准备模块通过正则re.search(r★, content)精确匹配连续星号数量并将 3 颗星映射为「中等」difficulty_map {5: 非常困难, 4: 困难, 3: 中等, 2: 简单, 1: 非常简单}。因此当用户问有哪些中等的素菜时系统能通过元数据过滤直接命中本菜。二、原料与工具必备原料和计算配比原文档的「必备原料和工具」与「计算」两个小节是整份菜谱的量化基础必须完整保留。必备原料和工具青椒大蒜白糖灵魂醋生抽盐砵或者有一定深度的碗每份用量按份计算可等比缩放原料用量青椒5 个长度在 10-15cm 的最为合适大蒜2-3 瓣油20ml白糖15g生抽15ml香醋15ml盐4g这份计算小节遵循了 HowToCook 项目每次制作前先确定计划做几份的通用约定用量按份数线性放大即可。值得注意的量化细节白糖被标注为灵魂用量与生抽、香醋等量15g/15ml形成糖醋 1:1的经典平衡这是虎皮青椒酸甜开胃风味的来源而盐只放 4g因为生抽本身含盐避免过咸。三、操作步骤全解析原文档「操作」小节给出了 7 个关键步骤按顺序执行即可清洗去掉青椒蒂用自来水冲洗干净。切型青椒切长片平均一个青椒纵向切成 3-4 片即可。这个片型既保证受热均匀又能让虎皮纹路充分呈现。备蒜大蒜去皮切成碎末体积在 2mm × 2mm × 2mm 即可细碎更易在热油中爆香。调料准备两碗分装调料 1拿一个小碗倒入 20ml 油将大蒜末放入其中调料 2白糖、生抽、醋、盐全部倒入砵碗等容器搅拌。下锅煸制将调料 1倒入锅中开火加热 5 成约 150℃ 油温手距油面能感到明显热气但不冒烟放入青椒青椒片不要叠在一起单独成片放置锅中——这是保证每片都能均匀起皱的关键。按压翻面用锅铲不停地按压青椒合适的时候翻面。按压让椒肉紧贴锅底加速水分蒸发是虎皮形成的核心手法。调味收尾翻炒约 2 分钟待青椒表皮出现褶皱时倒入调料 2加大火候继续翻炒 30s 后即可出锅盛入盘中。「先煸出虎皮、再大火收汁」的时序设计让糖醋汁在最后 30 秒内裹上椒身既入味又不至于让青椒软烂失去口感。四、附加内容与成品参考原文档「附加内容」小节以一张成品图收尾用于直观展示虎皮形态与最终色泽方便读者对照自己的成品。该图片存放于 虎皮青椒成品图。五、从菜谱到知识这份文档如何被 RAG 系统消化这份菜谱之所以能成为合格的 RAG 知识库数据核心在于它的结构高度规整一级标题菜名 难度行 若干二级标题必备原料和工具 / 计算 / 操作 / 附加内容。这在 数据准备模块 中对应三件事5.1 加载与确定性 IDload_documents()通过data_path_obj.rglob(*.md)递归读取知识库下所有 Markdown 文件并以文件内容原文保持 Markdown 格式构造父文档Document。每个父文档的parent_id用hashlib.md5(相对路径)计算保证同一路径的菜谱在多次构建时 ID 稳定便于索引复用。5.2 元数据增强_enhance_metadata()为虎皮青椒补充三条关键元数据category从路径中的vegetable_dish映射为「素菜」dish_name取文件名虎皮青椒difficulty从★★★解析为「中等」。这些元数据随后成为检索阶段元数据过滤metadata_filtered_search与生成阶段上下文标注如【食谱 1】虎皮青椒 | 分类: 素菜 | 难度: 中等的依据。5.3 Markdown 结构感知分块父子块策略_markdown_header_split()使用MarkdownHeaderTextSplitter按# / ## / ###三级标题切分headers_to_split_on [ (#, 主标题), # 菜品名称 (##, 二级标题), # 必备原料、计算、操作等 (###, 三级标题) # 简易版本、复杂版本等 ]并以strip_headersFalse保留标题文本便于检索时识别语义。这样虎皮青椒这份文档会被切成「主标题」「必备原料和工具」「计算」「操作」「附加内容」等多个子块每个子块携带chunk_id、parent_id、doc_type: child、chunk_index等元数据并建立child_id → parent_id的映射。这一设计正是文档 01_env_architecture.md 强调的**小块检索、大块生成**小块保证精确命中例如问虎皮青椒需要什么调料时必备原料和工具这个子块能高精度匹配而回答时通过get_parent_documents()回溯完整父文档保证 LLM 拿到的是包含全部步骤与配比的完整上下文。六、用户提问时系统如何回答虎皮青椒怎么做整个问答流程由 主程序 main.py 的ask_question()驱动结合 生成集成模块 与 检索优化模块可分为四步查询路由query_router将问题分为list推荐/列菜名、detail具体做法、general一般信息三类。虎皮青椒怎么做属于detail推荐几个素菜属于list。查询重写对detail/general查询调用query_rewrite对明确具体的查询含具体菜名保持原样避免画蛇添足。混合检索 元数据过滤hybrid_search并行执行 FAISS 向量检索嵌入模型BAAI/bge-small-zh-v1.5与 BM25 关键词检索再用 RRFReciprocal Rank Fusion1/(krank1)融合重排取top_k3配置见 config.py。若问题中带素菜中等等词_extract_filters_from_query会提取filters{category: 素菜, difficulty: 中等}并走metadata_filtered_search。父子回溯与生成根据子块回溯父文档并去重排序detail查询走generate_step_by_step_answer分步指导模板菜品介绍 / 所需食材 / 制作步骤 / 制作技巧list查询走generate_list_answer直接输出菜名列表最终由 Moonshot 大模型默认kimi-k2-0711-preview生成回答。换句话说当读者问出虎皮青椒怎么做时系统实际检索到的是本菜谱的操作子块但喂给 LLM 的是整份虎皮青椒文档因此生成的回答既包含步骤也包含原料配比与制作技巧这正是父子分块策略的价值所在。七、环境搭建与本地复现如需在本地复现虎皮青椒这道菜在 RAG 系统中的检索与问答可参考 环境架构文档 按以下步骤操作# 1. 创建虚拟环境以 conda 为例 conda create -n cook-rag-1 python3.12.7 conda activate cook-rag-1 # 2. 安装依赖进入 C8 项目目录 cd code/C8 pip install -r requirements.txt依赖清单见 requirements.txt其中langchain0.3.26、langchain-community0.3.27、faiss-cpu1.7.0、rank_bm250.2.2分别是向量库与 BM25 检索的支撑包。随后配置MOONSHOT_API_KEY环境变量参考 环境准备并确认默认配置data_path ../../data/C8/cook指向正确后运行python main.py程序启动后会加载或构建 FAISS 向量索引缓存在./vector_index随后进入交互式问答。此时输入虎皮青椒怎么做虎皮青椒需要什么调料推荐几个中等的素菜等提问即可观察系统针对本菜谱的检索与生成全过程。小结虎皮青椒这道菜表面上是知识库中 300 多份菜谱里的普通一份但它完整承载了「尝尝咸淡 RAG 系统」的核心设计思想路径即分类、星号即难度、标题即分块边界、父子块即小块检索、大块生成。理解了这份文档从磁盘文件到检索块的每一步流转也就理解了 C8 章节 中数据准备、索引构建、检索优化与生成集成四大模块是如何协同工作的。赞分享教程人工智能大模型RAG【免费下载链接】all-in-rag大模型应用开发实战一RAG 技术全栈指南在线阅读地址https://datawhalechina.github.io/all-in-rag/项目地址https://gitcode.com/datawhalechina/all-in-rag点击查看免费下载相关推荐水油焖蔬菜做法全解析一份结构化菜谱在 RAG 知识库中的实践样本水油焖蔬菜做法全解析一份结构化菜谱在 RAG 知识库中的实践样本 水油焖蔬菜是一道以少量水 少量油 盖盖焖制为核心逻辑的快手家常素菜成品口感油润教程人工智能大模型RAG菠菜炒鸡蛋标准化做法一份可直接进入 RAG 菜谱知识库的结构化菜谱菠菜炒鸡蛋标准化做法一份可直接进入 RAG 菜谱知识库的结构化菜谱 这道「菠菜炒鸡蛋」菜谱位于当前仓库的 C8 食谱问答实战项目数据集中采用 HowToCo教程人工智能大模型RAG豫南蒸卤面做法全解析all-in-rag 食谱知识库中一份可被 RAG 精准检索的结构化菜谱豫南蒸卤面做法全解析all in rag 食谱知识库中一份可被 RAG 精准检索的结构化菜谱 导读 蒸卤面是豫南地区非常经典的一道家常主食荤素搭档、一锅出菜教程人工智能大模型RAG上一篇OpenMontage 前端优化实战用 Index Map 取代重复 find()把 1M 次查询压缩到 2K 次下一篇MLX 数据并行分布式训练实战从梯度全归约到 nn.average_gradients 高效实现创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考