当前位置: 首页 > news >正文

打造智能电商客服 Agent:基于 LLM 的工具调用与多轮推理实践

在电商场景中客服需要快速响应用户关于商品、促销、价格计算等问题传统的固定话术或简单问答机器人很难满足复杂的用户需求。本文将分享如何基于大语言模型LLM打造一个具备工具调用能力、多轮推理能力的智能电商客服 Agent实现从 “被动回答” 到 “主动推理 工具调用” 的升级。一、核心需求与技术思路1. 核心需求电商客服需要处理三类核心问题通用咨询无需工具直接回答商品信息查询调用数据库工具促销信息读取调用文件读取工具价格计算调用计算器工具。 要求 Agent 能自主判断问题类型通过多轮推理调用对应工具最终整合结果给出答案。2. 技术思路基于 LLM支持 OpenAI 在线模型 / 本地 Ollama 开源模型构建 Agent 核心逻辑设计 “Thought-Action-Observation” 循环Agent 先思考→调用工具→获取观测结果→继续思考或给出答案封装工具函数商品查询、促销读取、计算让 LLM 按需调用配置化管理模型参数兼容不同 LLM 部署方式。二、系统架构设计整个系统分为 4 个核心模块结构如下├── main.py # 主程序循环交互、工具调用逻辑、迭代控制 ├── agent.py # 客服Agent核心类系统提示、LLM调用、对话管理 ├── op_llm_client.py # LLM客户端封装兼容Ollama/OpenAI ├── tools/ # 工具函数目录 │ ├── query_product_data.py # 商品查询工具 │ ├── read_promotions.py # 促销信息读取工具 │ └── calc.py # 价格计算工具 ├── config.json # 模型配置文件切换模型、设置参数 └── .env # 环境变量OpenAI API Key等1. LLM 客户端封装op_llm_client.py兼容本地 Ollama 和 OpenAI 在线模型统一调用接口OllamaClient类封装本地模型的 HTTP API 调用处理请求格式、响应解析统一chat_completions_create方法对齐 OpenAI 的调用逻辑降低 Agent 层的适配成本处理网络异常、模型不存在等异常场景提升鲁棒性。核心代码片段Ollama 调用def chat_completions_create(self, model, messages, temperature0.7): url f{self.base_url}/api/generate headers {Content-Type: application/json} payload { model: model, prompt: self._format_messages(messages), stream: False, temperature: temperature } response requests.post(urlurl, headersheaders, datajson.dumps(payload)) if response.status_code 200: data json.loads(response.text) return data[response]2. 客服 Agent 核心agent.py系统提示词设计定义 Agent 的角色电商客服、思考逻辑Thought-Action-Observation 循环、工具调用格式、输出规范最终答案以 Answer: 开头对话管理维护messages列表记录系统提示、用户输入、Agent 回复实现多轮对话上下文管理可调用实例通过__call__方法让 Agent 实例像函数一样调用简化交互逻辑模型适配自动判断当前使用的是 Ollama 还是 OpenAI 模型调用对应生成接口。核心系统提示词设计要点self.system_prompt You are a Intelligent customer service assistant for e-commerce platform. If specific information about the product is involved, You run in a loop of Thought, Action, Observation. Use Thought to describe your analysis process. Use Action to run one of the available tools - then wait for an Observation. When you have a final answer, output it as Answer: [Your answer here]. Available tools: 1. query_by_product_name: Query the database to retrieve product info by name 2. read_store_promotions: Read promotion info for the product 3. calculate: Calculate final price with discount When using an Action, always format it as: Action: tool_name: argument1, argument2, ... 3. 主程序逻辑main.py主程序是整个系统的 “大脑”负责加载配置初始化 LLM 客户端和 Agent处理用户输入启动多轮推理循环解析 LLM 输出的 Action 指令调用对应工具控制最大迭代次数防止无限循环提取最终 Answer 并返回给用户。核心推理循环逻辑while iteration max_iterations: try: result agent(query) # 解析Action指令 action_re re.compile(r^Action: (\w): (.*)$) actions [action_re.match(a) for a in result.split(\n) if action_re.match(a)] if actions: # 调用工具获取观测结果 tool_name action_parts[0] tool_args action_parts[1] observation tools[tool_name](tool_args) query fObservation: {observation} # 作为下一轮输入 elif Answer: in result: # 提取最终答案结束循环 print(f客服回复{result.split(Answer:, 1)[1].strip()}) break iteration 1三、关键技术亮点1. 工具调用的标准化设计通过正则表达式解析 LLM 输出的Action: 工具名: 参数格式实现工具调用的标准化工具注册通过字典tools {query_by_product_name: query_by_product_name, ...}注册工具便于扩展参数传递兼容单参数场景异常捕获工具执行错误返回友好的 Observation扩展性新增工具只需实现函数并注册到字典无需修改核心推理逻辑。2. 多模型兼容与配置化通过config.json配置模型类型、参数实现 “一键切换”{ openai: { use_model: false, model_name: gpt-3.5-turbo, base_url: https://api.openai.com/v1, max_iterations: 10, temperature: 0.7 }, ollama: { use_model: true, model_name: qwen:7b, max_iterations: 10, temperature: 0.7 } }3. 防无限循环的迭代控制通过max_iterations参数限制推理轮数避免 LLM 陷入 “思考 - 调用工具 - 思考” 的无限循环提升系统稳定性。四、运行与扩展指南1. 环境准备安装依赖pip install requests openai python-dotenv部署 Ollama本地模型参考Ollama 官方文档拉取模型如ollama pull qwen:7b配置.env文件设置 OpenAI API Key如需使用在线模型编写工具函数实现query_by_product_name、read_store_promotions、calculate的具体逻辑如连接数据库、读取促销文件。2. 扩展方向新增工具如物流查询、订单状态查询只需实现函数并注册到tools字典优化提示词加入更多场景约束如商品分类、地域促销提升工具调用准确性多轮对话优化增加上下文总结减少 LLM 输入长度流式输出适配 Ollama/OpenAI 的流式响应提升用户体验。五、总结本文构建的智能电商客服 Agent核心是将 LLM 的 “推理能力” 与 “工具调用能力” 结合解决了传统客服机器人 “只会固定回答” 的痛点。通过标准化的工具调用设计、多模型兼容、迭代控制实现了一个可扩展、高鲁棒性的智能客服系统。该方案不仅适用于电商客服场景还可迁移到金融、政务、教育等需要 “推理 工具调用” 的领域只需调整系统提示词和工具函数即可快速适配新场景。附完整运行流程示例输入您的问题或输入 退出 来结束: 你们店卖足球吗如果卖的话现在有什么优惠最终价格是多少 Thought: 要回答这个问题首先需要查询数据库确认是否有足球在售及价格。 Action: query_by_product_name: 足球 Observation: 足球有库存售价120元。 Thought: 接下来需要查询足球的促销政策。 Action: read_store_promotions: 足球 Observation: 足球当前享9折优惠。 Thought: 最后需要计算最终价格。 Action: calculate: 120 * 0.9 Observation: 计算结果为108.0元。 Thought: 已获取所有信息可给出最终答案。 客服回复 据查询本店有足球在售原价120元当前享9折优惠最终购买价格为108元。
http://www.zskr.cn/news/1383497.html

