工单自动分类应采用轻量级文本分类模型(如Tfidf+SVM),PHP端仅做预测;分配需动态结合坐席技能、负载与响应时长;关键字段提取依赖正则+白名单校验;外部通知必须异步入重试队列。

工单自动分类用 text-classification 模型,别手写规则
纯正则或关键词匹配在客服场景里基本不可用——用户说“APP打不开”和“手机进不去软件”,语义一样但字面差很远。真正能落地的是轻量级文本分类模型,比如用 PHP-ML 加载训练好的 TfidfVectorizer + Svm 模型。
实操建议:
- 训练阶段用 Python(
scikit-learn)跑好模型,导出为joblib或pickle,再用php-ml的ModelLoader加载(注意 PHP 8.1+ 和序列化格式兼容性) - PHP 端只做向量化和预测:把用户问题过一遍
TfidfVectorizer的transform(),再喂给predict(),返回'login_issue'、'payment_failed'这类预定义标签 - 别在 PHP 里实时训练——内存扛不住,且模型更新要走发布流程,不是热加载
- 常见错误:
Uncaught Error: Class "Phpml\Classification\Svm" not found,确认已composer require php-ai/php-ml,且没漏装ext-gmp扩展(SVM 依赖它)
assign_to_agent() 要结合负载 + 技能 + 响应时长
按部门分发(比如“支付问题→财务组”)只是第一步,真正在用的系统必须动态算人。硬编码分配逻辑很快会卡死,尤其夜班或有人请假时。
实操建议:
- 维护一张
agent_skills表,字段含agent_id、skill_tag(如'refund')、current_load(当前待处理工单数)、last_response_sec(上次响应耗时秒数) - 分配函数
assign_to_agent()先查匹配技能的坐席,再按current_load ASC, last_response_sec ASC排序取第一个 - 避免轮询式分配:不按 ID 取模,否则新员工永远排后面;也不固定指派,否则离职后逻辑崩坏
- 性能注意点:这个查询要加复合索引,比如
INDEX(skill_tag, current_load, last_response_sec),否则万人工单量下会慢成半秒以上
用户问题提取关键字段得靠 preg_match() 配合白名单
分类和分配之前,得先从一段话里捞出手机号、订单号、设备型号这些结构化信息。指望 NLP 实体识别在 PHP 里准又快?不现实。老老实实用正则 + 白名单兜底更稳。
实操建议:
- 订单号优先匹配数据库里真实存在的
order_id(查orders表),比正则/ORD-\d{8}/更准——用户可能输错一位,但库里查不到就跳过 - 手机号用
preg_match('/1[3-9]\d{9}/', $text, $matches),但必须校验strlen($matches[0]) === 11,防用户写“我的电话是138123456789” - 设备型号这类开放词,建个
device_keywords表存常见值('iPhone 14 Pro'、'小米13'),用LIKE %keyword%模糊查,别上全文索引——太重,且中文分词不准 - 容易踩的坑:
mb_ereg()在 PHP 8 已废弃,统一换mb_preg_match(),否则 UTF-8 中文直接不匹配
Webhook 回调失败时,retry_queue 比日志更重要
工单创建后要通知企微/钉钉机器人、触发短信、写入 CRM,这些全是外部 HTTP 调用。网络抖动、目标服务超时、token 过期……任一环节失败,工单状态就卡住,用户以为没提交成功。
实操建议:
- 所有外发操作不走同步请求,一律丢进
retry_queue表:字段含job_type('send_dingtalk')、payload(JSON)、attempts、next_retry_at - 用
crontab每分钟扫一次next_retry_at 的记录,最多重试 3 次,第 4 次进failed_jobs表人工介入 - 别依赖
file_get_contents()的$http_response_header判断成功——HTTP 200 不代表消息送达(比如钉钉返回{"errcode":0}才算真成功) - 最常被忽略的一点:
retry_queue表的payload字段必须用TEXT类型,别用VARCHAR(255),否则 JSON 截断后重试永远失败
分类模型的特征工程、坐席负载的实时更新、正则的边界校验、队列的幂等设计——这些地方不抠细节,系统上线三天就开始漏单。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











