我是不是程序员?这是一个困惑的问题:我喜欢编程,但没有以此谋生,这样我算不算程序员。
现在我这个老朽程序员发现网上的开源太多,做不过来,所以一旦有需求,我的第一想法就是:看看俺能不能实现?在AI的帮助下,成功地实现了wiki转excel;excel转wiki等有趣的课题。加上最近学习mern技术栈,AI的帮助都是巨大的。效率的提升有点恐怖,基本上现在我分析到可以用软件来实现的东西,我都想马上就做。
最近同事们在微信小程序里答题,有题库,前几位有奖品,于是大家拼手速,有同事建议用脚本,但这得自动化才行。以前网页版的时候这个方案是可行的:通过页面html代码识别,然后输入答案,一条龙服务,速度快。微信的桌面相对来说可以这样,但你无法自动截取文字(慢慢慢,这其实是我以前没有想到的!!!会不会可以自动截取文字?只是这个出题方很快就关闭了小程序答题的方式,后话后话),所以只能采用截图的模式,然后OCR识别,送到题库内查询,得到正确答案后点击,自动下一题...
AI搭建环境太快了,不到十分钟,一个可行的方式就做好了。还细心地想到给我一个要截屏的位置选择;还想在本机安装一个开源的OCR软件(没有成功),我提醒他可以采用阿里云的OCR识别接口。以前我比较担心接口的调试,动不动就需要1、2天的时间;现在告诉他就好了,返回什么的都做好了。
非常棒的就是,题库是excel格式的,我请他清除特殊字符后放到mongo中(我还不太会mongo),他采用MCP自动链接我的mongodb,然后开始不断输出,很快就将excel的数据放到mongodb中了。
解析文本,里面有问题和可选答案,我请他继续调整,争取能正确识别并查找答案。现实问题:没有免费的AI资源了,quato用完,返回403?充值后,调试一会儿,又报OCR免费资源用完...
耗费了大量时间和金钱后,他又继续开始工作。关键问题有两个:识别的正确性问题;点击问题。
先解决正确性问题,毕竟他是AI,我告诉他结构后,他还是只能顺序地处理,导致前面的问题识别大致正确,但可选答案因编号在左边,如果答案只有一行没有什么;多行的答案就会错误,我告诉他要怎样怎样:先识别前几行的问题;然后看问题的编号,将编号的坐标y相近的组合在一起,给出可选的答案。
当他再次没有正确识别的时候,我举例说明,测试一看不错啊,都正确的。放到环境里一测试,出现错误:原来他将我的举例硬编码入代码中,无论输入什么返回都是这个代码。我晕,我只好一点一点地读读python的代码(我发现python的代码很优美啊,读来与想法一致),尝试修改。他不断帮助我,还行,终于成功。(依然有bug,坐标x没有排序,会导致答案文本前后颠倒)
点击问题才是关键吗?我运行了代码,发现30题人工都已经到47秒了,这种模式需要70多秒。如何优化?以前的挺快,但多项选择会漏点击,所以我每次多项选择之间增加了0.5秒的时间,看起来像人一样操作了。但是:慢!!!
我把时间间隔缩小到0.3来测试看对不对,发现超级快,不到20秒就完成了30题,有点嘀咕,直觉不可能。一看反馈:OCR调用失败!
不玩了,总结总结:
1,AI已来,趋势无法更改。2,总算学了python。3,免费的午餐不多。