Agent_RAG_智能食谱推荐系统

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

项目仓库:项目仓库

引言与痛点分析

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

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

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

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

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

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

系统架构设计

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

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

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

  2. 多轮查询策略

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

双评委 Agent 架构

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

海选评委(初筛阶段)

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

毒舌评委(终审阶段)

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

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

多模态与视觉模型优化

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

初期挑战

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

优化方案

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

  2. 封闭式验证提示词策略

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

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

前端沉浸式交互体验

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

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

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

  3. 双评委面板布局

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

AgentRAG智能食谱推荐

展望

技术价值提炼

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

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

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

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

未来优化方向

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

运行情况

相关推荐
装不满的克莱因瓶5 小时前
学习使用 Python 机器学习工具 sklearn
人工智能·python·学习·机器学习·ai·agent·智能体
小刘|7 小时前
揭秘RAG:检索增强生成技术解析
langchain·rag
装不满的克莱因瓶8 小时前
学习 LLM 的函数回调及格式化输出,让 LLM 拥有更强的能力
人工智能·ai·大模型·llm·agent·智能体
菜到离谱但坚持10 小时前
【小白零基础】RAG+LangChain 搭建私有知识库问答系统(完整可运行代码+超详细教程+避坑指南)
python·langchain·rag
YsyaaabB11 小时前
LangChain作业二---多语言翻译Prompt
开发语言·python·langchain
兆。12 小时前
简历高光_Agent_RAG项目描述
人工智能·langchain
leikooo13 小时前
LangChain4j 调用 DeepSeek 工具时报 400?用 pi 抓包定位,同包覆盖修复 reasoning_content
langchain·deepseek
龙侠九重天13 小时前
C# 构建 AI Agent 系统 — 我的实践笔记
开发语言·人工智能·语言模型·自然语言处理·大模型·agent·智能体
wuhen_n14 小时前
RAG 入门:检索增强生成核心原理
前端·人工智能·typescript·langchain·ai编程