V2EX 前天 15:19
用AI技术简化彩票验奖流程
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了一个利用微信小程序和腾讯云开发技术实现的彩票验奖工具。该工具巧妙地结合了OCR识别和大型语言模型(LLM)的解析能力,解决了彩票样式多样、信息提取困难的问题。通过拍照上传彩票,用户可以快速获得验奖结果,并支持订阅开奖通知和管理购彩历史。技术上采用了Serverless架构,降低了运维成本,并对图片压缩、OCR成本控制等方面进行了优化。该项目展现了OCR与LLM结合在非标准化场景下的强大应用潜力,为个人开发者提供了一种高效的开发模式。

💡 **AI驱动的验奖体验:** 该工具利用腾讯云OCR技术识别彩票上的文字信息,并借助智谱AI的LLM进行结构化解析,能够智能识别彩票类型、投注号码、期号等关键信息,解决了彩票样式繁多、人工核对费时费力的痛点,实现了拍照即验奖的便捷体验。

☁️ **Serverless架构与技术选型:** 项目后端采用腾讯云开发的Serverless架构,包括云托管(Cloud Run)和CloudBase SDK,省去了服务器运维的麻烦,使得开发者能更专注于业务逻辑的实现。数据模型设计自动处理权限隔离,并提供统一的数据访问接口,提高了开发效率和代码可维护性。

🔔 **智能通知与票夹管理:** 用户可以为未开奖的彩票订阅开奖通知,一旦开奖,系统会自动推送验奖结果。同时,验奖历史会被自动保存并整理成票夹,支持按状态筛选,方便用户回顾和管理购彩记录。

🚀 **技术优化与未来展望:** 为提升用户体验和控制成本,项目进行了前端图片压缩、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 Checking WeChat Mini Program Tencent Cloud Development OCR LLM Serverless AI Application
相关文章