码上生活

我的AI第一桶金

本文不含任何AI投资赚钱的建议。本文只是讲诉了我的一件趣事,以及简单的技术复盘。

公众号以及这个博客网站成立八年多了,我也停更四年多了…

我突然心血来潮想写点东西。希望这次能多写一段时间吧。

阅读全文预计约10分钟

知识:★

杂谈:★★★

其实我有一个更加戏剧化的文章标题:

《几十行代码狂赚1300美金!AI让我赚翻了!》

虽然某种程度上,这个标题确实符合客观事实,也会增加文章的点击量,但这样的标题还是用在吸睛的短视频上吧。我希望本公众号的内容保持克制,以分享为主,于是便取了现在这个较为古板的标题。

我的AI第一桶金不是一个正经的AI项目,甚至于有些“投机取巧”:


故 事 背 景

Robinhood是美国的一家金融服务公司,其为广大用户提供便捷的股票/期权/加密货币买卖的服务(和富途牛牛比较相似)。

该公司在3月5号和6号美东时间4:45PM举办了两场直播知识问答游戏(Robinhood Trivia)。所有用户可以在指定时间通过手机APP参与直播答题。用户需连续回答12道和金融相关的问题,每道题只有10秒钟的答题时间,答错一道即淘汰出局。最终连续答对12道的用户平分价值100万美元的比特币。

Rohinhood Trivia 问答游戏

你可能会觉得这个玩法“似曾相识”。没错,国内2018年初诞生“冲顶大会”,“百万英雄”这样的直播答题游戏,不过后来逐渐消身匿迹了。

此玩法可追溯到2017年美国爆火的“HQ Trivia”问答APP。而HQ Trivia初代游戏主持人史考特则被邀请成为本次Robinhood Trivia问答的主持人。主办方Robinhood就是为了借着直播问答的热度造势,希望能吸引更多用户使用Robinhood的产品。

直播答题APP,最右为HQ Trivia

然而3月5号第一次参与这个活动的我对答题活动全然不知,我甚至连Trivia(名词,冷知识)这个词是啥意思都不知道。直到活动开始后跳出主持人,我才意识到这是一个答题游戏。

问题的内容和金融、股票、加密货币等领域相关。第一天由于没有任何准备,我在运气的加持下,连蒙带猜才勉强坚持到第7题。距离连续答对12题有不少的距离。最初近40万的参与者最终只有600多人坚持到了最后,每人平分了价值$1626.01的比特币。当天活动结束后,主持人宣布第二天还会有同样的活动,同样是平分价值100万美元的比特币。

Rohinhood Trivia 问答游戏

事后,我对这天的答题进行了复盘:12题我有4道题完全不知道答案。单靠自己的知识储备是很难全答上来的。每道题只有10秒的答题时间,这个时间内读完题目和所有选项就已经很吃紧了,更不要说去网上搜索了。

这时,我突然冒出了一个想法:也许AI可以解决这个问题


实 践

当天晚上,我用2个小时走通了整个AI答题的流程:

  1. 将手机画面实时投屏到电脑上
  2. 电脑截取手机下半屏幕的图像
  3. 对截取的图片进行文字提取(OCR)
  4. 将提取到的文字和预写好的提示词(Prompt)发送给ChatGPT 4o API,并获取返回结果。(前四步流程耗时约1至2秒)
  5. 如果API返回的结果为不知道,则需要将提取到的文字发送到网页版ChatGPT。网页版整合了查阅互联网的功能,能结合近期新闻给出正确答案。(耗时5秒左右)

有了大体思路后,我将需求发送给Claude AI,让其为我推荐相应的投屏软件、OCR软件以及整个流程的python代码。

Claude按照我的需求生成代码

我将Claude AI给出的代码按照自己的需求进一步进行修改,并自定义了提示词(Prompt)。代码我已上传至Github:

github.com/DrMofu/MLab_wechat/tree/main/weChat194_robinhood

这个项目我按照自己的理解,采用了一些小技巧。事后实战证明这些技巧确实起到了作用。若是没有采用,我大概率无法成功答对所有题目。我将在下一节“复盘”中简述我用到的技巧。

整个项目的界面如下图所示:屏幕左侧为手机投屏、右上角为截屏提取文字并询问ChatGPT 4o的代码(1秒到2秒即可获取结果)、若ChatGPT 4o回答不知道,我则将问题立马粘贴到网页版ChatGPT中,并等待结果(等待时间约5秒)。

实战界面示意图

3月6号,我采用了这套方案。12道题目中,至少4道问题是询问2024年末或者2025年初的股票/市场行情。这个时候,调用的ChatGPT 4o API由于没有相关的训练数据,无法答出,只能按照我提示词的要求,告诉我“不知道”。而网页版ChatGPT整合了联网搜索功能,在思索5秒左右能给出正确答案。每道题只有10秒的回答时间,时间十分的紧张。整个答题过程中我有2次在倒计时已经显示为“0”的时刻选上正确答案。尤其是在回答最后几道题的时候,我感觉自己的手都紧张到发抖。

最终我有惊无险地答对了全部12道题目,并最终成为近20万参赛选手中的754名赢家之一,获得了价值$1326.25的比特币。

最终获奖界面

复 盘

事后复盘活动第二天的答题经过,我发现我的项目准备中有三个地方起到了关键的作用。

  1. 使用数据测试自己项目。
  2. 合理设计提示词。
  3. 准备备用方案。

