年会中的抽奖环节不可或缺,但每年为了选择合适的抽奖小程序,团队往往需要投入大量时间和精力。然而,抽奖结束后,参与者通常只记得自己是否中奖,其他细节多被遗忘。在 AI 技术日益成熟的今天,如何打造一个既高效又有技术含量的抽奖应用呢?今天,就让我们跟随通义灵码,仅用 5 分钟现场手撕一个抽奖应用吧!

第一步

准备好工具和文件

1)下载安装 IDE 工具和 AI 编码插件

在电脑上下载安装一个本地 IDE,参考通义灵码下载安装链接 [ 1] ,下载安装后在侧边导航上点击扩展
,搜索通义灵码(TONGYI Lingma)安装插件。重启 IDE 成功后登录阿里云账号,就可以开始 AI 编码啦。

2)创建一个代码文件,命名为“lingma\_reward”,并把抽奖页面封面图命名为“底图.jpg”放进文件中,如果要自己设计图片素材,请确保图片尺寸:1400x800,图片命名为“底图.jpg”。

第二步

给通义灵码提需求

打开通义灵码问答对话框,输入你的抽奖应用需求 prompt:

请帮我用Python创建一个图形化抽奖系统,具体要求如下:

  1. 技术要求:
  2. 使用tkinter构建GUI界面
  3. 使用PIL库处理背景图片
  4. 程序需要面向对象设计,创建LotterySystem类
  5. 界面布局:
  6. 窗口大小:1400x800
  7. 支持背景图片(命名为"lingma\_reward/底图.jpg")
  8. 主体内容区域居中,大小为“550x450”,并禁止自动调整大小。bg设置为<250,250,250>。
  9. 按钮背景设置需从图片中读取,按钮上的字体颜色设置为黑色加粗
  10. 核心功能模块:
  11. 参与者初始化功能:
  12. 输入框用于设置总人数
  13. 基于关键词生成参与者名单
  14. 关键词包括:推理、部署、应用开发、AI基础设施、百炼、PAI、软硬协同、AI势能、开源自建、API调用;
  15. 抽奖编号(请务必注意):上述关键词共10组,每组包含30个,因此共计300个抽奖名额。但是现场人数可能没有300人,请根据设置的总人数进行配置,输入大概人数,程序自动进行抽奖池编号生成。例如,输入10人,抽奖池里只有[推理1,推理2,...推理10];输入70人,抽奖池里包括[推理1-30,部署1-30,应用开发1-10]。因此,需要根据我输入的大概人数设置抽奖编号池。
  16. 抽奖功能:
  17. 开始抽奖按钮(大小为80x40,抽奖按钮居中使用黑色加粗字体显示“开始抽奖”)
  18. 停止抽奖按钮(大小为80x40,抽奖按钮居中使用黑色加粗字体显示“停止抽奖”)
  19. 动态展示抽奖过程(随机滚动效果)
  20. 显示当前抽中者(一次性抽取3人)
  21. 记录并展示历史获奖者(大小为800x100)
  22. 界面元素细节:
  23. 标题:通义灵码抽奖系统
  24. 字体要求:主要使用Arial字体
  25. 按钮样式:灰色背景
  26. 显示区域要求:
  27. 大号字体显示抽奖结果
  28. 历史记录使用文本框展示
  29. 交互逻辑:
  30. 必须先初始化参与者才能开始抽奖
  31. 抽奖过程中开始按钮禁用,停止按钮启用
  32. 停止后自动记录获奖者并从参与者名单中删除
  33. 包含适当的错误处理和提示信息

请一次性生成完整的Python代码,确保程序运行流畅,不要引用没有定义的函数或变量,保持界面美观,并包含必要的注释说明。

第三步

通义灵码生成抽奖代码

生成完代码后,点击代码的右上角“新建文件”命名为“game2.py”

第四步

本地运行应用代码

点击运行代码按钮,如下图:

查看生成的页面,输入要参与抽奖人数等信息,开始测试下抽奖程序吧!

备注: 如果生成的代码在本地运行时候报错,估计是相关依赖和环境缺失导致,可以把报错信息发给通义灵码,让灵码告诉你如何处理。

第五步

如果要将这个抽奖程序变成一个长期复用的抽奖应用,你可以选择部署到阿里云 SAE

1.为了便于抽奖程序部署到阿里云 SAE ,我们需要对 prompt 进行一些微调,只需替换第一条即可,其他的复用上文,替换内容如下:

1.技术要求:

  • 必须使用 Flask 框架和Werkzeug构建一个完整的Web服务,确保该服务能够支持公网的HTTP访问。
  • 在项目根目录下生成一个名为 requirements.txt 的文件,列出所有项目依赖的Python包及其版本。
  • 除了requirements.txt 文件以外,所有项目文件都必须放到根目录下的 app 目录下
  • 严格按照如下目录结构:

app/

├── app.py

├── static/

│ └── images/

│ └── 底图.jpg

├── templates/

│ └── index.html

requirements.txt

  • 程序需要面向对象设计,创建LotterySystem类

2.按照 SAE 的标准进行打包,这次我们已经在 prompt 里添加了相应的要求,所以通义灵码给出的目录结构已经是正确的了。(参考:SAE 打包说明 [ 2]

  1. 接下来进入部署环节,首先进入 SAE 控制台 [ 3] ,如果是新客则按照提示开通即可。开通后进入应用列表,选择创建应用

  1. 填写基本信息,并选择设置代码包部署

  1. 选择 python 语言,并上传 ZIP 包

  1. 确定后,点击下一步:高级设置

  1. 按照通义灵码给的提示配置启动命令,然后点击创建应用

  1. 稍作等待,等执行提示消失,则说明完成部署

  1. 最后,给应用配置公网访问地址,点击添加公网 CLB 访问

  1. 选择按使用量计费,并填写 HTTP 端口和容器端口,点击确定,如下

  1. 稍作等待,出现 IP 地址则说明已完成添加

  1. 将 IP 地址复制到浏览器,就可以访问抽奖程序啦

相关链接:

[1] 下载安装链接

https://tongyi.aliyun.com/lingma/download

[2] SAE 打包说明

<https://help.aliyun.com/zh/sae/serverless-app-engine-upgrade/...

[3] SAE> 控制台

https://saenext.console.aliyun.com/


阿里云云原生
1k 声望302 粉丝