小店客服每天会遇到重复的发货问题,也会遇到必须查订单、处理退款的消息。这个本地练习会把一条消息分成两种结果:从虚构 FAQ 拟一条待检查的回复,或标记为等待人工处理。6 条虚构消息都按预设路线走通;整套流程只在本机运行,不会连客服账号或发送消息。Ollama 和 OpenJev 环境已经装好后,运行约 10 分钟;首次下载模型另算。

你需要准备

准备 本次使用
电脑 Apple M1 Max、64GB 统一内存、macOS 27.0.1;OpenJev 的 4-bit 模型约需 16GB 才能载入,运行时还要更多内存
回复模型 Ollama 0.35.1 和本机 Gemma4-12B Q4_K_M;本次调用标签为 gemma4-12b:latest
分流模型 本机 OpenJev 0.5.0,使用 DiffusionGemma 26B-A4B 4-bit MLX
练习资料 客服 Agent 本地练习包,含虚构 FAQ、6 条样例、脚本和本次运行结果
花费 模型已经下载;运行不调用云端推理 API。首次安装、下载约 8GB 的 Gemma4 12B 和约 16GB 的 OpenJev 权重另计

如果你只需要回答几条固定问题,先看店铺平台有没有现成的客服知识库功能。本练习适合想了解本地模型怎样串起“查资料、拟回复、转人工”的人;需要一点终端操作,首次部署也比较吃内存和磁盘。

先把边界画出来

客服 Agent 不应该只靠模型说“我觉得可以”。这套练习按下面顺序处理消息:

环节 做什么
固定规则 订单查询、退款扣费、投诉和个人资料一律标记给人工
FAQ 查找 只用练习包里的关键词匹配两条发货规则;资料没有答案就转人工
OpenJev 分类 判断问题是否能由这份 FAQ 回答。它可以把消息升级给人工,不能推翻前面的固定规则
Ollama 拟答 只把匹配到的 FAQ 原句交给 Gemma4,生成一条本地草稿,不发送

这份 FAQ 是练习用的虚构资料:工作日 15:00 前下单通常当天发出;15:00 及之后下单,安排下一个工作日发出。它没有订单物流、退款条件、商品保质期或个人资料修改方式。

这里的“知识库”只是一个小 Markdown 文件加关键词查找,不是向量检索或完整客服系统。接真实业务前,还要处理资料更新、用户身份、日志权限和人工接手方式。

准备本机服务

Ollama 是在电脑上运行大模型的工具,可从官方页面下载。安装后拉取 Gemma4 12B:

ollama pull gemma4:12b

OpenJev 是社区维护的本地分类服务。它和 TypeSafe 的 Jev 是不同项目;其 Mac 安装和启动步骤见《Mac 本地跑 OpenJev》。OpenJev 的 4-bit 模型约 16GB,运行时还会占用额外内存;请先看电脑空间和内存,再下载。本文实测用的是 OpenJev 0.5.0;官方仓库当前已提供 0.6.0 示例,按新版本安装时命令和表现可能不同。

分别启动 Ollama 和 OpenJev,保持两个服务运行。Ollama 默认监听 127.0.0.1:11434,OpenJev 本地教程默认监听 127.0.0.1:8080。

跑一遍 FAQ 和人工分流

下载并解压练习包,在终端进入解压后的目录,运行:

python3 run_demo.py

如果 Ollama 里的 Gemma4 模型使用了别的名字,可以在命令前指定模型标签:

OLLAMA_MODEL=gemma4:12b python3 run_demo.py

脚本先检查分流规则,再读取 cases.json 里的虚构消息。你会看到类似这样的输出:

C01 expected=draft_reply openjev=faq route=draft_reply reason=faq_match
C03 expected=human openjev=human route=human reason=hard_rule
routes={'cases': 6, 'draft_reply': 2, 'human': 4, 'expected_route_matches': 6}

两条发货问题从 FAQ 拿到原句,再由 Gemma4 拟草稿;订单物流、重复扣费、FAQ 没写的保质期和修改手机号都标记给人工。待人工处理的消息不会自动建工单,也不会发到任何客服平台。每条分类结果、草稿和耗时保存在 evidence/run-results.json。

这次 6 条样例都符合预设路线,且两条草稿与 FAQ 原文一致。OpenJev 对 6 条消息各判断一次;这只是同一台电脑、同一套虚构题目的一次流程检查,不是生产准确率。OpenJev 返回的类别概率和 confidence 是模型判断分布,不能替代人工标注题集上的误判统计;官方 API 也将它们定义为分类结果字段。OpenJev API 说明

改成你自己的 FAQ 前

先用不含个人信息的虚构问题练习。要添加 FAQ,编辑包里的 faq.md 和脚本 run_demo.py 中的关键词映射;要转人工的词放进固定规则。遇到订单、金钱、投诉或个人资料时,先保留人工处理路线,不要让模型用一个高分把它改成自动回复。

本次脚本将请求发到本机 Ollama Chat API 和 OpenJev SystemOne API,没有接外部推理服务。Ollama Chat API 文档说明了本地对话接口的请求和响应格式。草稿仍然需要店员检查来源、语气和事实;脚本里没有真实工单、权限认证、审计系统或客服平台接入。

拿它挣钱

可以为小团队整理 FAQ、搭一个本地验证原型,再和客户一起设计“哪些能自动草拟、哪些必须人工看”的规则。报价时把资料清理、部署维护、权限与复核流程分别列清楚;价格先看接单平台上的同类服务再定,不要用模型开源或样例通过来承诺准确率。开始前让客户确认哪些资料能进入测试环境。

工具清单

工具 用途 费用和访问
Ollama 在本机运行回复模型 本地推理不调用云端 API;下载和运行会用磁盘、电力。官网和模型下载的国内访问情况请按你的网络确认
Gemma4 12B 根据 FAQ 拟回复草稿 查看官方模型页及许可;本机使用 12B Q4_K_M 标签
OpenJev 将消息分成 FAQ 可答或转人工 开源项目;本机部署需要较大的模型文件和内存。官网、依赖与权重下载需能访问相应来源

接下来可以做什么