数据测试

首先是用数据测试自己的项目。我从美国的社交媒体上找到了其他用户上传的活动第一天的答题界面截图。我利用这些图片来测试并调试我算法中的图片截取的位置和文字提取功能。

社交媒体上寻找用于测试的数据

也正是在这个测试中,我发现单纯的调用ChatGPT 4o模型的API效果并不好。因为这个模型无法联网,无法获取最新的信息。当我问模型下面问题时:

按照交易规模,2024年美国最大的IPO是下面哪家公司:Lineage,Viking Holdings还是Reddit?

正确答案是Lineage,但模型很多时候会回答Reddit。也正是这个测试让我意识到想要在第二天的活动中正确答对所有题目,还需要额外做一些工作。

提示词设计

从手机画面中提取出文字后,我并不是直接将文字送给ChatGPT 4o API,而是在文字前面加了一大段提示词。

这段提示词可以明确地告诉模型你的诉求是什么。不同的提示词,获得的结果往往不一样。

图中密密麻麻的文字为我设计的提示词

提示词的中文大意如下:

你是一位在金融领域拥有丰富经验的大师,精通股票市场、加密货币和全球金融的各个方面。
我将提供一个问题以及一些可能的答案选项。该文本是通过 OCR 从图像中提取的,因此请忽略任何乱码字符,或者对内容做出合理的推断。
请直接回答我的问题,不要提供解释。如果提供的选项都不正确,请直接给出正确答案,不要解释。
请注意:如果你不知道答案,只需回答“我不知道”,不要猜测,并提供一些可以用来在 Google 上搜索答案的关键词。 这一点非常重要!
如果你不知道答案但随意猜测,你将损失 100 万美元。但如果你回答“我不知道”,你不会损失任何钱。
让我们开始吧:

<后面接图片中提取出的文字>

这里用到了提示词中的一些技巧。这些技巧看起来可能很好笑,但确实有用

首先是角色扮演:我让大模型扮演一名金融专家。让模型扮演一名相关领域的大师,往往有奇效。

然后是详细的问题描述:我明确指出了问题的格式、内容可能存在乱码、不需要解释(以节省生成内容的时间)、遇到拿不准的内容要回答“不知道”。

最可笑但确实有用的是“损失警告”:“如果你不知道答案但随意猜测,你将损失 100 万美元”我相信很多人看到这句话,会觉得这十分愚蠢。但事实上,这句话真的有作用!还是以下面这个问题为例:

按照交易规模,2024年美国最大的IPO是下面哪家公司:Lineage,Viking Holdings还是Reddit?

我将不包含损失警告的提示词加上问题发给ChatGPT 4o API,并连续运行多次,模型有时候返回不知道,有时候返回Reddit(而正确答案是Lineage)。当我加上“如果随意猜测,你将损失100万美元”这句话时,连续运行多次,模型持续告诉我“不知道”。这在很大程度上避免了模型胡乱给出答案

ChatGPT模型是以英文训练为主,其他语言训练为辅的模型。根据我个人的体验,ChatGPT在回答英文问题上比回答其他语言的准确性更高些。所以我用中文写了提示词后,将其翻译成英文,在后面加上从手机画面中提取出的文字,一同发送给ChatGPT 4o API。同样的问题我会连续问模型5次,从模型回答5次的内容是否一致来间接判断模型对答案是否有把握。

准备备用方案

当遇到ChatGPT 4o API回答“不知道”的问题时,就需要用到备用方案了。

我在从手机屏幕中进行OCR文字识别的时候,识别出的文字和预先写好的提示词会被复制到剪贴板中。这样,我可以直接使用Ctrl+V将我的问题发送给网页版ChatGPT。网页版ChatGPT内置联网功能,如果模型不知道答案的话,其会自动上网搜索相关内容,并给出答案。缺点则是需要消耗额外的时间。如果联网搜索问题的话,大约需要5秒左右才能给出答案(而答题活动每道题只有10秒的时间),考虑到截屏、文字提取、将内容粘贴到网页版ChatGPT聊天框这些步骤,时间较为紧张。

因此,我会先调用没有联网功能的ChatGPT 4o模型,再调用此备用方案。

以上便是我这次答题活动的经历和经验分享。这笔奖金确实赚得有点“投机取巧”,但是我将我的代码和思路完全开源了。能者自取。

项目代码:

github.com/DrMofu/MLab_wechat/tree/main/weChat194_robinhood


写 在 后 面

我停更公众号已经四年多了。这四年间,不管是世界,还是我的生活,都有很大的变化。公众号创立之初,我还是拉上大学的小伙伴一起更新文章,到现在大家都已经步入社会多年。四年前,计算机视觉才是最有商业化前景的领域,商汤和旷世是国内AI领域最有名的两家公司。现在自然语言处理、大语言模型反而成了兵家必争之地……

原本本文还洋洋洒洒写了些我对当今AI领域的看法以及程序员如何在AI浪潮做好准备。但一是本文内容已经挺长的了,二是我自己也就是一个普通程序员,我在这里也只能是门外汉瞎说。这些胡诌的内容就放到以后的文章再说吧。

重新登陆公众号的时候,我惊讶地发现有70多条私信,但是点开之后,内容全部过期失效看不了了。若未回复私信,尽请谅解。

发表回复