欢迎光临
我们一直在努力

Agent_RAG_智能食谱推荐系统

Agent RAG 智能食谱检索与推荐系统:从多模态输入到精准推荐的全链路实践

项目仓库:项目仓库

引言与痛点分析

在传统的食谱检索场景中,用户往往面临以下核心痛点:

  • 检索精度不足:基于关键词的传统搜索难以理解用户的真实意图,例如用户输入"简单家常菜"时,系统无法准确判断用户对烹饪难度、食材获取便利性的隐含需求。

  • 大模型幻觉问题:直接依赖大模型生成食谱时,常常出现食材搭配不合理、步骤缺失等问题,严重影响用户体验。

  • 多模态输入支持薄弱:用户上传食材图片时,现有系统无法准确提取食材信息并进行智能匹配。

  • 缺乏个性化评价体系:推荐结果缺乏可信度,用户无法了解推荐依据。

  • 针对这些痛点,我设计并实现了基于 Agent RAG 架构的智能食谱推荐系统,通过多智能体协作和检索增强生成技术,实现了从自然语言/图片输入到精准食谱推荐的全链路闭环。

    系统架构设计

    RAG 向量检索在食谱匹配中的应用

    系统的核心检索层采用 RAG(Retrieval-Augmented Generation) 架构,具体实现包括:

  • 食谱向量化:将300+道食谱的标题、食材、做法等信息通过 shaw/dmeta-embedding-zh 嵌入模型转换为向量,存储于向量数据库中。

  • 多轮查询策略:

    • 第一轮:基于用户意图分析结果进行初步检索
    • 第二轮:结合食材匹配度进行二次筛选
    • 第三轮:通过毒舌评委的维度评分进行最终排序
  • 单例模式优化:通过实现单例模式确保食谱库只加载一次,避免重复加载导致的性能问题。

  • 双评委 Agent 架构

    系统创新性地引入了双评委机制,通过海选评委和毒舌评委的协作,有效解决大模型幻觉问题:

    海选评委(初筛阶段)

    • 职责:快速筛选出10-15个候选食谱
    • 核心能力:基于规则和向量相似度进行初步过滤
    • 技术实现:使用 qwen2.5:3b 模型进行意图分析和分类

    毒舌评委(终审阶段)

    • 职责:对候选食谱进行多维度评分
    • 核心评价维度:
      • 食材匹配度(用户上传图片时自动计算)
      • 烹饪难度匹配
      • 口味偏好契合度
      • 营养均衡度
    • 混合策略优化:采用"4B模型生成维度+3B模型执行评分"的混合策略,在保证质量的同时提升性能

    协作机制:海选评委负责数量检索,毒舌评委负责质量评价,两者结合既保证了召回率,又确保了推荐精度。

    多模态与视觉模型优化

    在图像识别(食材提取)环节,我经历了多次技术迭代:

    初期挑战:

    • 使用 moondream 模型时,识别准确率不稳定
    • 提示词设计不当导致模型输出格式混乱
    • 图片路径处理存在问题,影响识别效果

    优化方案:

  • 模型升级:将视觉模型更换为 qwen3-vl:4b,利用其更强大的多模态理解能力

  • 封闭式验证提示词策略:

    • 设计简洁明确的提示词:"这个图片里面有什么食材,给我一个食材列表,格式如[苹果,西红柿] 快速回答"
    • 移除冗余示例,避免模型记忆固定结果
    • 通过测试脚本验证不同提示词模板的效果
  • 图像预处理:尝试灰度增强、对比度调整等技术,提升识别稳定性

  • 路径处理优化:确保传递绝对路径给识别函数,避免相对路径导致的文件找不到问题

  • 前端沉浸式交互体验

    基于 Streamlit 的前端实现了复杂的交互逻辑:

  • 状态管理:通过 st.session_state 管理用户输入、识别结果、推荐进度等动态数据,解决页面刷新导致的状态丢失问题。

  • 动态占位符:使用 st.empty() 实现局部刷新,在评委评分过程中实时展示进度。

  • 双评委面板布局:

    • 左侧:用户需求输入框、图片上传按钮、已识别食材列表
    • 右侧:图片预览、识别结果、候选食谱池
    • 底部:海选评委和毒舌评委的评分结果对比展示
  • 手风琴折叠组件:用于展示食谱详情,包括图片、食材列表和烹饪步骤。

  • AgentRAG智能食谱推荐

    展望

    技术价值提炼

  • 多智能体协作模式:通过分工明确的评委架构,有效提升推荐质量,为其他领域的推荐系统提供了可借鉴的范式。

  • RAG 技术工程化实践:完整实现了从数据向量化、向量检索到结果重排序的全流程,解决了大规模知识库的高效检索问题。

  • 多模态融合能力:成功整合视觉识别与文本理解,实现了真正的多模态输入支持。

  • 复杂前端状态管理:在 Streamlit 框架下实现了类 SPA 的交互体验,为 Python 后端开发者提供了前端开发的新思路。

  • 未来优化方向

  • 个性化模型训练:基于用户反馈数据进行微调,进一步提升推荐精度。
  • 实时食材价格查询:整合外部 API,提供食材成本估算功能。
  • 社交分享功能:支持用户分享烹饪成果和评价。
  • 运行情况

    有用户食材参考图的问答

    请添加图片描述 请添加图片描述 请添加图片描述 请添加图片描述

    赞(0)
    未经允许不得转载:171主机测评 » Agent_RAG_智能食谱推荐系统
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址