01 智能商品助手系统架构设计
2025/12/19大约 8 分钟
01 智能商品助手系统架构设计
1. 项目概述
智能商品推荐助手 是一款基于前沿生成式 AI 技术构建的下一代电商导购平台。
系统通过对话式交互(Conversational UI),深度理解用户模糊、复杂的购物意图,结合私有商品知识库(RAG)和实时业务数据(MCP/Function Calling),提供精准的商品推荐、比价分析,并支持下单、退货、评价、取消订单等一站式交易闭环。
1.1 核心价值
- 意图理解: 超越传统关键词搜索,理解“送给程序员男朋友的生日礼物”等场景化需求。
- 实时数据: 通过 Function Calling 实时查询库存、价格波动,并执行下单、退货、评价、取消订单等核心交易操作。
- 私有知识: 基于 RAG 技术,精准回答商品规格、售后政策等私有领域问题。
- 标准化互联: 采用 MCP (Model Context Protocol) 标准化连接多源数据。
2. 技术栈选型
| 模块 | 技术选型 | 说明 |
|---|---|---|
| Backend Framework | Spring Boot 3.5+ | Java 生态核心,提供稳定高并发支持 |
| AI Integration | Spring AI | 统一的 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) | 实现流式打字机效果响应 |
3. 系统架构设计
3.1 总体架构图 (Mermaid)

