每到年底,行政和 HR 最头疼的不是写总结,而是搞年会抽奖。PPT 滚动太土、第三方 SaaS 抽成还怕数据泄露、找外包开发动辄几万。作为开发者,我决定自己写一个——不只是为了技术自嗨,而是要真正解决**“开箱即用、数据私有、AI 互动”**的刚需。于是,
ai_lottery诞生了。
🎯 传统方案的三大痛点
- 体验割裂:签到靠 Excel 打勾、抽奖靠 PPT 宏、兑奖靠人工核销,现场极易翻车。
- 隐私风险:员工名单、中奖记录、设备指纹上传第三方平台,合规隐患大。
- AI 落地难:市面所谓“AI 抽奖”多是包装,底层仍是
Math.random(),缺乏真实策略。
针对这些痛点,我重构了整套链路,交付了一个单文件可执行、全闭环、真 AI 融合的活动工具。
✨ 核心亮点:为什么它不一样?
💻 双击即用,零技术门槛
提供 Windows 单文件发行版(AI_Lottery_System.exe)。无需安装 Python、无需配虚拟环境、无需敲命令行。双击启动,内置 GUI 控制台一键打开「抽奖大屏 / 管理后台 / 签到页 / 兑奖页」。行政同事 5 分钟即可独立操作。
🔄 全生命周期业务闭环
Excel 导入名单 → 扫码签到(防重/防刷) → AI 策略抽奖 → WebSocket 实时推大屏 → 扫码核销兑奖 → 报表导出归档一个工具搞定所有环节,不再拼凑 PPT、小程序、第三方服务。
🤖 真 AI 融合,不止于随机
内置 ai_provider 抽象层,已适配 DeepSeek、智谱 GLM、通义千问、Kimi 等国产大模型。AI 不仅生成随机结果,更可:
- 动态生成主持串场词、未中奖安慰语、颁奖词
- 基于职级/工龄/历史中奖记录进行智能加权
- 实时校验签到设备指纹,生成防刷策略
🔒 数据绝对私有,合规无忧
SQLite 本地存储,无外网数据回传逻辑。活动结束后,关闭服务即停止运行,data/ 目录完整保留记录。支持一键清理敏感数据,完美契合企业数据安全与审计要求。
🏗️ 技术架构与工程实践
作为开发者,我更关注项目的可维护性、扩展性与代码规范。系统采用经典分层架构,兼顾性能与二开体验:
| 层级 | 技术选型 | 设计考量 |
|---|---|---|
| Web 框架 | FastAPI + Uvicorn | 异步高并发,自动生成交互式 OpenAPI 文档 |
| 数据存储 | SQLite + aiosqlite | 零依赖部署,单机轻松支撑 3000 人并发 |
| AI 适配层 | ai_provider.py |
统一 Prompt 模板与健康检查,无缝切换模型 |
| 实时通信 | WebSocket 连接池 | 毫秒级推送抽奖结果,告别轮询卡顿 |
| 前端渲染 | Jinja2 + 静态分离 | 服务端直出,保证大屏低延迟与弱网可用 |
| 路由设计 | 11 个独立 Router | 模块解耦(认证/人员/奖品/任务/AI/企业集成),职责清晰 |
代码结构遵循 Router → Manager → Provider 分层规范,无硬编码密钥,依赖明确。无论是 FastAPI 学习者,还是需要快速二开的团队,都能高效上手。
🚀 5 分钟上手指南
- 下载:前往 Release 页获取
AI_Lottery_System.exe(当前 v1.2.0) - 启动:双击运行 → 弹出 GUI 启动器(自动拉起 FastAPI 服务)
- 访问:浏览器打开
http://localhost:8080,默认账号admin / admin123 - 配置:导入 Excel 名单 → 设置奖品池 → 配置 AI API Key(可选)
- 投屏:连接局域网 WiFi → 投屏签到码 → 活动开始!
💡 避坑提示
- 首次运行 Windows 防火墙弹窗请点击允许访问网络
- 登录后务必修改默认密码
- 升级或迁移时,请完整备份同级
data/目录(含数据库与照片)
🌟 适用场景与推荐建议
| 使用角色 | 核心价值 |
|---|---|
| HR / 行政 | 图形化界面 + 图文手册,独立操作无压力,告别外包与 SaaS 抽成 |
| 开发者 | 代码规范、接口清晰、AI 模块可插拔,FastAPI 最佳实践参考 |
| 企业 IT | 数据不出内网、全链路可追溯、支持信创国产化模型,零采购成本 |
适合:503000 人规模的企业年会、部门团建、客户答谢会、展会互动。2 天用测试名单完整跑一遍流程;确保抽奖电脑与员工手机在同一局域网。
建议:活动前 1
📥 开源与共建
本项目已完整开源,并提供:
- ✅ Windows 单文件发行版
- ✅ 源码完整可编译
- ✅ 系统操作手册(HTML) + 部署文档(Markdown)
- ✅ 详细
requirements.txt与 PyInstaller 打包配置
🔗 仓库地址:[https://gitee.com/thomasblog/ai_lottery]
📦 Release 下载:[https://gitee.com/thomasblog/ai_lottery/releases/tag/v1.2.0]
欢迎 Star、Fork、提 Issue/PR。如果你有更好的 AI 抽奖策略、UI 优化或企业集成方案,期待一起共建。技术不应该只停留在代码里,更该解决真实的业务痛点。这个项目,就是答案。

Thomas3 年前
发表在:SQL Server2008报错:值不能为空[S35]
Thomas3 年前
发表在:解决Composer Installing dependencies from lock file你这都看不清了
1112021-03-15 23:30
发表在:Cetnos7 新手安装ZABBIX4.0.5详解教程有人嘛
Tyreunorm2020-08-27 22:51
发表在:php5.6 连接SQL SERVER<a href=https://mega...
耗子2020-04-08 15:02
发表在:写给正在创业的自己看到了,想写点。可能我开过这网站了,以后...
Thomas2019-11-19 19:57
发表在:twcms您的IP地址已改变,为了安全考虑,请重新登录这个好
酷喵2016-08-03 15:22
发表在:我家侄女成长记前排支持啦!
五爷2015-12-01 03:26
发表在:关于centos中的相关查看命令@admin:呵呵
admin2015-12-01 01:49
发表在:关于centos中的相关查看命令非常不错