尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
多‑Agent 电商推荐系统完整搭建教程(原理+架构+可运行代码+模块图解+部署)
项目简介利用多智能体 Multi‑Agent 分工拆分用户画像 Agent、商品召回 Agent、排序 Agent、策略 Agent、对话 Agent实现智能化电商商品推荐基于 PythonLangChain 向量数据库全套可复现代码、架构示意图说明、分步教程。编程语言Python3.9‑3.11框架LangChain、LangGraph、FAISS、OpenAI‑API / 本地大模型、Pandas一、整体架构原理多 Agent 分工1.1 五大独立智能体职责Agent 名称核心功能用户画像 Agent解析用户浏览、购物车、历史订单、点击标签生成用户偏好标签商品召回 Agent向量库相似度召回、热门召回、类目召回粗筛候选商品池精排打分 Agent根据用户喜好、价格、评分、销量对候选商品打分排序规则策略 Agent过滤黑名单、下架商品、设置限购、优惠券、价格风控交互对话 Agent接收用户自然语言需求输出最终推荐列表、解释推荐理由1.2 系统数据流用户输入 → 对话 Agent → 用户画像 Agent → 商品召回 Agent → 排序 Agent → 策略过滤 → 返回推荐结果LangGraph 负责多个 Agent 之间调度、状态传递、循环纠错。1.3 架构文字版示意图可自行绘图用户请求 ↓ 【对话交互Agent】 ↓ 【用户画像Agent】→ 用户标签{价格区间、品类、风格、偏好品牌} ↓ 【商品召回Agent】→ 向量数据库召回Top‑20候选商品 ↓ 【精排打分Agent】→ 综合权重打分 ↓ 【策略风控Agent】→ 过滤违规商品、活动加权 ↓ 返回Top‑N推荐结果推荐解释二、环境依赖安装2.1 安装第三方库pipinstalllangchain langgraph langchain-openai faiss-cpu pandas numpy sentence-transformers python-dotenvlanggraph多 Agent 工作流调度sentence‑transformers商品文本向量化faiss‑cpu轻量级本地向量数据库用于商品相似度召回2.2 项目目录结构ecommerce_multi_agent/ ├── .env # 大模型密钥配置 ├── main.py # 主程序入口、Agent调度 ├── user_agent.py # 用户画像智能体 ├── recall_agent.py # 商品召回智能体 ├── rank_agent.py # 排序打分智能体 ├── policy_agent.py # 策略过滤智能体 ├── chat_agent.py # 入口对话Agent ├── goods_data.csv # 模拟电商商品数据集 └── vector_db/ # FAISS向量库持久化文件夹三、配置 .env 文件OPENAI_API_KEYsk-xxx OPENAI_BASE_URLhttps://api.openai.com/v1 LLM_MODELgpt-3.5-turbo无海外接口可替换为通义千问、DeepSeek、Ollama 本地大模型。四、数据集准备 goods_data.csv复制下面模拟电商商品数据保存为 csvgoods_id,name,category,price,score,sales,tag 1,夏季冰丝短袖,男装,79.9,4.8,2300,冰丝 透气 薄款 2,纯棉宽松T恤,男装,59.9,4.7,3600,纯棉 休闲 百搭 3,高腰牛仔短裤,女装,89.9,4.6,1800,牛仔 显瘦 夏季 4,防晒连衣裙,女装,129.9,4.9,2900,碎花 防晒 长裙 5,运动跑鞋,鞋靴,199,4.8,5200,减震 透气 跑步 6,通勤帆布包,配饰,39.9,4.5,4100,大容量 学生 通勤 7,男士皮带,配饰,69.9,4.3,1200,商务 自动扣 8,冰丝阔腿裤,女装,75,4.7,2600,垂感 高腰 夏天五、各个 Agent 完整代码实现5.1 加载公共配置与工具 utils集成在 main 头部importosimportpandasaspdimportnumpyasnpfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAI,OpenAIEmbeddingsfromlangchain.vectorstoresimportFAISSfromlangchain.embeddingsimportHuggingFaceEmbeddingsfromlanggraph.graphimportStateGraph,ENDfromtypingimportTypedDict,List,Dict# 加载环境变量load_dotenv()# 初始化大模型llmChatOpenAI(api_keyos.getenv(OPENAI_API_KEY),base_urlos.getenv(OPENAI_BASE_URL),model_nameos.getenv(LLM_MODEL),temperature0.3)# 初始化向量化模型本地开源向量模型无需keyembeddingHuggingFaceEmbeddings(model_nameall‑MiniLM‑L6‑v2)# 读取商品数据集dfpd.read_csv(goods_data.csv)# 定义全局状态多Agent之间传递的数据结构classAgentState(TypedDict):user_query:struser_profile:Dict recall_goods:List[Dict]rank_goods:List[Dict]final_recommend:List[Dict]explain:str5.2 用户画像 Agent user_agent接收用户查询输出用户偏好标签defuser_profile_agent(state:AgentState)-AgentState:promptf 根据用户的查询提取用户电商购物偏好输出json格式包含字段 category(偏好类目),price_max(最高预算),tags(喜好标签列表) 用户输入{state[user_query]}resllm.invoke(prompt)# 简单解析偏好profileeval(res.content)state[user_profile]profilereturnstate5.3 商品召回 Agent recall_agent构建向量库、文本相似度召回候选商品defbuild_vector_db():构建商品向量数据库textsdf.apply(lambdax:f{x[name]}{x[category]}{x[tag]},axis1).tolist()dbFAISS.from_texts(texts,embedding,metadatasdf.to_dict(records))db.save_local(vector_db)returndb# 初始化向量库vector_dbbuild_vector_db()defrecall_agent(state:AgentState)-AgentState:user_textstr(state[user_profile])searchvector_db.similarity_search(user_text,k20)candidates[doc.metadatafordocinsearch]state[recall_goods]candidatesreturnstate5.4 排序打分 Agent rank_agent综合评分、销量、价格匹配度加权打分defrank_agent(state:AgentState)-AgentState:goods_liststate[recall_goods]profilestate[user_profile]max_priceprofile.get(price_max,9999)scored[]foritemingoods_list:score0# 商品基础评分权重 50%scorefloat(item[score])*0.5# 销量权重30%scoremin(item[sales]/5000,1)*3# 价格低于预算加分iffloat(item[price])float(max_price):score2scored.append({score_total:score,**item})# 降序排序scored_sortsorted(scored,keylambdax:x[score_total],reverseTrue)state[rank_goods]scored_sortreturnstate5.5 策略过滤 Agent policy_agent商品黑名单过滤、截取 Top‑5 推荐结果 生成推荐理由defpolicy_agent(state:AgentState)-AgentState:goodsstate[rank_goods]# 简单过滤示例4.3分以下商品剔除filter_goods[gforgingoodsiffloat(g[score])4.4]top5filter_goods[:5]state[final_recommend]top5# LLM生成推荐解释文案promptf基于用户偏好{state[user_profile]}给用户解释为什么推荐下面商品{top5}简短易懂expllm.invoke(prompt)state[explain]exp.contentreturnstate5.6 入口对话 Agent LangGraph 搭建多 Agent 工作流 [main.py](main.py)defchat_entry(state:AgentState):returnstate# 构建多Agent流程图workflowStateGraph(AgentState)# 注册各个智能体节点workflow.add_node(chat_entry,chat_entry)workflow.add_node(user_agent,user_profile_agent)workflow.add_node(recall_agent,recall_agent)workflow.add_node(rank_agent,rank_agent)workflow.add_node(policy_agent,policy_agent)# 设置节点流转顺序workflow.set_entry_point(chat_entry)workflow.add_edge(chat_entry,user_agent)workflow.add_edge(user_agent,recall_agent)workflow.add_edge(recall_agent,rank_agent)workflow.add_edge(rank_agent,policy_agent)workflow.add_edge(policy_agent,END)# 编译运行图appworkflow.compile()# 测试入口if__name____main__:input_state{user_query:我想买一条夏天穿的高腰显瘦的女装短裤预算90以内,user_profile:{},recall_goods:[],rank_goods:[],final_recommend:[],explain:}resapp.invoke(input_state)print(最终推荐商品)forginres[final_recommend]:print(f{g[name]}价格:{g[price]}评分:{g[score]})print(\n推荐理由\n,res[explain])六、系统运行流程 效果运行python main.py用户自然语言输入购物需求Agent1 提取用户预算、品类、标签偏好Agent2 向量相似度召回一批候选商品Agent3 多维度加权打分排序Agent4 过滤劣质商品、截取 Top5生成推荐解释七、多 Agent 可视化图片获取方式方式 1LangGraph 自带流程图在代码末尾添加自动生成工作流图片fromPILimportImage imgapp.get_graph().draw_mermaid_png()withopen(agent_workflow.png,wb)asf:f.write(img)运行后项目文件夹生成agent_workflow.png即为多 Agent 流程图。方式 2‑架构手绘示意图矩形框画出 5 个 Agent使用箭头串联调用顺序标注向量数据库、用户输入、商品数据集八、进阶优化方向增加记忆 Agent存储用户历史浏览记录实现长期用户画像工具 Agent对接 MySQL 商品数据库、Redis 热门商品缓存多轮对话 Agent支持用户反馈 “价格太贵、换款式”Agent 循环重新召回推荐替换本地大模型Ollama‑Qwen、Llama3脱离外网 API增加 A/B 测试 Agent、冷启动 Agent、流量风控 Agent 扩充多智能体集群九、常见问题FAISS 向量库报错确认安装 faiss‑cpu首次运行自动生成 vector_db 文件夹大模型调用失败检查密钥、接口地址优先切换国内大模型接口解析 JSON 失败调低 temperature强制 LLM 严格输出 JSON 格式我把全部代码打包成可直接下载的完整项目目录结构封装为一键初始化脚手架压缩文本包含完整项目初始配置新建项目直接粘贴即可完成初始化适配前文代码与部署逻辑。需要的兄弟微信扫码添加我挨个发~
RELATED

