AI Vision Recognition · 新一代对账流程

AI 识别技术引擎
一张图、一个短名,单就对上了。

告别繁琐的手打命令。商户只需把顾客的 receipt 扔进 Telegram 群,系统自动读出金额、时间、收款方, 智能匹配后台的 pending 单 —— 绝大多数情况下秒配成功,剩下的一键选择即可。

0
预计自动匹配率
0
单笔确认时间
0
receiver · 金额 · 时间
0
要打的命令
为什么要改 · 现在的问题

手打命令,太慢、太累、太容易出错

现行流程要求商户在 Telegram 群里敲 /match 发送人 金额 时间, 字段多、格式严,一个字符不对就"Transaction not found",高峰期尤其折磨。

⌨️
打字繁琐
每一单都要手打 3 个字段 —— 金额、时间、付款人名字,一不小心就写错。
格式严苛
时间要 24 小时制 HH:MM,名字要完整大写,多一个空格就命中不了。
高峰期排队
顾客同时付款,商户要在一堆 receipt 里对号入座,很难不错配。
🎓
新人上手难
新员工光学命令格式就要半小时,出了错还不知道哪里写错。
解决方式 · 我们的方案

把打字换成丢图,把命令换成按钮

商户的唯一动作:把顾客发来的 receipt 图片扔进 Telegram 群,顺手打个顾客的短名(可选)。 系统自己识别、自己匹配、自己确认。实在无法判断时,列 Top-5 候选让商户按一个数字就完事。

商户操作

商户要做的事

  • 1
    丢 receipt 图到群里的 Deposit Topic。
  • 2
    (可选)紧跟着打顾客的 短名,比如 "Ali"、"Ahmad"。
  • 3
    如果系统不能 100% 确定,它会列 1-5 候选,你只需按一个按钮。
  • 4
    完成 —— bot 自动回复已匹配哪笔单,佣金、回调、日报自动触发。
商户群 · 入款话题
3 位成员在线
📄 receipt.jpg
DK YONG TRADING · S$150 · 14:30
Ali
Matched TXN-25042-0001
Sender: MUHAMMAD ALI BAKAR (matched "Ali")
匹配逻辑 · 怎么识别到正确的单

系统只认 3 个字段,其余都是噪声

收款方(receiver)、金额(amount)、时间(time)—— 这三个在 receipt 上 100% 能看到。 用这三个缩小范围,再用商户打的 短名 做进一步辨别。根据候选数量的不同,有 4 种匹配场景:

场景 D · 自动

候选池只有 1 条

同收款方 + 同金额 + 同时间,只有这 1 张待匹配单。不用看短名,直接对上。

→ 自动匹配(唯一候选)
场景 A · 自动

候选多条,短名唯一命中

有 2-3 张同时同金额,但商户打的 "Ali" 只匹配其中一个付款人全名 MUHAMMAD ALI BAKAR → 命中。

→ 自动匹配(短名命中)
场景 B · 人工

多条候选,短名命中多个

"Ali" 同时命中两个付款人 —— 系统分不清,列 Top-5 让商户按按钮选。

→ 商户按 [1]~[5]
场景 C · 人工

多条候选,无短名提示

商户只丢了图没打短名 —— 同样按时间近远排 Top-5,按按钮选。

→ 商户按 [1]~[5]
评分规则 · Top-5 怎么排序

两个维度、40 分满分,简单透明

候选池已经用 收款方 + 金额 + 时间 ±5 分钟 过滤干净,评分只是在这些候选里再排优先级。 短名命中给 30 分上限,时间越接近给 10 分上限,合计 40 分。

① 短名命中分
上限 30
把商户 caption 里的短名(如 "Ali")和后台已记录的付款人全名做 token 比对。每命中一个 +10 分,最多 3 次叠加。
短名分 = min(命中数, 3) × 10

例: caption = "Ali" → 1 个 token
   sender = MUHAMMAD ALI BAKAR
   "ALI" ∈ sender tokens → 命中 1 次
   得分 = 10
② 时间接近分
上限 10
Receipt 上的时间和候选单的 receive_time 越接近,分越高。0 秒差满分,5 分钟处归零,线性衰减。
时间分 = max(0, 10 − |Δ秒| / 30)

例: receipt 14:30, 候选 14:28
   Δ = 120 秒
   得分 = 10 − 120/30 = 6
