大模型应用开发第九讲:RAG(检索增强生成)流程:用户查询→检索→生成响应
资料取自《大模型应用开发:动手做AI Agent 》。
查看总目录:学习大纲
关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:超详细手把手指南
一、核心流程比喻(三明治制作法)
步骤 | 日常比喻 | RAG具体操作 |
---|---|---|
用户查询 | 客人点单("要芝士火腿三明治") | 接收用户文本请求 |
检索 | 冰箱里找食材 | 在数据库查找相关文档/信息 |
生成响应 | 用食材制作三明治 | 结合检索信息生成自然语言回复 |
▲ 核心流程类比(整合资料3的RAG流程与资料5架构)3
二、详细操作步骤(《米其林食谱》应用案例)
1. 用户提出需求(顾客点餐)
问题示例:
用户:"如何制作正宗的西班牙海鲜饭?"
技术解析:
- 问题转换成向量编码(类似标准化点餐单)
- 自动提取深层需求:"正宗"="传统瓦伦西亚做法"(第8章3节需求解析)[5]
2. 数据检索阶段(智能冰箱选食材)
检索流程图:
▲ 检索流程优化(资料5的Pipeline流程)[5]
实际操作:
① 检索《米其林指南数据库》→"Spanish Paella"
② 过滤条件:评分>4.5星 + 标注"传统做法"
③ 返回核心段落:
- "必须使用Bomba米吸收高汤"
- "藏红花用量:每500克米0.5克"(资料3索引优化)[3]
⚠️ 防失误设计:
- 食材替代预警:检测到"藏红花缺失" → 推荐红甜椒粉替代方案(资料5异常处理章节)[5]
3. 信息增强生成(米其林厨房烹饪)
智能菜谱生成代码:
from llama_index.core import VectorStoreIndex
# 加载《世界食谱大全》知识库
documents = load_documents("./michelin_recipes")
index = VectorStoreIndex.from_documents(documents)
# 配置AI主厨(定制烹饪风格)
query_engine = index.as_query_engine(
similarity_top_k=3,
prompt_template="用家庭厨房可操作的语言解释专业步骤" # 风格控制
)
# 执行烹饪任务
response = query_engine.query("西班牙海鲜饭的家常做法")
生成过程拆解:
提示词拼接:
参考以下米其林食谱: [片段1]《地中海风味》强调:米粒需呈金黄色... [片段2] 三星主厨TIP:海鲜最后5分钟加入防过老 请用新手能看懂的语言输出步骤
模型输出优化:
基础版:平底锅铺米 → 倒入高汤 → 中火煮15分钟 升级版: 步骤1:用橄榄油煎香洋葱丁+蒜末(必备爆香步骤) 步骤2:Bomba米下锅炒至透明(锁住米芯) 步骤3:倒入鸡汤(汤米比例3:1关键!)
🔍 效果对比:
传统搜索引擎结果:
"需准备海鲜、米、藏红花..."
RAG增强结果:
2022年美食实验室关键数据:
"鸡汤温度保持80℃避免糊底(实验组失败率降低65%)
海鲜分层摆放:贝类埋入米中,虾类铺表面(热传导差异)"[1]
三、关键技术突破(厨房科技升级)
1. 语义保鲜技术
- 问题:菜谱更新滞后 → 去年推荐米种已停产
方案:建立动态索引(超市实时价签机制)
# 每周自动更新索引 index.refresh(urls=["最新米其林博客","当季食材报告"])(资料5数据管道)[5]
2. 多链式加工
查询类型 | 加工链条 | 案例 |
---|---|---|
简单查询 | 检索→直接生成 | "藏红花用量多少?" |
复杂任务 | 检索→摘要→再检索 | "法餐三道菜套餐设计" |
▲ 链式优化流程(资料3分层架构图)[3]
3. 味觉反馈闭环
▲ 持续优化机制(资料6的ReAct循环案例)[6]
四、故障排除(米其林质检台)
现象 | 本质问题 | 解决方案 |
---|---|---|
检索到错误菜系 | 菜谱标签混乱 | 重建分类树+人工审核(资料3索引修复)[3] |
生成步骤跳步 | 上下文窗口溢出 | 启用自动摘要模式(资料5压缩模块)[5] |
忽略用户忌口要求 | 需求解析失效 | 添加过敏原检测模块(资料6提示词规则)[6] |
五、技术架构图(米其林后厨系统)
▲ 完整架构(整合资料3图3.7,资料5图5.2)3
六、商业应用案例
1. 连锁餐厅标准化
- 需求:50家分店统一海鲜饭出品
RAG方案:
- 检索总部核心配方(藏红花浓度0.1‰)
- 自动适配本地条件(海边店增海鲜量,高海拔店延长烹饪时间)
- 效果:品控波动降低73%(资料2企业案例)[2]
2. 个人健康管理
用户:"我有糖尿病怎么做提拉米苏?"
AI步骤:
1) 检索→医学指南:代糖选择赤藓糖醇(血糖指数0)
2) 检索→意餐大师:保持马斯卡彭奶酪绵密质感
3) 输出:
材料替换:白砂糖→赤藓糖醇(比例1:1.3)
关键步骤:奶酪隔水加热温度≤45℃(防代糖结晶)
(资料6决策引擎案例)[6]
关键资料索引:
- 索引动态更新 → 资料5“Pipeline数据管道”(《大模型应用开发:动手做AI Agent 》第5章2节)[5]
- 分层检索机制 → 资料3“多级索引系统”(《大模型应用开发:动手做AI Agent 》第3章4节)[3]
- 结果优化策略 → 资料6“生成控制模块”(《大模型应用开发:动手做AI Agent 》第8章3节)[6]
- 企业级架构 → 资料2“Agent服务化部署”(《大模型应用开发:动手做AI Agent 》第9章案例)[2]
目录:总目录
上篇文章:大模型应用开发第八讲:OpenAI API入门 基础聊天程序搭建步骤
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。