相关推荐

单目深度估计进阶:BTS论文精读与算法创新点深度剖析

单目深度估计进阶:BTS论文精读与算法创新点深度剖析

单目深度估计进阶:BTS论文精读与算法创新点深度剖析 【免费下载链接】bts From Big to Small: Multi-Scale Local Planar Guidance for Monocular Depth Estimation 项目地址: https://gitcode.com/gh_mirrors/bt/bts BTS(From Big to Small: Mul…

📅 2026/9/2 10:41:03
胶辊厂家如何做好锂电胶辊的工艺把控

胶辊厂家如何做好锂电胶辊的工艺把控

锂电池产业持续发展,生产线对于配套零部件的要求也在不断提高,锂电胶辊作为涂布、辊压、分切工序的重要部件,辊体的精度、材质稳定性,会直接影响极片生产的良品率。很多生产企业在选型时,都会优先考察胶辊厂家的工艺能…

📅 2026/9/9 22:14:47
Apache PLC4X架构深度解析:从协议抽象到多语言实现

Apache PLC4X架构深度解析:从协议抽象到多语言实现

Apache PLC4X架构深度解析:从协议抽象到多语言实现 【免费下载链接】plc4x PLC4X The Industrial IoT adapter 项目地址: https://gitcode.com/gh_mirrors/pl/plc4x Apache PLC4X作为工业物联网领域的统一接入解决方案,其核心价值在于为不同厂商的…

