对话式导购 + RAG + MCP 智能商品推荐系统

前言

一句话定位:会聊天、会推荐、还能真正下单的对话式电商导购 AI Agent。

维度 说明
技术栈 Spring AI(Alibaba)+ RAG(Milvus / PgVector)+ Function Calling + MCP + Graph 工作流 + SSE 流式输出
核心亮点 双层 embedding 语义路由、RAG 私有知识问答、工具调用完成下单/退货/评价、订单与购物车 UI 快照
适合人群 想讲 AI 与电商业务深度结合、展示工作流编排能力的人
交付内容 完整源码 + 从 0 到 1 开发教程 + 1V1 技术答疑 + 简历包装指导

为什么值得写进简历

  • 完整性罕见:从意图理解、知识检索到交易闭环,全都能讲
  • 同时展示 AI 能力(RAG / Function Calling / MCP / Graph)与业务系统设计能力
  • 能讲清"为什么用语义路由""为什么 MCP 比硬编码工具调用更好"这类加分问答

更多项目实战在Java突击队网:susan.net.cn/project

1. 项目概述

智能商品推荐助手 是一款基于前沿生成式 AI 技术构建的下一代电商导购平台。

系统通过对话式交互(Conversational UI),深度理解用户模糊、复杂的购物意图,结合私有商品知识库(RAG)和实时业务数据(MCP/Function Calling),提供精准的商品推荐、比价分析,并支持下单、退货、评价、取消订单等一站式交易闭环。

系统采用 RAG(检索增强生成)+ Function Calling(工具调用)+ MCP + Graph 工作流的组合架构:

  • 对"需要理解和推荐"的问题使用 RAG 提升回答相关性与解释性;
  • 对"需要真实数据与业务动作"的问题走工具调用与后端服务,确保结果可落地、可回写。
  • 在对话入口引入 embedding 轻量语义路由(双层路由) :先粗分为「流程类/工具类/推荐类/闲聊类」,再在流程类中判定具体流程类型并进入 Graph 节点推进,使流程更可控、更抗自然表达。 同时,项目支持通过 Feign + 网关 无缝接入现有商品/购物车/订单服务,并提供会话历史与关键 UI 快照能力(订单卡片、购物车卡片、确认单卡片等),适配真实生产场景中的复杂交互与服务波动。

1.1 核心价值

  • 意图理解: 超越传统关键词搜索,理解"送给程序员男朋友的生日礼物"等场景化需求。
  • 实时数据: 通过 Function Calling 实时查询库存、价格波动,并执行下单、退货、评价、取消订单等核心交易操作。
  • 私有知识: 基于 RAG 技术,精准回答商品规格、售后政策等私有领域问题。
  • 标准化互联: 采用 MCP (Model Context Protocol) 标准化连接多源数据。

2. 技术栈选型

模块 技术选型 说明
Backend Framework Spring Boot 3.5+ Java 生态核心,提供稳定高并发支持
AI Integration Spring AI Alibaba 统一的 AI 接入层,屏蔽底层模型差异,支持 OpenAI/Claude/Ollama 等
LLM Model 千问/ DeepSeek-V3 具备强推理能力的 SOTA 模型
RAG Engine Milvus / PgVector 高性能向量数据库,存储商品文档 Embedding
Data Protocol MCP (Model Context Protocol) 统一数据源交互协议,连接商品中心、订单中心
Agent Capabilities Function Calling / Skills 让 LLM 具备执行外部工具的能力(查库存、下单)
Frontend Vue 3 + TailwindCSS 现代化响应式 UI (已有原型)
API Protocol SSE (Server-Sent Events) 实现流式打字机效果响应
WorkFlow Graph 工作流 流程内 Graph 推进

3. 系统架构设计

3.1 总体架构图 (Mermaid)

3.2 核心模块详解

3.2.1 智能导购 Agent 服务 (Spring AI Alibaba)

