Skip to content

12306ics:自动获取购车信息,生成在线订阅日历

Updated: at 15:22

Table of contents

Open Table of contents

想法诞生

AI大模型已经井喷出了很多的基模型、框架、项目和工具,每天都有大量的新东西,子曰:学而时习之,不亦说乎?今天我就突然想试试,看AI能不能解决我之前的一个小想法。

以前用过一个GitHub项目,是把12306的购票邮件转换成在线日历,这样就可以自动在日历里显示车票出发时间、检票口等信息,使用过一段时间还是挺方便的,但是后来作者不维护了。而现在这个工具被我用GPT4再次创造了出来。

首先声明一点,我非程序员,不会写代码,技术层仅能看懂一些Docker指令。

该项目完全开源,大家可以到这里去看GPT4实现这个功能写了哪些代码:项目Github地址

过程

首先我确定一个大概的思路,将这个工具拆解成几部分实现

  1. 从邮件中获取到车票信息
  2. 将车票信息转换成ics文件
  3. ics文件可以在线访问
  4. 将整个项目生成docker镜像

首先我让GPT4先来一轮,Prompt如下

你是一个程序员,接下来要完成这样的一个任务,并编写相应的程序。

用户通过12306.cn网站订购车票,车票信息将发送到用户的邮箱中,实现自动登录邮箱获取车次信息,并格式化输出成json。

邮箱为[email protected],SMTP密码为abc
发件人为 [email protected]
这是一个订购车票成功的邮件范本

尊敬的 揭先生:

您好!

您于2024年01月04日在中国铁路客户服务中心网站(12306.cn) 成功购买了1张车票,票款共计73.00元,订单号码 E215161330 。 所购车票信息如下:

1.揭先生,2024年01月04日17:02开,杭州东站-上海虹桥站,G7192次列车,11车1B号,二等座,成人票,票价73.0元,检票口19A,电子客票。

请一步步思考如何实现该程序,并给出每一步的结果。

GPT4果然没让人失望,它给出了基本上算是80%的实现框架和代码,但是显而易见,对于不懂代码的我来说,运行肯定不会很顺利,错误接踵而至。我把每次运行的错误日志丢给GPT4,它能很好的给予解决办法,最终在大概互动了大概几十轮左右,完成了这个项目。

部分互动内容可以点这里查看:ChatGPT share

第二天我的ChatGPT订阅刚好到期,后来就用Coze GPT4来实现后续的代码,部分互动见下图:

gpt

成果

最终GPT4完成了代码的构建,我也将代码在NAS中部署成功,自测日历订阅地址有效。大家可以去Github自行部署体验。

gpt

项目Github地址

Docker部署说明

  1. 确保你的12306绑定的邮箱为QQ邮箱,其他邮箱请自行修改代码
  2. 修改main.py文件中的[email protected]password为自己的QQ邮箱账号,密码是smtp密码,非登录密码
  3. Clone本项目
  4. 采用docker进行部署

Build

docker build --no-cache -t ticket-extractor .

然后启动Docker

docker run -d -p 2306:2306 ticket-extractor

订阅ics

服务器ip:2306/download_ics

思考

  1. AI使人人都是程序员
  2. 如果人来做这件事情都需要思考,那么给AI最好不要期望一句话能让他解决

这次和GPT4的深入互动带给我的震撼,比过往看的各种AI新闻、demo视频来得都大,我认为老黄说的AI使人人都是程序员并不是瞎说。GPT4让我这样一个不会写代码的人,通过AI创造了工具,解决自己的问题,这个问题可能很小众,没人去关注,现在有了AI,每个人都可以使用AI来满足自己的需求。

但是,前期我自己有一个较为清晰的框架,这个框架也是让这次项目能成功的基础,这对很多人来说可能也是有不小的难度。所以目前,我认为AI能帮助一部分人员大幅提升效率,如果一个需求你无法一句话说清楚,你就要考虑先建立一个框架,分步骤实现。

有了这次经验,接下来我有个更大胆的想法准备让GPT4尝试。