很难想象我完全在 ChatGPT 的协助下这么快速有效的建立自己的西语单词复习网站。从昨天晚上开始有这个想法,到今早最终部署上线,估计总共花了半天左右时间。大部分跟 ChatGPT 的交互都是通过 API 进行,整体花费为 16.23 美刀。
网站地址:西语背单词
想法起源
我在 Mac 和 iPhone 上都用的欧路词典(英语)+MDX 词典库来进行西语单词查询,但是在进行单词复习的时候,欧路词典总是会将西语单词辨识为英文,而且不能调用 MDX 词典库的解释和语音信息。 后来有尝试 Anki,虽然有插件可以同步欧路词典的单词库,但是欧路词典将西语辨识为英语的问题仍然仍然存在。
然后我就想不如自己搞一个,正好试试用 ChatGPT 编程。
确立需求
我很喜欢 Anki 这种模式,可以不断复习单词。所以对于这个网站的需求也很简单,参考实现了类 Anki 的功能
- 可以导入我自己的单词库
- 通过 ChatGPT 查询对应单词的常用解释以及例句
- 能记录自己对该单词的熟悉程度
最终实现的功能
- 有个 upload 页面,可以将词库文件上传导入到数据库。在导入时会判断是否重复。
- 有几个配置文件,包含数据库的配置以及 OpenAI 的 API 配置,不同文件分别调用。
随机从数据库单词库里提取一个单词,通过设定的 prompt 通过 API 从 ChatGPT 获取单词的解释以及例句,同时给例句提供英文翻译。- 将单词解释和例句都保存到数据库里。如果某个单词的数据已经存在,跟直接从数据库里提取
- 建立定时任务和调用程序,自动获取新词相关内容保存到数据库。
- 记录每个单词的复习次数,以及点击 Yes(熟悉)或者 No(不熟悉)的次数。
使用 ChatGPT 编程的感触
在思路确定后建站相对比较简单,重点就是跟 ChatGPT 的沟通交互。我用的是 ChatGPT 4-015-preview 这个模型,没有跟其他模型做过对比,不知道好坏,但单从结果上是非常好的。
在整个建站过程中,跟 ChatGPT 的沟通其实是有很多错误或者偏离的。我觉得如果再跟 ChatGPT 合作建站的话,整体效率会提升很多,费用估计能更低。
- 网站建设是个相对复杂的系统搭建,需要有完整的框架设定以及逻辑思考,而这是目前的 ChatGPT 是不具备的。所以,首先要自己想好整个前后台逻辑,需要什么功能,主要有几个页面以及之间的逻辑等等。否则 ChatGPT 大概率会将一个复杂功能的代码都写在一个页面上。
- 要尽可能提供详细的网站配置信息,譬如服务器配置以及 PHP、MySQL 的版本信息。否则在出现问题时会多几轮沟通才能找到真正问题。
- ChatGPT 可以很好的实现想要的功能,给出能运行的代码,但如果没有较好的 prompt 的话,代码里是可能会有逻辑判断遗漏的,需要不断的测试纠正。譬如,一开始 ChatGPT 提供的导入到数据库的功能是没有判别重复的问题,导致数据库里大量重复。
- 因为历史信息过多的原因,ChatGPT 的新回复有时会跟历史回复有差别或者冲突。要解决这种问题,就需要不断总结历史结论反馈给 ChatGPT,同时要避免整个线程里逻辑变动太多。如果有大变动,可以提醒 ChatGPT 遗忘或者忽略某段历史信息。