这是系统的大脑,负责编排整个对话流程。

  • Prompt Management: 动态加载场景化提示词(System Prompt),注入用户画像和当前上下文。
  • Memory Management: 维护多轮对话上下文(ChatMemory),确保 AI 记住用户的预算偏好。
  • Model Switcher : 通过 Spring AI 的 ChatClient 抽象,支持配置切换不同的底层模型。

3.2.2 RAG 引擎 (Retrieval-Augmented Generation)

用于解决 LLM 的幻觉问题和知识滞后问题。

  • Document Reader: 从 CMS 读取商品详情页、用户评价、帮助文档。
  • TokenTextSplitter: 将长文档按语义切分为 512/1024 token 的片段。
  • Embedding : 使用 text-embedding-3-small 或 bge-m3 将文本转为向量并存入 Milvus。
  • Retrieval: 用户提问时,检索 Top-K 相关文档片段,注入到 Prompt Context 中。

3.2.3 MCP & Function Calling

赋予 AI "手" 和 "眼"。

  • Function Calling : 定义 Java Function<Request, Response> Bean,并通过 @Tool 注解暴露给 LLM。
    • getProductStock(skuId): 查询实时库存。
    • comparePrices(skuIdList): 生成比价表格。
  • MCP Client: 实现 MCP 协议,通过标准化的 JSON-RPC 接口连接外部数据源(MCP Servers)。这使得添加新的数据源(如第三方物流查询)无需修改核心 Agent 代码。

4. 关键流程设计

4.1 用户购物咨询流程 (RAG + Function Calling)

  1. 用户提问: "帮我推荐一款适合送给程序员的键盘,预算 1000 元左右。"
  2. 意图识别 : Agent 分析意图为 RECOMMENDATION,提取实体 Category: Keyboard, Target: Programmer, Budget: ~1000。
  3. RAG 检索 :
    • 系统在向量库中检索 "程序员键盘", "机械键盘 1000元" 相关的商品描述和评测文档。
    • 召回 Top 5 商品:Keychron K2, NuPhy Air75, Logitech MX Mechanical 等。
  4. 工具调用 (Function Calling) :
    • LLM 决定调用 checkStock(productIds) 确认召回商品是否有货。
    • LLM 决定调用 getLatestPromotion(productIds) 获取当前优惠价。
    • LLM 决定调用 getProductStock(skuId) 确认库存。
  5. 生成回答 :
    • LLM 结合 RAG 召回的静态信息(卖点、轴体手感)和 Function 返回的动态信息(库存、实时的价格)。
    • 生成流式回复:"为您推荐 Keychron K2 Pro... 目前京东旗舰店有货,活动价 988 元..."

4.2 核心交易链路的 AI 实现 (下单/退货/评价/取消)

本系统将交易操作封装为 AI 可调用的工具 (Tools),实现全对话式购物体验。

4.2.1 智能下单 (Smart Checkout)

  1. 用户意图: "帮我买那个 Keychron 键盘,要红轴的。"
  2. 槽位填充 (Slot Filling) :
    • AI 识别意图 PLACE_ORDER。
    • 检查必要参数:Product=Keychron K2, Spec=Red Switch, Address=?, Payment=?。
    • 若地址缺失,AI 反问:"请确认收货地址,是寄到【默认家】还是【公司】?"
  3. 工具调用 :
    • 参数齐备后,调用 createOrder(skuId, addressId, paymentMethod)。
  4. 前端交互 :
    • AI 返回 Function Result 不是纯文本,而是 UI Component JSON。
    • 前端渲染"订单确认卡片",展示商品、金额、地址。
    • 用户点击卡片上的"确认支付"按钮(二次确认,保障安全)。

