“全屋定制-志翔”为什么被机器人叫错?
把安装包、销售电脑、云端模型和安全门逐层拆开,用小孩也能看懂的方式说明。
📷 ✂️ 🤖 ❓
一句话答案机器人拿到的图片里没有客户名字,但题目逼它一定写一个名字,所以它乱猜了。
🤖
大机器人乱猜“主屋”或“王坚”
≠
🔍
标题机器人看清楚“全屋定制-志翔”
没有发错人:最后一道安全门发现名字不同,把消息拦住了。
部署架构:东西都住在哪里?
安装时
📦
cmd.exe 自解压包→⚙️ PowerShell Expand-Archive→⏰ Windows 计划任务 / 启动文件夹销售电脑
💬 Windows 微信 4.x↔🐍 内嵌 Python 3.12 小助手←📝
config.txt看图片
👁️
/wecom/ocr 代理→🧠 Qwen3-VL 235B / 30B想回复
💡
/wecom/chat/reply→🧠 Qwen3 235B 文本模型故障经过的四个关键环节
💬
① 微信窗口软件:Windows 微信 4.x找窗口:Python
ctypes + Win32 user32本轮:
active_chat,没有点击列表实际打开:全屋定制-志翔
→
📷
② 本地截图运行:内嵌 Python 3.12抓图:
PrintWindow + gdi32裁图:
Pillow + calibrate.py坏点:
chat_region 从 y≈6% 开始,顶部名字被剪掉→
🧠
③ 云端视觉识别发送:Python requests + Base64接口:
/wecom/ocr/chat/completions主:
Qwen3-VL 235B备用:
Qwen3-VL 30B看不到标题,却按 Prompt 猜了名字
→
🛡️
④ 本地安全门标题复核:Qwen3-VL 30B归一化:
weixin_identity.py比较:
guards.py identity_gate() 逐字相等调度:
runner.py 记录 identity_mismatch 并停止每个环节到底用了什么模型和工具?
| 任务 | 先用谁 | 失败后换谁 | 实质工作 |
|---|---|---|---|
读整个聊天 read_chat | qwen/qwen3-vl-235b-a22b-instruct | qwen/qwen3-vl-30b-a3b-instruct | 气泡 OCR、左右、群聊、底部,还被要求填标题 |
只读顶部名字 read_title | qwen/qwen3-vl-30b-a3b-instruct | qwen/qwen3-vl-235b-a22b-instruct | 只看顶部标题条 |
读列表一行 read_list_row | qwen/qwen3-vl-30b-a3b-instruct | qwen/qwen3-vl-235b-a22b-instruct | 头像、名字、消息预览 |
| 生成回复 | qwen/qwen3-235b-a22b-2507(服务端默认) | 由服务端配置决定 | 加载历史、画像、知识库、话术规则后写回复 |
没有传统 OCR:这里没有用 Tesseract。文字识别实际由 Qwen3-VL 看图完成。回复模型可能被服务端
LLM_WECOM_CHAT_MODEL 或 LLM_MODEL 覆盖,单看安装包无法证明当时最终覆盖值。销售电脑里的机械工具
| 动作 | 工具 | 做什么 |
|---|---|---|
| 找窗口 | Python ctypes + Win32 user32 | 按进程与窗口大小找到微信 |
| 后台截图 | PrintWindow + gdi32 | 不抢前台也能拿到窗口图片 |
| 点击 | PostMessage | 向微信窗口发送点击消息 |
| 输入 | Windows 剪贴板 + Ctrl+V | 粘贴回复 |
| 礼让销售 | GetLastInputInfo | 查看最近键鼠活动 |
| 发现画面变化 | Pillow 像素 + SHA-256 | 比较聊天图片指纹 |
工作流:一步步发生了什么?
🔴
1没找到未读红点→
👀
2改看当前聊天→
✂️
3截图没带名字→
🤖
4大模型猜名字→
🔍
5小模型单读标题→
🛑
6名字不同,停止未读红点漏检 + active_chat 备用路 + 标题被裁掉 + 必须回答 title = 连续认人失败最具体的坏点
真正标题:全屋定制-志翔
✂️ 发给大模型的图片从这里才开始,标题不在图片里
我想了解装修
好的,我来帮您
给模型的东西
只有聊天气泡,没有标题
只有聊天气泡,没有标题
但是
给模型的题目
必须填写
必须填写
title确定根因:
layout.chat_region 从窗口约 6% 高度开始;CHAT_PROMPT 却要求返回 title。另外三个工作流问题
| 问题 | 小孩版解释 | 影响 |
|---|---|---|
| 备用路没有列表名字 | 没看课本封面,就直接猜书名 | 缺少可靠身份来源 |
| 一个分数管所有答案 | 数学全对,不代表语文名字也对 | conf=0.95 不能证明标题正确 |
| 一次让模型做太多事 | 又读名字、又读消息、又判断左右 | 局部错误被总分藏住 |
日志翻译
| 日志 | 真正意思 | 判断 |
|---|---|---|
active_chat=1.0 open=0.0s | 没点击列表,直接处理现在打开的聊天 | 放大条件 |
| 要发给“主屋/王坚” | 大模型猜的,不是服务器派发目标 | 错误结果 |
| 当前打开“全屋定制” | 标题模型读到的真实名字 | 正确 |
conf=0.95 | 整份答案自评 95 分,不等于名字 95 分 | 容易误导 |
side=left/right | 最新气泡来自客户/自己 | 与名字错误无关 |
DEFERRED | 销售还在操作,等 4 秒,不抢键盘 | 与名字错误无关 |
identity_mismatch | 两次名字不同,安全停止 | 保护成功 |
谁对谁错?
真实客户全屋定制-志翔没有选错。
有没有发错没有安全门拦住了。
真正责任点截图 + Prompt一个不给名字,一个逼着猜。
| 部件 | 结论 | 理由 |
|---|---|---|
| 微信当前窗口 | 正确 | 一直是全屋定制-志翔 |
| 回复服务 | 不是来源 | 没有派发主屋或王坚目标 |
| 聊天区裁剪 | 根本问题 | 把标题排除在图片外 |
| 综合视觉 Prompt | 根本问题 | 看不到标题仍必须返回标题 |
| active-chat 备用路 | 设计薄弱 | 没有列表名字作身份来源 |
| 身份安全门 | 工作正确 | 逐字不同就不发送 |
| 销售礼让门 | 工作正确 | 只负责不抢键盘 |
基于“销售机代回一键安装 v1.9.9”安装包静态分析 · 2026-09-01 · 未执行安装、未修改生产配置