【从零搭建本地电商智能客服 Agent:Dify+Ollama+Qwen3.5 部署全流程】

发布时间:2026/5/27 1:05:25

【从零搭建本地电商智能客服 Agent:Dify+Ollama+Qwen3.5 部署全流程】 本文针对开源电商智能客服 Agent 的部署与落地提供一套基于Docker 自托管 Dify Ollama 本地大模型 SQLite 商品数据库的完整技术方案。该方案完全脱离 OpenAI 付费 API以 Qwen3.5:4b 为核心模型实现免费、离线、可定制的电商智能客服系统解决了传统客服系统依赖付费接口、数据隐私风险高、部署成本高的痛点。文中详细记录了从 WSL2 环境配置、Dify 容器部署、Ollama 模型对接到 Agent 业务逻辑实现的全流程为个人开发者和中小企业提供了可直接复用的低成本智能客服落地方案。一、引言电商行业中智能客服是降低人工成本、提升用户咨询效率的核心工具。传统方案多依赖第三方在线大模型 API存在调用成本高、数据隐私泄露风险、网络依赖强等问题。为解决上述痛点本文基于ReAct思考 - 执行 - 反馈智能体框架结合Dify 低代码平台、Ollama 本地模型运行时和SQLite 轻量数据库构建了一套完全本地部署的电商智能客服 Agent。该方案具备以下优势零调用成本使用 Ollama 运行开源模型无需支付 API 费用数据完全可控所有对话数据、商品数据均存储在本地无隐私泄露风险离线运行能力模型部署在本地断网环境下仍可正常提供服务低配置门槛Qwen3.5:4b 模型对硬件要求低普通笔记本即可流畅运行快速二次开发基于 Dify 平台可快速编排业务流程、扩展工具能力。二、技术架构设计本项目采用三层架构设计从下到上分为数据存储层、模型调用层、智能体控制层整体架构如下┌─────────────────────────────────────────┐ │ 用户交互层Dify Web 界面/命令行 │ ├─────────────────────────────────────────┤ │ 智能体控制层ReAct 流程调度、工具调用 │ ├─────────────────────────────────────────┤ │ 模型调用层OllamaQwen3.5:4b │ ├─────────────────────────────────────────┤ │ 数据存储层SQLite 商品库、促销文本库 │ └─────────────────────────────────────────┘2.1 核心组件说明Dify 平台提供低代码智能体编排能力负责对话交互、流程控制、工具集成同时提供可视化管理界面Ollama 运行时负责本地大模型的部署与调用支持一键拉取、管理开源模型提供 RESTful API 接口Qwen3.5:4b 模型通义千问开源大模型4B 参数版本兼顾性能与硬件门槛支持对话、工具调用等任务SQLite 数据库轻量级关系型数据库存储商品基础信息名称、价格、描述、库存等支持模糊查询工具模块内置商品查询、价格计算、促销政策读取三类工具为智能体提供业务能力支持。三、部署环境准备3.1 硬件与系统要求操作系统Windows 10/11x64 架构处理器Intel/AMD 双核及以上内存至少 8GB推荐 16GB以保障模型流畅运行存储至少 10GB 空闲空间含模型文件、Docker 镜像3.2 WSL2 环境配置Docker 自托管 Dify 需要依赖 WSL2 环境配置步骤如下下载并安装 WSL2 内核更新包从微软官方下载适配 x64 架构的内核更新包https://aka.ms/wsl2kernel 双击运行.msi文件按提示完成安装。启用并配置 WSL2以管理员身份打开 PowerShell执行以下命令运行成功3.3 Docker 环境部署下载并安装 Docker Desktop安装完成后启动程序配置 Docker 代理如网络受限进入Settings → Resources → Proxies勾选 Noproxy点击Apply Restart重启 Docker 服务四、Dify 平台部署与初始化4.1 拉取并启动 Dify 容器下载 Dify 社区版代码进入docker目录官方地址https://dify.ai/官方中文地址: https://dify.ai/zh官方文档地址https://docs.dify.ai/zh-hans在目录地址栏输入cmd打开命令行执行启动命令docker compose up -d等待所有容器启动当所有服务状态显示为Started/Healthy时部署完成。如果出现网络不好可以换成个人热点4.2 初始化 Dify 管理员账户打开浏览器访问http://localhost进入初始化界面设置管理员邮箱、用户名和密码密码需包含字母和数字长度≥8 位完成初始化后进入 Dify 管理后台。五、Ollama 模型部署与对接5.1 安装 Ollama 运行时从 Ollama 官网下载 Windows 客户端并安装安装完成后 Ollama 服务将默认在后台运行监听11434端口。5.2 拉取 Qwen3.5:4b 模型打开命令行执行以下命令拉取模型ollama pull qwen3.5:4b等待模型下载完成约 3.2GB下载进度可通过命令行实时查看。5.3 在 Dify 中添加 Ollama 模型进入 Dify 后台点击设置 → 模型供应商找到Ollama点击「安装 / 配置」填写以下配置信息Base URLhttp://host.docker.internal:11434Docker 部署的 Dify 需使用此地址访问宿主机 Ollama 服务API 密钥留空Ollama 默认无身份验证模型类型选择「对话」模型上下文长度填写4096最大 token 上限填写4096是否支持 Vision选择「否」。点击「添加」保存配置配置完成后点击「获取模型列表」即可看到qwen3.5:4b模型点击启用该模型。六、电商智能客服 Agent 实现6.1 核心逻辑设计本 Agent 基于ReAct 框架实现核心流程如下用户发送商品咨询问题Agent 调用 Ollama 模型对问题进行分析判断是否需要调用工具如需工具自动调用内置工具商品查询 / 价格计算 / 促销读取获取结果工具结果反馈给模型模型结合结果生成最终回复循环执行思考 - 执行 - 反馈流程最多 20 次迭代避免无效调用直到生成最终答案。6.2 数据存储层实现使用 SQLite 数据库存储商品信息核心表结构如下sqlCREATE TABLE products ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, description TEXT, material TEXT, usage TEXT, brand TEXT, price REAL NOT NULL, stock INTEGER DEFAULT 0 );通过init_db.py脚本初始化数据库并插入测试商品数据import sqlite3 conn sqlite3.connect(sports_inventory.db) cursor conn.cursor() # 创建商品表 cursor.execute( CREATE TABLE IF NOT EXISTS products ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, description TEXT, material TEXT, usage TEXT, brand TEXT, price REAL NOT NULL, stock INTEGER DEFAULT 0 ) ) # 插入测试数据 test_products [ (足球, 专业比赛用足球, PU材质, 比赛/训练, Nike, 199.0, 50), (篮球, 室内外通用篮球, 橡胶PU, 比赛/娱乐, Spalding, 299.0, 30) ] cursor.executemany(INSERT INTO products (name, description, material, usage, brand, price, stock) VALUES (?, ?, ?, ?, ?, ?, ?), test_products) conn.commit() conn.close()通过init_db.py脚本初始化数据库并插入测试商品数据import sqlite3 conn sqlite3.connect(sports_inventory.db) cursor conn.cursor() # 创建商品表 cursor.execute( CREATE TABLE IF NOT EXISTS products ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, description TEXT, material TEXT, usage TEXT, brand TEXT, price REAL NOT NULL, stock INTEGER DEFAULT 0 ) ) # 插入测试数据 test_products [ (足球, 专业比赛用足球, PU材质, 比赛/训练, Nike, 199.0, 50), (篮球, 室内外通用篮球, 橡胶PU, 比赛/娱乐, Spalding, 299.0, 30) ] cursor.executemany(INSERT INTO products (name, description, material, usage, brand, price, stock) VALUES (?, ?, ?, ?, ?, ?, ?), test_products) conn.commit() conn.close()6.3 工具模块实现6.4 智能体编排与测试1.在 Dify 中新建「对话应用」进入编排界面若 Agent 能自动调用工具、返回准确的商品信息与回复则说明部署成功。2.将默认模型替换为已启用的qwen3.5:4b3.配置系统提示词定义客服身份与工具调用规则4.绑定内置工具设置最大迭代次数为 10 次5.保存配置发起对话测试测试问题 1你们的足球多少钱有优惠吗测试问题 2帮我查一下篮球的库存和价格测试问题 3现在店铺有什么促销活动商品查询工具基于 SQLite 模糊匹配按商品名称查询信息def query_by_product_name(product_name: str): conn sqlite3.connect(sports_inventory.db) cursor conn.cursor() cursor.execute(SELECT * FROM products WHERE name LIKE ?, (f%{product_name}%,)) result cursor.fetchone() conn.close() return result促销政策读取工具从本地文本文件读取店铺促销信息def read_store_promotions(): with open(promotions.txt, r, encodingutf-8) as f: promotions f.read() return promotions价格计算工具根据原价和折扣计算最终价格def calculate_final_price(original_price: float, discount: float): return round(original_price * discount, 2)若 Agent 能自动调用工具、返回准确的商品信息与回复则说明部署成功。七、关键问题与解决方案7.1 Ollama 模型无法在 Dify 中被识别问题现象配置 Ollama 后无法获取模型列表提示连接失败解决方案确认 Ollama 服务正在运行执行ollama list可查看已拉取模型检查Base URL是否正确Docker 部署的 Dify 必须使用http://host.docker.internal:11434关闭防火墙确保 11434 端口未被占用7.2 Dify 容器启动失败问题现象执行docker compose up -d后部分容器状态为Exited解决方案清理 Docker 缓存docker system prune -a检查 WSL2 环境是否配置正确重新执行wsl --update检查 Docker 代理配置确保网络可拉取镜像。7.3 商品查询工具无法匹配结果问题现象用户输入 “速干衣”数据库中 “运动 T 恤” 无法被匹配解决方案当前方案基于模糊匹配仅支持关键词检索可升级为 RAG 向量知识库将商品描述转为向量存储基于语义相似度实现检索。八、优化与扩展方向8.1 模型升级可根据硬件配置升级更大参数的模型如qwen3.5:7b、llama3:8b提升对话理解与工具调用能力。8.2 能力扩展新增订单查询、物流追踪、售后处理等工具扩展客服业务范围 对接企业现有 ERP/CRM 系统实现商品库存、订单数据的实时同步。8.3 性能优化对 SQLite 数据库建立索引提升商品查询效率配置 Ollama 模型缓存减少重复推理耗时为 Dify 配置反向代理实现多用户并发访问支持。九、结论本文实现了一套基于 Dify Ollama Qwen3.5 的本地电商智能客服 Agent该方案完全脱离付费 API实现了免费、离线、隐私可控的智能客服能力。从 WSL2 环境配置、Dify 容器部署到 Ollama 模型对接、智能体业务实现提供了完整的落地流程解决了传统智能客服方案成本高、依赖网络、数据隐私风险高的痛点。该方案不仅适用于电商客服场景也可快速迁移至企业内部咨询、知识库问答、个人助手等场景为个人开发者和中小企业提供了低成本、可定制的智能应用开发路径。后续可通过模型升级、工具扩展、性能优化等方式进一步提升系统的业务适配能力与用户体验。

相关新闻