4.2.2 智能取消订单 (Smart Cancellation)

  1. 用户意图: "刚才那个键盘我不想要了,帮我取消。"
  2. 上下文检索 :
    • AI 调用 queryRecentOrders(userId, limit=1) 获取最近订单。
    • 发现订单状态为 PENDING_SHIPMENT (未发货),符合取消条件。
  3. 工具调用 :
    • 调用 cancelOrder(orderId, reason="用户主动取消")。
  4. 反馈: "订单 20231025 已成功取消,退款将原路返回。"

4.2.3 智能退货 (Smart Return)

  1. 用户意图: "昨天收到的耳机有杂音,我要退货。"
  2. RAG 辅助 :
    • AI 检索知识库中的《电子产品退换货政策》。
    • 确认"质量问题支持 7 天无理由退货"。
  3. 工具调用 :
    • 调用 checkOrderEligibleForReturn(orderId) 验证资格。
    • 调用 submitReturnRequest(orderId, type="QUALITY_ISSUE", desc="杂音")。
  4. 流程指引: "退货申请已提交。请将商品寄回以下地址:... 运费由我方承担。"

4.2.4 智能评价 (Smart Review)

  1. 用户意图: "给刚才的瑜伽裤写个好评,穿着很舒服。"
  2. 内容生成 :
    • AI 根据用户关键词"穿着舒服"和商品特性(RAG 检索:亲肤、高弹),自动生成一段 50 字左右的优质评价草稿。
  3. 工具调用 :
    • AI 展示草稿:"穿着非常舒适,面料亲肤透气,做瑜伽动作完全没有束缚感,推荐购买!(是否发布?)"
    • 用户确认后,调用 submitProductReview(orderId, rating=5, content=...)。

4.2 数据摄入流程 (Data Ingestion)

  1. 源数据监听: 监听商品数据库变更 (Binlog) 或定时任务扫描。
  2. ETL 处理: 清洗 HTML 标签,提取关键规格参数。
  3. 文档切片: 将商品详情切分为 "基本信息", "规格参数", "用户评价" 等多个 Chunk。
  4. 向量化: 调用 Embedding API 生成向量。
  5. Upsert: 写入向量数据库,并携带 Metadata (Category, PriceRange) 以支持混合检索 (Hybrid Search)。

4.3 AI 驱动的交易全流程设计 (AI-Driven Transactions)

本系统不仅支持信息查询,还通过 Transactional Agents 实现了下单、退货、评价和取消订单的端到端自动化。每个流程都内置了 Human-in-the-Loop (HITL) 机制以确保操作安全。

4.3.1 智能下单 (Order Placement)

用户指令: "帮我把刚才推荐的 Keychron 键盘买了,寄到公司。"

  1. 上下文解析 : Agent 从 ChatMemory 中检索最近推荐的商品实体 (Keychron K2 Pro, SKU: RGB-Red-Switch)。
  2. 地址匹配 : 调用 AddressBookService 获取用户标签为 "公司" 的收货地址。
  3. 订单预览 (Dry Run) :
    • 调用 previewOrder(sku, quantity, addressId) 计算最终价格(含运费、优惠券)。
    • HITL 确认: AI 输出订单卡片(含价格明细),并暂停执行,等待用户明确指令("确认下单" / "Yes")。
  4. 执行交易 : 用户确认后,AI 调用 createOrder 接口,并返回订单号和支付链接。

4.3.2 智能取消订单 (Order Cancellation)

用户指令: "刚才那个订单不想要了,帮我取消。"

  1. 意图识别 : 识别 Intent 为 CANCEL_ORDER。
  2. 查询状态 : 调用 listRecentOrders(limit=1) 获取最新订单,检查状态是否为 PENDING_PAYMENT 或 PAID (未发货)。
  3. 风险控制 :
    • 若订单已发货,AI 自动转为 "退货/拦截" 流程并告知用户。
    • 若未发货,AI 询问取消原因(可选),并请求二次确认。
  4. 执行取消 : 用户确认后,调用 cancelOrder(orderId),并触发退款流程。

4.3.3 智能退货 (Return & Refund)

