V2EX 前天 16:13
用AI技术解放彩票验奖双手
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了一个利用微信小程序和腾讯云开发技术实现的彩票验奖工具。该工具的核心亮点在于结合了腾讯云OCR和智谱AI的LLM能力,能够自动识别彩票上的号码、期号等信息,并与开奖数据进行比对,快速计算奖金。同时,它还支持订阅开奖通知、管理彩票历史记录,并能适配多种彩票玩法。文章详细阐述了OCR+LLM的组合方案、云托管与数据模型设计,以及订阅通知的实现细节,并分享了图片压缩、OCR成本控制等优化经验,展现了Serverless架构对个人开发者的便利性。

🎫 **拍照即验奖,AI智能识别与解析**:该小程序利用腾讯云OCR技术识别彩票图片上的文字信息,并通过智谱AI的LLM(大语言模型)进行结构化解析,自动识别彩票类型、投注号码、期号等关键信息,解决了传统OCR识别在面对多样化彩票样式时遇到的定位和解析难题,大幅提升了验奖的准确性和效率。

☁️ **Serverless架构,云开发简化运维**:项目后端采用腾讯云开发的CloudBase(云开发)服务,包括云托管(Cloud Run)和NoSQL数据库。这种Serverless架构省去了服务器部署、域名备案、数据库运维等繁琐工作,让开发者能更专注于业务逻辑的实现,尤其适合个人开发者快速构建和迭代应用。

🔔 **订阅通知与票夹管理,提升用户体验**:为方便用户,小程序提供了未开奖彩票的订阅通知功能,一旦开奖即自动推送验奖结果。同时,自动保存验奖历史记录形成“票夹”,支持按状态筛选,让用户可以便捷地管理自己的彩票信息,无需手动记录或反复核对。

💡 **技术创新与优化,降低成本并提升性能**:在实际开发中,针对图片上传过大问题,前端实现了图片压缩优化;为控制OCR识别成本,引入了前端裁剪和识别结果缓存机制。这些优化措施有效降低了运营成本,并提升了用户体验,展现了技术在解决实际问题中的价值。

背景

之前帮家人买过几次彩票,验奖时发现体验挺麻烦的:要么去投注站扫描,要么手动一个个核对号码。作为程序员当然想到能不能写个工具解决,于是就有了这个小程序项目。

技术选型上选择了微信小程序 + 腾讯云开发(CloudBase),主要是看中了云开发的 Serverless 架构,省去了运维的麻烦,可以专注在业务逻辑上。

核心技术实现

1. OCR 识别 + LLM 解析的组合方案

最开始的想法是直接用 OCR 识别彩票上的号码,但实际遇到了几个问题:

后来采用了 OCR + LLM 结构化提取 的方案:

// 1. 先用腾讯云 OCR 识别文字const ocrResult = await customOCRService.detectFromDataURL(imageData);// 2. 将 OCR 结果交给智谱 AI 的 LLM 进行结构化解析const lotteryInfo = await parseLotteryByZhipuLLM(ocrResult.ocr_result);// 3. 获取开奖数据进行比对const issue = await getIssue(app, lotteryType, lotteryInfo.issue);const calcRes = await calculateWinning(lotteryInfo, issue);

LLM 的好处是可以理解上下文,自动识别出"这是双色球"、"这些是红球号码"、"这是蓝球",准确率比纯规则匹配高很多。

2. 云托管 + 数据模型设计

后端采用云托管(Cloud Run)部署 Express 服务,配合 CloudBase SDK 操作数据库:

// 使用数据模型而不是直接操作 databaseconst models = cloudBaseClient.getModels();await models.tickets.create({  data: {    lottery_type,    issue,    numbers,    status: isOpened ? 'winning' : 'undrawn',    _openid: openId  // 安全隔离,每个用户只能查看自己的数据  }});

这样做的好处:

3. 订阅通知的实现

未开奖的彩票可以订阅开奖通知,技术上用的是微信小程序订阅消息能力:

// 前端申请订阅权限wx.requestSubscribeMessage({  tmplIds: ['xxx'],  success: (res) => {    // 调用后端接口记录订阅    callCloudApi('/api/message/subscribe', { ticketId, issue })  }})// 后端定时任务检查开奖// 当检测到新期开奖时,批量推送消息给订阅用户

一些坑和优化

1. 图片压缩问题

最初直接上传原图,有些用户拍照动辄 5-8MB,上传慢还占存储。后来加了前端压缩,限制宽度 1200px,质量 0.8,效果不错。

2. OCR 成本控制

腾讯云 OCR 按次计费,为了省钱做了些优化:

功能亮点

技术栈总结

一些思考

这个项目让我对 OCR + LLM 结合 有了新的认识。传统做法是 OCR 识别后用正则或规则提取信息,但面对非标准化的场景(比如各种彩票样式),维护成本很高。引入 LLM 做结构化提取后,准确率和鲁棒性都提升了不少,而且几乎不需要针对新样式单独写规则。

另外云开发这种 Serverless 模式确实适合个人开发者,不用操心服务器、域名备案、数据库运维这些琐事,专注写业务逻辑就行。


小程序搜索"彩运多"可以体验,欢迎交流技术实现细节。

项目还在持续优化中,后续计划:


Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

彩票验奖 微信小程序 腾讯云开发 OCR LLM Serverless AI Lottery Checker WeChat Mini Program Tencent Cloud Development AI LLM
相关文章