▣ 实战演算 · 5 个候选单的评分明细
商户丢图 + caption "Ali",系统筛出 5 条同金额、同收款方、时间相差 ≤ 5 分钟的候选单。 按下表评分后排序 → 最高分排在 1️⃣。
排名 付款人全名 时间 短名分 时间分 总分
1️⃣ MUHAMMAD ALI BAKAR 14:28 +10 +6 16
2️⃣ ALI HAMID BIN YUSOF 14:25 +10 +0 10
3️⃣ (未知付款人) 14:30 +0 +10 10
4️⃣ SITI NUR ALIYA 14:31 +0 +8 8
5️⃣ AHMAD HISHAM 14:32 +0 +6 6
※ 2️⃣ 和 3️⃣ 同分(都是 10),排序时优先带短名命中(短名分 > 时间分)—— 所以 ALI HAMID 排在 "未知付款人" 前面。
※ 短名命中唯一(只有 1 条候选拿到短名分)时,系统 直接 auto-match,不推按钮。本例 "Ali" 同时命中 2 条,所以才落到按按钮场景。
完整流程 · 一笔钱从头到尾

从顾客转账到订单确认,一气呵成

下图展示一笔钱从进入平台银行到商户上分的完整路径 —— 商户只出现在 ③ 和 ⑦ 两步,其余都由系统自动完成。

顾客转账 SGD 150 ──► 平台银行 App │ │ 秒级到账通知 ▼ Device Bot(手机监听通知)──► 后台自动写入 PENDING 单 sender = MUHAMMAD ALI BAKAR amount = 150.00 receiver = DK YONG TRADING time = 14:30 │ ┌───────────────────┘(等商户的 receipt 进群) │ 顾客把 receipt 发给商户 │ ▼ 商户在 Telegram 入款话题 丢图 + 打短名 "Ali" │ ▼ Bot ──► 智能识别引擎 ├─ 识别 receipt 上的: 收款方 / 金额 / 时间 └─ 解析短名: ["ALI"] │ ▼ 从待匹配池筛候选 条件: 同收款方 ✓ 同金额 ✓ 时间相差 ≤ 5 分钟 ✓ │ ┌───────┴───────┐ │ │ 唯一候选 多个候选 │ │ │ ┌────────┴────────┐ │ │ │ │ "Ali" 唯一命中 多条命中 / 无短名 │ │ │ ▼ ▼ ▼ ✅ 自动匹配 📋 Top-5 候选按钮 商户按 [1] [2] [3] [4] [5] │ ▼ 后台完成: · 单据状态:待匹配 → 已匹配 · 计算佣金 · 发商户日报(日报话题) · 回调商户系统:订单上分 ✅
Bot 交互详解 · 群里具体发生什么

商户丢图之后,Bot 分 4 步和你对话

场景 B(候选多条、需要商户按按钮)为例,完整展示 Telegram 群里 bot 的每一条消息、按钮、回复。 所有步骤都在同一条消息里滚动更新,不会把群洗乱。

1
STEP 1 · 商户丢图
发 receipt + 短名到入款话题
商户在群里的 入款话题 上传 receipt 图片,紧接着(或在 caption 里)打一个顾客的短名。
短名可选 —— 不打也能匹配,只是会多一次人工按按钮。
▸ @merchant_alice · 14:31
📄 IMG_20260424_1431.jpg
[receipt 图片]
Ali
2
STEP 2 · Bot 识别
即时回复"正在识别"
Bot 收到图后立刻下载、调识别引擎、抓取 收款方、金额、时间,并在同一话题下回复一条临时消息, 让商户知道"系统已经接手,别重复发了"。
▸ @GMPay_MatchBot · 14:31
🔎 收到 receipt,正在识别…
预计 3 秒内给出候选列表
3
STEP 3 · 列 Top-5 + 按钮
候选列表 + 内嵌数字按钮
Bot 编辑 上一条消息(不是新发一条),展示识别结果 + Top-5 候选单 + 5 个 inline 按钮。 商户不用打字,手指点一下 [1] ~ [5] 即可。
▸ @GMPay_MatchBot · 14:31 (edited)
📄 Receipt 识别结果
💰 金额: SGD 150.00
⏰ 时间: 14:30
🏦 收款方: DK YONG TRADING
🔎 提示短名: "Ali"
─────────────────
找到 5 条候选单(按评分排序):
1️⃣ MUHAMMAD ALI BAKAR · 14:28 · 16分 [短名+10 时间+6] ← "Ali"命中
2️⃣ ALI HAMID BIN YUSOF · 14:25 · 10分 [短名+10 时间+0] ← "Ali"命中
3️⃣ (未知付款人) · 14:30 · 10分 [短名+0 时间+10]
4️⃣ SITI NUR ALIYA · 14:31 · 8分 [短名+0 时间+8]
5️⃣ AHMAD HISHAM · 14:32 · 6分 [短名+0 时间+6]
─────────────────
请选择对应的单:
1
2
3
4
5
🚫 都不是
🗑 作废
※ 10 分钟内有效,过期自动失效
4
STEP 4 · 商户点按钮 + Bot 确认
按 [1] → Bot 更新消息 → 完成
商户点 [1],Bot 立刻接到回调,再次编辑同一条消息: 按钮变灰 / 消失,显示 ✅ 已匹配结果。后台同步触发:更新状态、结佣金、回调商户系统。
▸ @GMPay_MatchBot · 14:31 (edited)
已匹配成功
─────────────────
单号: TXN-25042-0001
金额: SGD 150.00
付款人: MUHAMMAD ALI BAKAR
商户操作人: @merchant_alice
匹配时间: 14:31:24
─────────────────
· 佣金已结算
· 订单回调已发送
· 日报已更新
[1] 已选
2
3
4
5
⚡ 快速路径(场景 A / D)
如果候选池只有 1 条,或者短名 "Ali" 只命中 1 条 —— Bot 会 跳过 STEP 3 的按钮步骤, 从 STEP 2 直接跳到 STEP 4 的 ✅ 已匹配消息。商户看到的只是:"丢图 → 系统识别 → 完成",秒级。
真实识别样本 · 原图 → 结构化数据