用户指令: "这个耳机戴着不舒服,我要退货。"

  1. 资格校验 (RAG) :
    • AI 提取 SKU,在向量库中检索该商品的 "售后政策" 文档。
    • 判断是否满足 "7天无理由" 或 "拆封不退" 条件。
  2. 生成申请 :
    • 若符合政策,AI 调用 createReturnRequest(orderId, reason="佩戴不适")。
    • 若不符合(如已过保),AI 引用政策文档委婉拒绝,并建议转人工客服。
  3. 物流预约 : 调用 schedulePickup(address, time) 预约快递员上门取件。

4.3.4 智能评价 (AI-Assisted Review)

用户指令: "键盘收到了,手感很棒,帮我写个好评。"

  1. 情感分析 : 识别用户情感为 POSITIVE,关键词 手感棒。
  2. 内容生成: AI 基于关键词生成一段高质量评价:"Keychron K2 Pro 确实名不虚传,红轴手感轻盈,打字声音清脆,非常适合长时间写代码,五星推荐!"
  3. 用户确认: 展示生成内容,用户可选择 "直接发布" 或 "修改"。
  4. 提交评价 : 调用 submitReview(orderId, content, rating=5)。

智能商品推荐助手常见问题(FAQ)

智能商品推荐助手是什么?

它是一款对话式电商导购 AI Agent:用户用自然语言描述需求(比如"送给程序员男朋友的生日礼物"),系统理解意图后推荐商品、比价,并支持下单、退货、评价、取消订单等交易闭环。

RAG 在导购场景里解决什么问题?

商品规格、售后政策这类私有知识大模型并不知道,RAG 通过向量检索把商品文档和知识库片段注入提示词,让回答有依据、可解释。

Function Calling 和 MCP 是怎么配合的?

Function Calling 负责调用业务动作(查库存、下单、退货),MCP 负责标准化连接多源数据(商品中心、订单中心),前者解决"能做事",后者解决"接得进"。

为什么需要 embedding 轻量语义路由?

用户一句话可能包含多个意图。系统先用 embedding 做双层路由(粗分为流程类/工具类/推荐类/闲聊类,再细分流程),再进入对应 Graph 节点,让流程更可控、更抗自然表达。

对话式导购能完成下单、退货和评价吗?

可以。项目打通了完整交易链路:智能下单、智能取消、智能退货、智能评价都有对应实现,并通过 SSE 流式输出与订单卡片等 UI 快照提升交互体验。

这个 AI 导购项目适合写进简历吗?

适合。它同时展示 AI 能力(RAG、Function Calling、MCP、Graph 编排)和业务系统设计能力,是"AI + 业务"结合得很自然的项目。

更多项目实战在Java突击队网:susan.net.cn/project

项目截图

相关推荐
dora2 小时前
接口被疯狂调用怎么办?聊聊接口限流
后端·安全
136096757232 小时前
评测结果怎么用:从失败样本到提示词规则
后端
不一样的少年_2 小时前
为什么你写的 Agent 一报错就死循环?很多人都漏掉了这层“错误自救与熔断”机制
前端·后端·agent
ZhengEnCi2 小时前
Agent 自动化系统怎么搭:从 Super-agent 架构到事件驱动调度(全文可跑)
后端·架构
学长毕设2 小时前
基于SpringBoot的网上流浪狗救助捐赠平台-附源码
java·spring boot·后端
xiaoqiMikko2 小时前
Redis 实战(三):持久化出错 —— fork 失败、磁盘写满、AOF 膨胀与损坏,逐个复现(6.2.4)
redis·后端
UNIHHIOT2 小时前
开源一套工业物联网平台:驱动崩了不影响别的协议,64MB 堆跑边缘网关
前端·后端
废柴程序员_熊熊2 小时前
DeepSeek Harness 实测:两条命令装好,11 步写完 632 行代码,3 个测试全绿
后端