驰加 VIP 小群 SOP 点评 Skill
把门店发来的企业微信 VIP 小群群聊长截图按培训 SOP 标准做点评:在图上直接画绿框(做得好)/红框(待改进) + 诙谐气泡文字,并在底部附点评汇总 + 重点四环 + 客户之声 + 9 维度评分面板,最终只输出一张 PNG,文件名按 群主姓名_车牌_日期.png,可直接转发给销售改进。
更新记录(v1.2.0 · 2026-08-25)
新增客户互动与满意度反馈规则(用户明确"比较重要"),已落到 scripts/review.py、sop_review_framework.json、judgement_template.json:
- 重点三环 → 重点四环:新增 F4 客户互动与满意度反馈(口碑闭环),列为重点项。
- 客户之声板块:点评 PNG 在"重点四环"与"维度面板"之间新增"客户之声"板块,可视化客户互动与满意度:
- 客户明确认可 → 渲染绿色"为门店员工点赞 +1"徽标 + 客户原话;
- 客户全程从未回复 → 渲染红色警示"流程再标准也不代表客户满意,需补回访";
- 有互动但未明确好评 → 提示"满意度尚未被正面确认,建议交车后主动追问"。 - judgement.json 新增
customer_voice字段:replied(有互动/稀疏/从未回复)、interaction_count、expressed_satisfaction(明确认可/中性/抱怨/null)、praise_quote、like_staff、note,驱动上述板块与点赞判定。 - 核心口径:客户在群内回复互动、互动越多越好;互动中若明确表示"很认可/满意"则给门店员工点赞;反之客户从未回复,则流程再标准也不能推定客户满意——此条为重点核实项。
更新记录(v1.1.0 · 2026-08-21)
相对 v1.0.0 的 5 处体验优化(均已落到 scripts/review.py 与 judgement_template.json,并已用真实群图回归验证):
- 点评精简:每条点评建议 ≤20 字、诙谐口语,不啰嗦。
- 字体 +5px:气泡字号由
W*0.022+6提至W*0.022+11。 - 欢迎语免评:入群欢迎语/标准话术属固定内容,不纳入好/改点评(维度 2 仍标"达标")。
- 夯/拉 口径:加分项统一以"夯:"开头、扣分项以"拉:"开头;脚本
normalize_note_prefix自动归一化,旧"加分项/扣分项"写法也兼容。 - 允许少量覆盖原文:气泡放置空间阈值由
0.25/0.12放宽到0.08/0.05,位置不够时靠到消息边缘、可少量压住原文。
> <skill-directory> 指本 Skill 所在目录(即 vip-group-sop-review/),不是用户项目目录。
核心资产
| 文件 | 作用 |
|---|---|
<skill-directory>/scripts/review.py |
主脚本,含 ocr 与 draw 两个子命令 |
<skill-directory>/scripts/sop_review_framework.json |
SOP 9 维度点评口径 + 重点三环定义(唯一标准来源,点评口径以此为准) |
<skill-directory>/scripts/judgement_template.json |
点评文件 judgement.json 的填写模板 |
环境依赖
- Python 3.11 + Pillow(已预装)
- PaddleOCR 2.9.1(已安装;注意不要升级到 3.x,会产生 PIR/ONEDNN 运行时错误)
- 如未安装:
sudo pip3 install paddleocr==2.9.1 paddlepaddle==2.10(或paddlepaddle-gpu)
何时使用 / 直接触发原则
默认直接触发、少确认:用户只要发来企业微信 VIP 小群群聊截图(单张或多张长截图),即按本 Skill 全流程自动点评,无需再等用户说"点评"或征求方案确认。工作流已定型,发图即跑。
- 用户消息含图片附件且内容像门店 VIP 小群群聊(欢迎语 / 车牌 / 报价单 / 施工照 / 查车结果 / 结束语)→ 直接触发
- 用户一次性发多张截图 → 走批量流程
- 例外(需先提示用户,不要盲目跑):图片疑似被平台压缩到 <400px 宽(OCR 与点评都不准)、或图片根本没收到(仅 URL 需下载、或网页上传失败)
> 即便用户只发图、一句话没说,也应直接调用本 Skill 完成 OCR→点评→生成 PNG。
关键口径(务必遵从)
draw 生成结论的依据只有两个文件:SOP 框架(sop_review_framework.json,固定标准)+ 本图点评(judgement.json,AI 针对该图填写)。不要凭空编造维度或标准。
9 维度(维度定级:达标 / 部分达标 / 未达标 / 无法核验)
| id | 维度 | 重点检查 |
|---|---|---|
| 1 | 建群规范性 | 群名=车牌+车型+称呼+'VIP专属群';入群人员齐全(店长/运营经理/前台/服务顾问+客户) |
| 2 | 入群欢迎语 | 说清建群目的、告知同步维修全过程、强调管理层在群内 |
| 3 | 车辆信息登记 | 车牌/车型/公里数/首需/技师齐全,并预告按原厂数据做安全查车 |
| 4 | 6步信息顺序 | 入群介绍→车辆信息→施工展示→报价确认→结算单→结束语+未成交优惠券;报价确认须有客户留痕 |
| 5 | 招牌动作拍照达标 | 按品类张数:换油6张(三件套/油尺液位/机滤签名/机油/过程/机舱)、换胎4张、四轮定位3张等 |
| 6 | 真实透明(非形式化) | 真实可见、带具体数据与故障,反对对着CCTV做的形式化应付 |
| 7 | 真实查车率/上工位 | 是否真实上工位查车、故障照片是否真实呈现 |
| 8 | 过程管理(区域推动) | 无法核验(单图固定标"无法核验") |
| 9 | 数据复盘 | 无法核验(单图固定标"无法核验") |
重点四环(必须单列强调,对应 key_focus_review)
这是工作流的价值核心,点评时单独评估并写入报告:
- F1 报价单确认(成交临门一脚):报价单发出后必须拿到客户明确确认留痕(群内回"确认"/语音)。没有确认=没有闭环。
- F2 查车沟通前的满意度展示(成交概率前置):把"第二需求/问题清单"端给客户前,先通过欢迎语、登记、施工直播、"整体状况良好"把客户情绪拉到满意;客户满意了,再沟通问题/报价时抗拒最低、第二需求成交概率最高。
- F3 第二需求成交后的施工展示(复购与口碑):第二需求(换油/积碳清洗等)成交后,用透明、丰富的招牌动作施工照让客户"眼见为实"、感觉物超所值;透明到位,整个消费流程客户才满意,才会再来、才转介绍。
- F4 客户互动与满意度反馈(口碑闭环 · 重点项):客户(车主)在群内是否回复并与门店员工互动,互动越多越好;互动中是否对本次服务给出评价。若客户明确表示"很认可/满意",点评中应给门店员工点赞(PNG"客户之声"板块渲染绿色"为门店员工点赞 +1" + 客户原话)。反之,若客户全程从未回复,则流程再标准也不代表客户满意——此条为重点核实项,点评必须单列,并在"客户之声"板块渲染红色警示,提醒线下/电话补回访。注意:有互动 ≠ 明确认可,未给明确好评时不点赞。
输出规则(明确、不要跑偏)
- 只输出一张 PNG,不生成 HTML / MD 报告文件(脚本已移除报告生成,专注图上标注)。
- 图上直接标注:绿框=做得好、红框=待改进;每条标注旁画诙谐气泡(口语化、不要太死板)。点评措辞规范:加分项以"夯:"开头、扣分项以"拉:"开头(脚本自动归一化,旧写法也兼容);每条点评尽量精简,建议 ≤20 字,例如"拉:报价发完没等'确认'留痕"。气泡位置不够时允许少量覆盖原文。
- 发出的施工/查车照片也要点评(照片消息在 messages 里占一个编号,可按好/改给框+气泡)。
- 底部依次排列:点评汇总栏(绿=好/红=改)+ 重点四环板块(暖色强调 F1/F2/F3/F4)+ 客户之声板块(可视化客户互动与点赞/从未回复警示)+ 9 维度评分面板。
- 入群欢迎语 / 标准话术属固定内容,不纳入"好/改"点评(即不要把欢迎语写进 good/bad)。维度 2「入群欢迎语」默认标"达标"即可,无需展开点评。
- 文件名 =
群主姓名_车牌_日期.png(如梁婉媚_粤RXF587_20260808.png)。群主姓名优先取judgement.json的group_owner;若为空,脚本自动从群顶"群主:xxx"信息提取并去掉"群主:""XX店服务官"等前缀。
图片接收注意事项(重要,踩过坑)
> 用户一发图即触发:先定位图片(消息附件里的 https://...cos...myqcloud.com/... URL 用 curl 下载,或读取 /workspace/reviews/inbox 下的本地文件),拿到原图后立刻走下方三步流程,不要等用户补充"点评"指令。
- 高清原图是准确点评的前提。平台常把上传图压到 ~190px 宽再交给工作区,这种图 OCR 也勉强、点评更不准(曾把"会员专属群"误判为缺后缀)。
- 用户用网页版上传时,图片可能以腾讯云 COS 的 URL 形式传到消息里(不落本地文件)。遇到"没收到图片",先检查用户消息里是否带
https://...cos...myqcloud.com/...的附件 URL,用 curl 直接下载即可。 - 也可直接把原图放进
/workspace/reviews/inbox/(绕过网页上传最稳)。 - 脚本保存输入时会自动在文件名追加实际分辨率(如
xxx_1024x9691.jpg),一眼区分原图/压缩图。
单张点评工作流(三步)
SK=<skill-directory>/scripts
# 步骤1:OCR 识别 + 消息分块
python3.11 $SK/review.py ocr --in /workspace/reviews/inbox/某群截图.jpg --out /workspace/reviews/out/
# 产出:/workspace/reviews/out/messages.json + messages.txt(逐条消息文字与坐标)
# 步骤2:读 messages.txt,按 SOP 框架填写 judgement.json
# cp $SK/judgement_template.json /workspace/reviews/out/judgement_某群.json
# 依据 messages 编号写 good/bad(idx 指向消息编号)/ suggestions / key_focus_review / dimensions
# group_owner、plate、date 必填(决定最终文件名)
# 步骤3:生成标注 PNG
python3.11 $SK/review.py draw \
--in /workspace/reviews/inbox/某群截图.jpg \
--messages /workspace/reviews/out/messages.json \
--judge /workspace/reviews/out/judgement_某群.json \
--framework $SK/sop_review_framework.json \
--out /workspace/reviews/out/
# 产出:/workspace/reviews/out/群主_车牌_日期.png(最终交付物)
批量点评工作流
适用于用户一次性导入多张群截图。约定:每张图独立子目录,避免 messages.json 互相覆盖。
SK=<skill-directory>/scripts
INBOX=/workspace/reviews/inbox
OUT=/workspace/reviews/out
# 阶段A:批量 OCR(每张图建独立子目录)
for img in "$INBOX"/*.{jpg,jpeg,png,webp}; do
[ -e "$img" ] || continue
id=$(basename "$img" | sed 's/\.[^.]*$//')
d="$OUT/$id"; mkdir -p "$d"
python3.11 $SK/review.py ocr --in "$img" --out "$d" # 可放后台并行:run_in_background=true
done
# 每张子目录下得到 messages.json + messages.txt
# 阶段B:逐张读 messages.txt,写 judgement_<id>.json(AI 按 SOP 填充,可并行多张)
# cp $SK/judgement_template.json "$OUT/<id>/judgement.json"
# 阶段C:批量 draw 生成 PNG
for d in "$OUT"/*/; do
[ -f "$d/messages.json" ] && [ -f "$d/judgement.json" ] || continue
python3.11 $SK/review.py draw \
--in "$INBOX/$(basename $d).jpg" \
--messages "$d/messages.json" \
--judge "$d/judgement.json" \
--framework $SK/sop_review_framework.json \
--out "$d"
done
# 每个子目录产出 群主_车牌_日期.png
> OCR 单张约 1–2 分钟(长图);多张可用 run_in_background=true 并行,完成后再统一写 judgement 与 draw。
judgement.json 字段规范
| 字段 | 必填 | 说明 |
|---|---|---|
group_owner |
是 | 群主姓名;留空则脚本自动提取。决定文件名 |
plate |
是 | 车牌,如 粤RXF587 |
date |
是 | 日期 YYYYMMDD |
overall |
是 | 一句话总评(TL;DR) |
dimensions |
是 | 9 维度定级与依据,level∈{达标,部分达标,未达标,无法核验} |
good |
是 | 做得好的消息,每项 {idx, note},note 诙谐口语化 |
bad |
是 | 待改进的消息,每项 {idx, note} |
suggestions |
是 | 可执行改进建议(转发销售用) |
key_focus_review |
是 | 重点四环 F1/F2/F3/F4 的定级与点评 |
customer_voice |
是 | 客户互动与满意度反馈(v1.2 新增):replied(有互动/稀疏/从未回复)、interaction_count、expressed_satisfaction(明确认可/中性/抱怨/null)、praise_quote、like_staff、note;驱动"客户之声"板块与点赞判定 |
good/bad 的 idx 对应 messages.json 里的消息编号;图片消息也占一个编号。
常见问题
- draw 报错找不到 framework:
--framework必须传绝对路径<skill-directory>/scripts/sop_review_framework.json(脚本默认值只对当前目录有效)。 - 文件名没用群主姓名:检查
judgement.json的group_owner是否为空且群信息里没有"群主:xxx"字样;可手动填写。 - OCR 慢/疑似卡死:首次运行会下载模型,之后 1–2 分钟;长图(>9000px)耐心等待,勿中途杀进程。
- 标注字体太小:在
review.py的place_note里调font(W * 0.022 + 11)的系数(当前已 +11px)。