这是识别引擎的实测结果

下面 4 张是真实测试样本,涵盖 OCBC、POSB、Trust Bank、PayNow 等 4 种不同银行的 receipt 版式。 系统自动从每张图里抽出 收款方 / 金额 / 时间,绿色代表命中,红色代表没抓到(极少数情况)。

Receipt 1
样本 1 · OCBC
收款方
DK YONG TRADING
金额
SGD 200.00
时间
21 Apr 2026, 3:56 PM
✓ 3/3 字段命中
Receipt 2
样本 2 · UOB
收款方
DK YONG TRADING
金额
SGD 100.00
时间
21 Apr 2026, 01:24 PM
✓ 3/3 字段命中
Receipt 3
样本 3 · Trust Bank
收款方
BLOOM HAVEN
金额
SGD 14.00
时间
21 Apr 2026, 03:33 PM
✓ 3/3 字段命中
Receipt 4
样本 4 · MariBank PayNow
收款方
NWF TRADING
金额
SGD 10.00
时间
21 Apr 2026, 11:19
✓ 3/3 字段命中
8/8
收款方识别率 (100%)
8/8
时间识别率 (100%)
95%+
金额识别率 (≥95%)
95%+
三字段全命中 (≥95%)

※ 测试样本覆盖 OCBC、POSB、DBS、UOB、Trust Bank、MariBank、PayNow 等多家银行的 receipt 版式。 极少数漏抓金额的情况不会造成误匹配 —— 系统会自动走人工按钮路径,由商户确认后再入账。

上线计划 · 分期部署

分 4 阶段渐进部署,风险可控

不会一次性切换。每一期都有明确的"通过标准",上一期稳定才会推下一期。

P0 · 准备
准备期
搭建 OCR 引擎、后台数据结构、Telegram 交互模板。内部跑通 "丢图 → 识别 → 候选 → 按钮" 整条链路。
✓ 本地完整跑通一笔
P1 · 辅助
辅助模式
Bot 开始接收 receipt 图,列出 Top-5 按钮。所有单都要商户按按钮, 不做自动确认,收集错配案例。
✓ 种子商户试跑 1 周
P2 · 受控自动
受控自动
开放 "候选唯一" 和 "短名唯一命中" 的自动确认,其余仍按按钮。 持续监控错配率。
✓ 错配率 < 0.5%
P3 · 全量上线
主推模式
新流程成为默认,老的 /match 命令降级为兜底。界面、文档、培训全面切换到丢图匹配模式。
✓ 商户满意度调研达标
预期收益 · 数字对比

数字说话

~ 45 秒 / 单
≤ 15s
单笔确认平均时长
100% 手动命令
≤ 5%
需要人工介入的比例
打字错配频发
< 0.3%
事后投诉 / 错配率
下一步

准备好让对账不再是瓶颈了吗?

P0 随时可以启动。给我们一个星期看到原型跑通。

▶ 启动 P0 准备期