3.2 核心模块详解
3.2.1 智能导购 Agent 服务 (Spring AI)
这是系统的大脑,负责编排整个对话流程。
- 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)
- 用户提问: "帮我推荐一款适合送给程序员的键盘,预算 1000 元左右。"
- 意图识别: Agent 分析意图为
RECOMMENDATION,提取实体Category: Keyboard,Target: Programmer,Budget: ~1000。 - RAG 检索:
- 系统在向量库中检索 "程序员键盘", "机械键盘 1000元" 相关的商品描述和评测文档。
- 召回 Top 5 商品:Keychron K2, NuPhy Air75, Logitech MX Mechanical 等。
- 工具调用 (Function Calling):
- LLM 决定调用
checkStock(productIds)确认召回商品是否有货。 - LLM 决定调用
getLatestPromotion(productIds)获取当前优惠价。 - LLM 决定调用
getProductStock(skuId)确认库存。
- LLM 决定调用
- 生成回答:
- LLM 结合 RAG 召回的静态信息(卖点、轴体手感)和 Function 返回的动态信息(库存、实时的价格)。
- 生成流式回复:“为您推荐 Keychron K2 Pro... 目前京东旗舰店有货,活动价 988 元...”
4.2 核心交易链路的 AI 实现 (下单/退货/评价/取消)
本系统将交易操作封装为 AI 可调用的工具 (Tools),实现全对话式购物体验。
4.2.1 智能下单 (Smart Checkout)
- 用户意图: "帮我买那个 Keychron 键盘,要红轴的。"
- 槽位填充 (Slot Filling):
- AI 识别意图
PLACE_ORDER。 - 检查必要参数:
Product=Keychron K2,Spec=Red Switch,Address=?,Payment=?。 - 若地址缺失,AI 反问:“请确认收货地址,是寄到【默认家】还是【公司】?”
- AI 识别意图
- 工具调用:
- 参数齐备后,调用
createOrder(skuId, addressId, paymentMethod)。
- 参数齐备后,调用
- 前端交互:
- AI 返回 Function Result 不是纯文本,而是 UI Component JSON。
- 前端渲染“订单确认卡片”,展示商品、金额、地址。
- 用户点击卡片上的“确认支付”按钮(二次确认,保障安全)。
4.2.2 智能取消订单 (Smart Cancellation)
- 用户意图: "刚才那个键盘我不想要了,帮我取消。"
- 上下文检索:
- AI 调用
queryRecentOrders(userId, limit=1)获取最近订单。 - 发现订单状态为
PENDING_SHIPMENT(未发货),符合取消条件。
- AI 调用
- 工具调用:
- 调用
cancelOrder(orderId, reason="用户主动取消")。
- 调用
- 反馈: "订单 20231025 已成功取消,退款将原路返回。"
4.2.3 智能退货 (Smart Return)
- 用户意图: "昨天收到的耳机有杂音,我要退货。"
- RAG 辅助:
- AI 检索知识库中的《电子产品退换货政策》。
- 确认“质量问题支持 7 天无理由退货”。
- 工具调用:
- 调用
checkOrderEligibleForReturn(orderId)验证资格。 - 调用
submitReturnRequest(orderId, type="QUALITY_ISSUE", desc="杂音")。
- 调用
- 流程指引: "退货申请已提交。请将商品寄回以下地址:... 运费由我方承担。"
4.2.4 智能评价 (Smart Review)
- 用户意图: "给刚才的瑜伽裤写个好评,穿着很舒服。"
- 内容生成:
- AI 根据用户关键词“穿着舒服”和商品特性(RAG 检索:亲肤、高弹),自动生成一段 50 字左右的优质评价草稿。
- 工具调用:
- AI 展示草稿:“穿着非常舒适,面料亲肤透气,做瑜伽动作完全没有束缚感,推荐购买!(是否发布?)”
- 用户确认后,调用
submitProductReview(orderId, rating=5, content=...)。
4.2 数据摄入流程 (Data Ingestion)
- 源数据监听: 监听商品数据库变更 (Binlog) 或定时任务扫描。
- ETL 处理: 清洗 HTML 标签,提取关键规格参数。
- 文档切片: 将商品详情切分为 "基本信息", "规格参数", "用户评价" 等多个 Chunk。
- 向量化: 调用 Embedding API 生成向量。
- 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 键盘买了,寄到公司。"
- 上下文解析: Agent 从
ChatMemory中检索最近推荐的商品实体 (Keychron K2 Pro, SKU: RGB-Red-Switch)。 - 地址匹配: 调用
AddressBookService获取用户标签为 "公司" 的收货地址。 - 订单预览 (Dry Run):
- 调用
previewOrder(sku, quantity, addressId)计算最终价格(含运费、优惠券)。 - HITL 确认: AI 输出订单卡片(含价格明细),并暂停执行,等待用户明确指令("确认下单" / "Yes")。
- 调用
- 执行交易: 用户确认后,AI 调用
createOrder接口,并返回订单号和支付链接。
4.3.2 智能取消订单 (Order Cancellation)
用户指令: "刚才那个订单不想要了,帮我取消。"
- 意图识别: 识别 Intent 为
CANCEL_ORDER。 - 查询状态: 调用
listRecentOrders(limit=1)获取最新订单,检查状态是否为PENDING_PAYMENT或PAID(未发货)。 - 风险控制:
- 若订单已发货,AI 自动转为 "退货/拦截" 流程并告知用户。
- 若未发货,AI 询问取消原因(可选),并请求二次确认。
- 执行取消: 用户确认后,调用
cancelOrder(orderId),并触发退款流程。
4.3.3 智能退货 (Return & Refund)
用户指令: "这个耳机戴着不舒服,我要退货。"
- 资格校验 (RAG):
- AI 提取 SKU,在向量库中检索该商品的 "售后政策" 文档。
- 判断是否满足 "7天无理由" 或 "拆封不退" 条件。
- 生成申请:
- 若符合政策,AI 调用
createReturnRequest(orderId, reason="佩戴不适")。 - 若不符合(如已过保),AI 引用政策文档委婉拒绝,并建议转人工客服。
- 若符合政策,AI 调用
- 物流预约: 调用
schedulePickup(address, time)预约快递员上门取件。
4.3.4 智能评价 (AI-Assisted Review)
用户指令: "键盘收到了,手感很棒,帮我写个好评。"
- 情感分析: 识别用户情感为
POSITIVE,关键词手感棒。 - 内容生成: AI 基于关键词生成一段高质量评价:"Keychron K2 Pro 确实名不虚传,红轴手感轻盈,打字声音清脆,非常适合长时间写代码,五星推荐!"
- 用户确认: 展示生成内容,用户可选择 "直接发布" 或 "修改"。
- 提交评价: 调用
submitReview(orderId, content, rating=5)。
项目截图


