技术博客
客服/审核后台赋能:一键识别用户上传图片中的文字

客服/审核后台赋能:一键识别用户上传图片中的文字

作者: 万维易源
2026-09-01
印刷体OCR客服审核后台集成
# 客服/审核后台赋能:一键识别用户上传图片中的文字 > 接口 926(接入点 926-1) · 免费 · POST/GET · JSON · 适用人群:客服/审核/后台系统开发者 · 阅读时间:约 6 分钟 ## 核心要点 - 把识别嵌进后台:用户上传图片 → 转 base64 → 调接口 → 自动填充/标红,省去人工逐字看。 - 用 `confidence` 做低置信度标记,让人工只复核「不确定的行」,而非全部。 - 免费接口、接入成本低,适合作为客服/审核流程的辅助提取层。 ## Why:让客服从「看图打字」中解放 客服经常要处理用户发来的截图、凭证、单据——过去靠人眼读图、手敲文字,慢且易错。把印刷体OCR识别接到后台,用户一上传,文字自动提取出来,客服一眼就能核对,低置信度的再标红提醒。这是性价比很高的小改造。 ## What:接入点速览 | 项目 | 说明 | |------|------| | 接口 | 926-1 印刷体图片文字识别 | | 入参 | `img_base64`(前端上传图转码)或 `img_url` | | 出参 | `str`(整段)/ `list`(逐行+坐标+置信度) | | 成本 | 免费(按档次限流) | ## How:后台一键识别(Python + Flask 示例) ```python import base64, requests from flask import Flask, request, jsonify app = Flask(__name__) ENDPOINT = "https://route.showapi.com/926-1" @app.route("/ocr", methods=["POST"]) def ocr(): # 前端传 base64(去掉 data: 前缀) raw = request.json.get("img_base64", "") b64 = raw.split(",", 1)[-1] if "," in raw else raw r = requests.post(ENDPOINT, params={"appKey": "YOUR_APPKEY"}, data={"img_base64": b64, "need_all_region": "1"}, timeout=10) rb = r.json()["showapi_res_body"] if rb["ret_code"] != 0: return jsonify({"ok": False, "msg": rb.get("remark")}), 422 items = rb.get("list") or [{"text": rb.get("str", ""), "confidence": 1.0}] # 低置信度标记(阈值自定) for it in items: it["need_review"] = it.get("confidence", 1) < 0.8 return jsonify({"ok": True, "items": items}) ``` **Node.js(Express)** ```javascript import express from "express"; import fetch from "node-fetch"; const app = express(); app.use(express.json()); app.post("/ocr", async (req, res) => { const raw = req.body.img_base64 || ""; const b64 = raw.includes(",") ? raw.split(",")[1] : raw; const r = await fetch("https://route.showapi.com/926-1?appKey=YOUR_APPKEY", { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ img_base64: b64, need_all_region: "1" }), }); const rb = (await r.json()).showapi_res_body; if (rb.ret_code !== 0) return res.status(422).json({ ok: false, msg: rb.remark }); const items = rb.list || [{ text: rb.str, confidence: 1 }]; items.forEach((it) => (it.need_review = (it.confidence ?? 1) < 0.8)); res.json({ ok: true, items }); }); app.listen(3000); ``` **前端直传(无后端 Demo)**:见《浏览器端实战:HTML+JS 调用》。 ## 返回示例与解析 成功 `ret_code=0`,`list` 每项带 `confidence`;用阈值(如 0.8)标 `need_review`,前端对 `need_review=true` 的行标黄。 ## 应用模式 | 场景 | 用法 | |------|------| | 客服核对凭证 | 用户传图→自动提取文字→客服对照,低置信度行高亮 | | 审核辅助 | 批量上传→逐张识别→结果进审核队列,异常(70/空)自动标红 | | 工单自动填充 | 识别结果回填表单字段,减少人工录入 | ## 进阶 / 边界 - **只作辅助,不作裁决**:OCR 结果尤其手写/模糊场景可能错,关键字段(金额、账号)必须人审。 - **隐私合规**:用户上传的证件/票据含个人信息,传输与存储需加密、按需脱敏、定期清理。 - **限流适配**:客服高峰并发可能触顶,参考《10 并发与档位优化》做队列削峰。 ## FAQ **Q1:用户发的是手写单据能直接用吗?** A1:仅工整楷书部分可识别且不稳定,建议对低置信度行强制人工复核,不自动采信。 **Q2:识别结果能直接入库当最终数据吗?** A2:不建议。OCR 是「提取建议」,尤其金额/编号类关键字段应经人审或二次校验。 **Q3:前端直接调接口安全吗?** A3:AppKey 会暴露在前端,仅适合内部工具/演示;对外产品应由后端代理调用(见上方示例)。 **Q4:大量并发上传会限流吗?** A4:会,并发上限 10;用后端队列+并发池(≤8)削峰,详见限流优化篇。 ## 相关能力 / 下一步阅读 - [浏览器端实战:HTML+JS 调用印刷体OCR识别(含本地图片预览)](https://www.showapi.com/guides/printed-ocr-web-demo-926) - [免费接口也限流:印刷体OCR识别的 10 并发与档位优化指南](https://www.showapi.com/guides/printed-ocr-limit-cost-926) - [印刷体OCR识别:用 need_all_region 获取每行文字坐标与置信度](https://www.showapi.com/guides/printed-ocr-coordinates-926) - **本系列共 12 篇**:查看[印刷体OCR识别指南总目录](https://www.showapi.com/guides/printed-ocr-guides-926)