相关文章:

  • Pikachu暴力破解实战:从Burp Intruder入门到认证逻辑分析
  • 机器学习破解量子测量诱导纠缠难题:从数据中学习量子关联
  • UE5跨关卡数据持久化:SaveGame与GameInstance实战指南
  • 网盘文件下载速度提升方案:LinkSwift直链获取工具全解析
  • 湖北省荆门CPPMSCMP官网报考入口,官方授权双证报考中心 - 众智商学院课程中心
  • JMeter HTTP接口测试全链路实战:从协议合规到业务归因
  • comfyui Z-Image运行报错:error in loading state dict for llama2 size mismatch 的解决方法
  • Windows运行 Pascal Editor 源码报错:环境变量 -a 没有定义解决方法
  • Unity初音跳舞资源深度适配指南:从导入崩溃到群舞流畅
  • 基于大模型 RAG 应用开发与优化|企业级 LLM 应用构建
  • 微信抢红包神器:Android自动抢红包插件深度体验指南
  • 内容创作团队如何通过Taotoken Token Plan套餐控制AI生成成本
  • 软件可维护性评估:CodeScene、SonarQube与ML模型性能对比与工程实践
  • 【Claude测试效能跃迁计划】:为什么92%的团队在v3.5升级后端到端测试失效?3步重建可信性
  • 随身 wifi 性价比高的推荐,2026多场景使用便携上网设备深度测评 - 资讯快报
  • 2026年建材围挡厂家口碑推荐榜:施工围挡、钢结构围挡、市政围挡、工地围挡、彩钢围挡、地铁围挡、工程围挡、建筑围挡、地产围挡、临时围挡厂家选择指南 - 海棠依旧大
  • 2026年C++与C语言结构差异解析:C++非C语言超集,迁移规则需明确
  • 破界而生:AI驱动的下一轮产业革命
  • 为你的开源项目配置 Taotoken 实现低成本 AI 功能
  • JMeter接口签名与加解密实战:从原理到可复用工程化方案
  • 2026年AI编程终极对决:Claude Code vs Codex,谁才是你的最佳AI同事?
  • 浏览器端音乐解锁终极方案:告别加密音乐播放限制
  • 2026 合肥家具工厂直营店性价比排行:3 家本地人公认的省钱好店 - 资讯快报
  • 工业云脑:06 现在就能干:树莓派边缘盒子+PLC,10分钟缺陷检测小案例
  • JMeter接口测试底层原理:从HTTP协议到线程级状态管理
  • 鸿蒙PC:从一个普通 Electron 项目到鸿蒙可运行项目:vmd-master 适配实战全记录
  • 2026年1688开户代运营优选:衡水企信网络科技有限公司, 全国商家靠谱电商合作伙伴 - GrowthUME
  • 2026闭眼入!5款一键生成论文工具亲测,摆脱无效加班,初稿质量效率翻倍
  • 模型反演攻击:TinyML场景下的隐私泄露与轻量化防御实践
  • OpenSSH密钥交换漏洞CVE-2025-26465/26466纵深防御指南