📅 2026/9/1 11:56:11
MORE NEWS

更多资讯

📰

C++ 鼠标模拟程序配 TaoToken:config.toml 骨架与验证动作

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Amphenol LTW RCM-5SBMMM-SLM7B01线缆组件解析

一、RCM-5SBMMM-SLM7B01是什么?为什么适合工业网络连接 在工业设备、自动化控制柜、机器人设备、户外通信设备以及工业网络终端中,普通RJ45网线虽然应用广泛,但面对振动、粉尘、潮气以及设备长期运行等环境时,连接器的机械固定和防…

📰

企业先做官网还是先做微信小程序?从获客链路和技术成本对比

最近帮几个创业团队做技术选型,被问得最多的一个问题是:预算有限,第一版线上产品到底先做 PC/H5 官网,还是先做微信小程序? 这个问题没有标准答案,本质是获客链路和技术成本的权衡。本文把两种载体在入口、…

📰

Trae 工作环境启动失败报错排查:Windows 下 PowerShell 配置与 TaoToken 接入骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

从一个Agent案例中取学习agent配置:用TaoToken统一Key跑通Claude Code Sub-Agent骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

SSA与TAG Update:芯片后端设计的状态解耦与提交机制

1. 先想清楚一个问题:SSA 和 TAG Update 到底各自在做什么1.1 SSA 不是“保存文件”,它是给设计拍一张带有上下文信息的快照很多工程师第一次听说 SSA 的时候,第一反应是“这不就是个保存嘛”。这个理解不算错,但容易让你在后续流…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