AI电商导购与售后客服平台
它不是普通聊天机器人,而是一个能够:
-
理解用户需求;
-
查询商品和活动知识;
-
推荐、比较商品;
-
查询订单和物流;
-
判断退换货资格;
-
经用户确认后创建售后工单;
-
在不确定时转人工客服;
的电商 Agent。
这个项目的优势是业务非常直观,RAG、Agent、MySQL、Redis、消息队列都能自然出现。
一、用户到底能用它做什么
例如用户打开一个仿电商网站,向客服提问:
我预算5000元,想买一台适合拍照和打游戏的手机,不要苹果,有什么推荐?
系统执行:
-
识别用户购买需求;
-
提取预算、品牌、拍照、游戏等条件;
-
从MySQL筛选有库存的手机;
-
从RAG知识库检索商品参数、评测和活动规则;
-
比较几款商品;
-
给出推荐理由和引用来源;
-
用户可以直接加入购物车。
再例如:
我昨天买的耳机右边没有声音,可以退吗?
系统执行:
-
查询用户订单;
-
确认购买时间、商品状态;
-
从知识库检索退换货规则;
-
判断是否符合售后条件;
-
询问用户是否申请退款;
-
用户确认后创建售后工单;
-
通过消息队列通知售后系统。
这个场景既能展示RAG,也能展示Agent真正“完成任务”的能力。
二、RAG和Agent分别解决什么问题
这是面试时最需要讲清楚的地方。
RAG负责“知道答案”
RAG知识库包含:
-
商品详细参数
-
商品使用说明书
-
促销活动规则
-
会员权益规则
-
物流说明
-
退换货政策
-
售后维修政策
-
常见问题
-
用户评测摘要
例如用户询问:
这个手机支持无线充电吗?
RAG从商品说明书中找到对应内容,然后带着来源回答。
RAG的价值是:
-
商品资料更新后不需要重新训练模型;
-
回答有依据和引用;
-
减少大模型幻觉;
-
不同店铺可以使用不同知识库;
-
可以对不同用户进行权限隔离。
Agent负责“完成任务”
Agent可以调用工具:
-
搜索商品
-
查询实时库存
-
查询订单
-
查询物流
-
领取优惠券
-
加入购物车
-
创建退货申请
-
创建客服工单
-
转人工客服
例如:
帮我找一款500元以内的降噪耳机,有货的话加入购物车。
这不是单纯问答。Agent需要:
-
制定任务计划;
-
搜索商品;
-
检查库存;
-
检索商品知识;
-
比较商品;
-
等待用户确认;
-
调用购物车工具。
一句话概括:
RAG让模型“知道公司的知识”,Agent让模型“使用公司的系统完成任务”。
三、完整业务模块
项目可以分成三个前端入口。
1. 模拟电商商城
用户可以:
-
注册登录
-
浏览和搜索商品
-
查看商品详情
-
加入购物车
-
创建模拟订单
-
查看物流和订单状态
-
与AI客服交流
-
申请退换货
这样项目不再是一个孤零零的聊天框,而是完整电商业务。
2. AI客服对话页面
聊天界面展示:
-
流式回答
-
商品卡片
-
商品对比表
-
引用的知识来源
-
Agent执行步骤
-
工具调用状态
-
操作确认按钮
-
转人工按钮
例如:
正在理解你的需求……
正在搜索符合预算的商品……
找到12款商品……
正在检查库存和优惠……
已筛选出3款商品……
用户能直观看到Agent在工作。
3. 商家运营后台
运营人员可以:
-
管理商品
-
上传商品说明书
-
上传售后规则
-
创建知识库
-
查看文档解析状态
-
配置Agent工作流
-
查看对话记录
-
查看用户反馈
-
查看RAG命中情况
-
查看Token消耗
-
查看Agent失败原因
-
管理人工客服工单
这个后台很重要,它可以突出“全栈项目”的完整性。
四、推荐的Agent设计
不需要一开始就做十几个Agent。可以设计四个:
| Agent | 职责 |
|---|---|
| Router Agent | 判断是商品咨询、导购、订单还是售后问题 |
| Shopping Agent | 提取需求,筛选、比较和推荐商品 |
| After-sales Agent | 查询订单、检索售后规则、创建售后申请 |
| Reviewer Agent | 检查回答是否有依据、是否存在违规操作 |
执行流程:
flowchart TD
A["用户提问"] --> B["意图识别"]
B --> C{"业务类型"}
C -->|商品咨询| D["RAG商品问答"]
C -->|购买建议| E["导购Agent"]
C -->|订单问题| F["订单工具"]
C -->|退换货| G["售后Agent"]
D --> H["答案审核"]
E --> H
F --> H
G --> I{"涉及实际操作?"}
I -->|是| J["用户确认"]
I -->|否| H
J --> H
H --> K["返回结果"]
五、RAG链路怎么体现技术含量
不要只实现“上传PDF,然后向量搜索”。
建议实现下面的完整链路。
文档处理
用户上传商品说明书或者售后政策后:
-
FastAPI接收文件;
-
文件保存到MinIO;
-
MySQL记录文档状态;
-
RabbitMQ发送解析任务;
-
Worker解析PDF、Word、Markdown;
-
根据标题和段落进行语义切片;
-
生成Embedding;
-
写入向量数据库;
-
更新文档状态。
前端显示:
等待处理 → 正在解析 → 正在向量化 → 索引完成
检索优化
可以逐步实现:
-
问题改写
-
向量检索
-
BM25关键词检索
-
商品属性过滤
-
混合召回
-
RRF结果融合
-
Reranker重排
-
上下文压缩
-
引用来源
-
无答案拒答
例如用户问:
我买的手机进水了,可以免费保修吗?
系统不能只搜索“手机”和“保修”,还需要根据:
-
商品型号
-
购买时间
-
用户订单
-
保修政策版本
-
人为损坏条款
进行检索和判断。
这就比普通知识库问答更有含金量。
六、MySQL、Redis和消息队列怎么自然加入
MySQL
保存核心业务数据:
-
用户
-
商品
-
SKU
-
库存
-
购物车
-
订单
-
物流
-
优惠券
-
售后工单
-
知识库
-
文档
-
会话
-
Agent任务
-
工具调用记录
可以重点实现:
-
商品与SKU表设计
-
订单状态机
-
库存扣减
-
优惠券领取
-
售后状态流转
-
乐观锁防止库存超卖
-
唯一索引保证任务幂等
Redis
Redis可以用于:
-
商品详情缓存
-
热门商品缓存
-
购物车缓存
-
用户会话
-
Agent短期记忆
-
RAG检索结果缓存
-
Embedding缓存
-
接口限流
-
分布式锁
-
库存预扣
-
Token用量统计
比较有含金量的一个功能是“秒杀优惠券”:
-
Redis判断库存;
-
Lua脚本完成原子扣减;
-
消息发送到RabbitMQ;
4.消费者异步写入MySQL; -
使用用户ID和优惠券ID保证幂等;
-
消费失败进入重试和死信队列。
这样就能自然展示互联网高并发场景。
RabbitMQ
处理异步任务:
-
文档解析
-
Embedding生成
-
知识库重建
-
订单创建
-
优惠券异步落库
-
售后工单通知
-
Agent长任务
-
RAG自动评测
-
对话内容异步统计
需要实现:
-
ACK
-
消息重试
-
死信队列
-
延迟队列
-
幂等消费
-
消息积压监控
七、可以使用的设计模式
| 设计模式 | 项目中的用途 |
|---|---|
| Strategy | 切换向量检索、混合检索和不同大模型 |
| Factory | 根据意图创建导购、订单、售后Agent |
| Adapter | 统一不同模型和向量数据库接口 |
| State | 管理订单、售后工单和Agent任务状态 |
| Chain of Responsibility | 输入检查、权限检查、注入检测、输出审核 |
| Observer | Agent执行状态通过SSE推送前端 |
| Repository | 封装MySQL访问 |
| Template Method | 统一不同Agent的执行流程 |
| Circuit Breaker | 大模型或外部服务异常时熔断 |
| Outbox Pattern | 保证数据库操作和消息投递最终一致 |
其中最值得深入的是:
-
Strategy
-
State
-
Chain of Responsibility
-
Outbox Pattern
不用刻意把所有模式都用上。
八、前后端技术选型
React前端
建议使用:
React
TypeScript
Vite
Ant Design
React Query
Zustand
React Router
ECharts
React Flow
SSE
主要页面:
商城首页
商品详情
购物车
订单中心
AI客服
商家后台
知识库管理
Agent工作流
调用链追踪
数据统计看板
FastAPI后端
FastAPI
SQLAlchemy
Pydantic
Alembic
LangGraph
Celery或自建RabbitMQ Worker
Redis
MySQL
Qdrant
MinIO
OpenTelemetry
Prometheus
建议采用领域划分:
backend/
├── modules/
│ ├── user/
│ ├── product/
│ ├── order/
│ ├── coupon/
│ ├── after_sales/
│ ├── knowledge/
│ ├── agent/
│ └── evaluation/
├── infrastructure/
│ ├── mysql/
│ ├── redis/
│ ├── rabbitmq/
│ ├── vector_store/
│ └── llm/
├── mcp_servers/
└── api/
九、一个很适合演示的完整案例
面试时可以直接演示:
我想给女朋友买一个1000元以内的生日礼物,她喜欢拍照,三天后过生日,最好明天能到。
Agent执行:
-
提取预算、用途和时间要求;
-
查询适合拍照的商品;
-
RAG检索商品卖点和使用说明;
-
查询实时库存;
-
查询用户收货地址;
-
判断配送时间;
-
查询当前优惠活动;
-
推荐三款商品并解释区别;
-
用户选择其中一款;
-
Agent领取优惠券并加入购物车;
-
用户确认后创建模拟订单。
这个案例同时展示了:
-
自然语言理解
-
任务规划
-
RAG
-
多步工具调用
-
个性化推荐
-
MySQL业务查询
-
Redis缓存
-
订单系统
-
人机确认
-
流式前端交互
非常容易让面试官理解。
十、项目开发顺序
第一阶段:电商基础业务
先完成:
-
用户登录
-
商品管理
-
商品搜索
-
购物车
-
模拟订单
-
售后工单
-
商家后台
第二阶段:RAG知识库
完成:
-
文档上传
-
RabbitMQ异步解析
-
文档切片
-
向量检索
-
混合检索
-
Reranker
-
引用来源
-
管理后台
第三阶段:Agent
完成:
-
意图识别
-
导购Agent
-
订单Agent
-
售后Agent
-
工具调用
-
短期记忆
-
任务状态保存
-
人工确认
第四阶段:互联网工程能力
完成:
-
Redis多级缓存
-
接口限流
-
秒杀优惠券
-
分布式锁
-
幂等消费
-
消息重试
-
死信队列
-
熔断降级
-
全链路监控
-
并发压测
十一、项目最合适的名字
可以从这些里面选:
-
ShopMind:智能电商导购与客服平台
-
MallAgent:电商多智能体服务平台
-
IntelliShop:智能导购与售后Agent
-
CommerceCopilot:电商运营与客服助手
-
SmartMall AI:面向电商场景的RAG Agent平台
我比较推荐:
MallAgent——基于RAG与多智能体的电商导购及售后服务平台
它的最大优势是:业务很好懂,同时又能自然体现RAG和Agent的区别——RAG负责基于商品及规则提供可靠知识,Agent负责查询订单、检查库存、推荐商品和创建售后任务。