当前位置: 首页 > news >正文

大模型应用开发第九讲:RAG(检索增强生成)流程:用户查询→检索→生成响应

大模型应用开发第九讲:RAG(检索增强生成)流程:用户查询→检索→生成响应

资料取自《大模型应用开发:动手做AI Agent 》。
查看总目录:学习大纲

关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:超详细手把手指南


一、核心流程比喻(三明治制作法)

步骤日常比喻RAG具体操作
用户查询客人点单(“要芝士火腿三明治”)接收用户文本请求
检索冰箱里找食材在数据库查找相关文档/信息
生成响应用食材制作三明治结合检索信息生成自然语言回复

▲ 核心流程类比(整合资料3的RAG流程与资料5架构)[3][5]


二、详细操作步骤(《米其林食谱》应用案例)

1. 用户提出需求(顾客点餐)

问题示例
用户:“如何制作正宗的西班牙海鲜饭?”

技术解析

  • 问题转换成向量编码(类似标准化点餐单)
  • 自动提取深层需求:“正宗”=“传统瓦伦西亚做法”(第8章3节需求解析)[5]

2. 数据检索阶段(智能冰箱选食材)

检索流程图

用户问题
拆解关键词
西班牙海鲜饭
海鲜种类
米类选择
食谱数据库匹配
TOP3候选方案
方案1: 正宗地中海料理
方案2: 米其林笔记
方案3: 瓦伦西亚秘方

▲ 检索流程优化(资料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. 提示词拼接
    参考以下米其林食谱:
    [片段1]《地中海风味》强调:米粒需呈金黄色...
    [片段2] 三星主厨TIP:海鲜最后5分钟加入防过老
    请用新手能看懂的语言输出步骤
    
  2. 模型输出优化
    基础版:平底锅铺米 → 倒入高汤 → 中火煮15分钟
    升级版:步骤1:用橄榄油煎香洋葱丁+蒜末(必备爆香步骤)步骤2:Bomba米下锅炒至透明(锁住米芯)步骤3:倒入鸡汤(汤米比例3:1关键!)
    ```(资料6生成控制)[6]

🔍 效果对比

传统搜索引擎结果:
"需准备海鲜、米、藏红花..."RAG增强结果:
2022年美食实验室关键数据:
"鸡汤温度保持80℃避免糊底(实验组失败率降低65%)
海鲜分层摆放:贝类埋入米中,虾类铺表面(热传导差异)"[1]

三、关键技术突破(厨房科技升级)

1. 语义保鲜技术

  • 问题:菜谱更新滞后 → 去年推荐米种已停产
  • 方案:建立动态索引(超市实时价签机制)
    # 每周自动更新索引
    index.refresh(urls=["最新米其林博客","当季食材报告"])(资料5数据管道)[5]
    

2. 多链式加工

查询类型加工链条案例
简单查询检索→直接生成“藏红花用量多少?”
复杂任务检索→摘要→再检索“法餐三道菜套餐设计”

▲ 链式优化流程(资料3分层架构图)[3]

3. 味觉反馈闭环

尝试食谱
用户
评分/照片
评分>4星?
加入优选库
触发人工复核

▲ 持续优化机制(资料6的ReAct循环案例)[6]


四、故障排除(米其林质检台)

现象本质问题解决方案
检索到错误菜系菜谱标签混乱重建分类树+人工审核(资料3索引修复)[3]
生成步骤跳步上下文窗口溢出启用自动摘要模式(资料5压缩模块)[5]
忽略用户忌口要求需求解析失效添加过敏原检测模块(资料6提示词规则)[6]

五、技术架构图(米其林后厨系统)

服务台
蛋奶素
纯素
语义检索
用户问'素食替代方案'
匹配结果
奶酪蘑菇方案
豆腐松露方案
模型生成步骤
带营养数据输出
智能冷库
语音转文本
切块处理
经典食谱
主厨视频
用户UGC
向量化存储

▲ 完整架构(整合资料3图3.7,资料5图5.2)[3][5]


六、商业应用案例

1. 连锁餐厅标准化

  • 需求:50家分店统一海鲜饭出品
  • RAG方案
    1. 检索总部核心配方(藏红花浓度0.1‰)
    2. 自动适配本地条件(海边店增海鲜量,高海拔店延长烹饪时间)
  • 效果:品控波动降低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://www.xdnf.cn/news/736939.html

相关文章:

  • CQF预备知识:Python相关库 -- NumPy 基础知识 - 通用函数
  • xilinx位置约束
  • SAR ADC 比较器噪声分析(二)
  • gst_pad_query_default以及gst_pad_event_default
  • 2024PLM系统实施案例:天水天轲零部件
  • Sigma-Aldrich3D细胞培养支架有哪些类型?
  • LoRA:高效微调预训练模型的利器
  • DeepSeek-R1 重磅升级,智能体验再进化!
  • shell脚本的两种循环及状态返回值的区别及对比
  • 软件架构基础
  • ollama国内安装使用
  • 时间序列数据如何转化为动态图实践笔记
  • XSS跨站脚本攻击
  • 特伦斯 S75:重塑钢琴体验的数码钢琴之选
  • 基于教育数字化背景:人工智能技术支持下的教师专业发展路径
  • Baklib智能推荐赋能内容中台升级
  • 低频 500kHz vs 高频 1MHz,FP6291C与FP6291升压芯片应用在不同场景该怎么选择?
  • Spring生命周期中织入代理逻辑
  • 大模型-attention汇总解析之-MHA
  • 电工基础【2】自锁、互锁、正反转电路
  • leetcode动态规划—完全背包系列
  • 【论文阅读】DanceGRPO: Unleashing GRPO on Visual Generation
  • ✨1.1.1 按位与运算替代求余运算优化场景
  • 在 Android 上备份短信:保护您的对话
  • N2语法 状態
  • win7怎么关闭开机自启动程序?
  • 深入理解 MySQL 隔离级别:理论与实战
  • 百年陈韵,三代匠心——陈汇堂新会陈皮的传承与新生
  • linux 中路由解决方案1
  • Cross-Encoder(交叉编码器)和 Bi-Encoder(双编码器)