《AI前沿专题014_实战:用ChatGPT-4体验编程.docx》由会员分享,可在线阅读,更多相关《AI前沿专题014_实战:用ChatGPT-4体验编程.docx(18页珍藏版)》请在第一文库网上搜索。
1、AI前沿专题014_实战:用ChatGPT-4体验编程GPT-4是个威力无比强大的AI,但是绝大多数人根本没有让它充分发挥。把ChatGPT当做一个聊天机器人随便玩玩,既对不起你自己的时间和金钱,也对不起GPT。如果你家有个机器猫,你会只跟它玩脑筋急转弯吗?GPT不是一个聊天工具,而是一个!生成性AE生成性的意思是它会创造内容。它能发挥到什么程度,不是取决于它,而是取决于你。能把GPT用到飞起,可能会是你平生最重要的几项技能之一。我们这个A1专题会全面探讨GPT各项应用的技巧。我也是一边学一边演练,一边演练一边讲这一讲咱们探索一下GPT最厉害的一项功夫,编程。这是OPenA1的独门功夫,现在好
2、几个大公司都推出了自家的大语言模型,有的参数比GPT多,但是会编程的,大概只有GPT一个。我搞的这个小项目是制作一个成语连线游戏。我选择的程序语言是Pythorb但我已经很久没用PythOn写过程序了,这一次干脆假装一点都不会,从0基础开始。这次真正的程序员不是我,而是Cha1GPT界面下的GPT-4模型。整个过程我俩都是用中文交流。我们首先需要验证GPT确实有我想要的东西。我先让Cha1GPT随机列举了10个成语,并且提供它们的解释。它做得很好一一随机列举10个中文成语或者固定短语,提供它们的解释以下是随机列举的10个中文成语及其解释:1 .井底之蛙(jTngdizhiw):形容见识短浅,像
3、蛙子只能看到井底的一小片天空。解释:指眼光狭隘,见识有限的人。2 .五体投地(WUtit6udi):形容对某人非常尊敬,如同五个身体都投向地面一般。解释:表示对某人的崇敬和尊重。3 .不务正业(bCjwUzh4ngy:指不专心从事本职工作,而去做一些无关紧要的事情。解释:忽视自己的正当职业,做其他无益的事情。4 .一石二鸟(yiShierniao):指用一颗石头同时打中两只鸟,比喻用一种方那么我就开始直接提需求了,我说:“写一个PythOn程序,把这些成语和它们的解释分开,分别列表,打乱顺序,在一张A4纸上分两列列出,形成一个连线题”。你看我说的比较笼统。我并没有告诉它怎么做,我没有设计详细算
4、法。我只是提了一个需求。事实证明这种小需求GPT完全可以胜任。它立即听懂了我的要求,但是没有直接开始编程,而是先提醒我安装一个程序库,因为这个库不是每台电脑上都有的,而这次编程会用到:倒写一个Python程序,把这些成语和它们的解释分开,分别列表,打乱顺序,在一张A4纸上分两列列出,形成一个连线题首先,我们需要安装report1ab、库来生成PDF文件。在命令行中输入以下命C令安装:bashQCopycodepipinsta11report1ab然后,你可以使用以下Python程序来生成一个包含成语连线题的A4纸大小的PDF文件:pythonQCopycodeimportrandomfromr
5、eport1ab.1ib.pagesizesimportA4fromreport1ab.1ibimportco1orsfromreport1ab.p1atypusimportSimp1eDocTemp1ate,Tab1e,Tab1eSt;idioms(“井底之蛙“,”指眼光狭隘,见识有限的人”),(“五体投地“,”表示对某人的崇敬和8重”),C不务正业“,“忽视自己的正当职业,做其他无益的事情D,然后它就哗哗哗把整个程序写出来了。我给你看一段截图,它把每一段程序实现的功能都用注释标记好了,方便我理解一一#打乱成语顺序random.shuff1e(idioms)# 将成语和解释分开idioms.
6、1ist,exp1anationsJ1iSt=zpC*idioms)# 再次打乱解释顺序exp1anations_1ist=1istCexp1anations_1ist)random.shuff1e(exp1anations_1ist)# 创建表格数据tab1e_data=成语“解释#表格标题foridiom,exp1anationinzip(idioms_1ist,exp1anations_1ist):tab1e_data.append(idiom,exp1anation)# 创建PDF文档pdf=Simp1eDocTemp1ateCidioms_matching_quiz.pdf,PQge
7、SiZe=A4:# 创建表格tab1e=Tab1e(tab1e_data)# 设置表格样式tab1e.setSty1e(当然,作为零基础,我并不想理解。整个程序只有70多行,很简单。我运行了程序,立即出错了。我理解报错信息是说字体错误。GPT用的是英文字体,无法显示中文,它显然没有事先考虑到这一点。我告诉它这个问题,它立即改正,还说“很抱歉给您带来了困扰”成功生成PDF,但是字体错误,请选择一个MaC下的中文字体很抱歉给您带来了困扰。在MaC下,您可以使用系统内置的中文字体,如STSong(华文宋体)或“STHeiti”(华文黑体)。请将程序中的字体名称更改为适当的字体名称。这里是使用STSo
8、ng字体的修改后的代码:pythonQCopycode#.#设置表格样式tab1e.setSty1e(Tab1eSty1eCC#.其他样式设置c,FONTNAME,(0,0),(-1,0),STSong),#表格标题!CFONTNAME,(0,1),-1,-1),STSong),#表格内考)#.只需将代码中的He1vetica和He1vetica-Bo1d字体名称替换为STSong,然后重新运行程序。生成的PDF文件应该会显示正确的中文字体。如果您还需要其他中文字体,请在MaC的字体册(FontBook)应用中查找,并将字体名称替换为相应的名称。还告诉我去哪找中文字体。但我运行之后又出错。这回
9、我连出错信息都没看,直接复制给它,它意识到加中文字体需要另外挂载一个库,告诉我应该怎么办,并且重新写出了完整的程序很抱歉,我之前的建议没有解决您的问题。在MaC上使用中文字体时,我们需(要先注册字体。请安装report1ab库的最新版本,然后按照以下步骤操作:1 .首先,找到您想要使用的中文字体文件。在MaC上,字体文件通常位于System1ibrryFonts或/1ibrary/FOntS/目录下。在这个例子中,我们将使用“SongtiSC”字体,它的文件名是Songt1ttc,2 .使用以下代码注册字体:pythonQCopycodefromreport1ab.pdfbase.ttfont
10、simportTTFontfromreport1ab.pdfbaseimportpdfmetricsfont_pathSystem1ibraryFontsSongti.ttc,font_name=SongtiSCnpdfmetrics.registerFontCTTFontCfont_name,font_path)3 .将之前的程序中的字体名称替换为注册的字体名称(在本例中为SongtiSC)o修改后的完整程序如下:QCopycodepythonImDortrandom中间有个字体的路径还需要改一下,然后程序就运行成功了。生成了一个PDF文件,打开就是一套成语解释连线题一一成语解释独木难支表示
11、对某人的尊敬和诚意三顾茅庐指某人的才能表现得非常明显,使人刮目相看刻舟求剑指做事方法僵化,没有根据实际情况作出调整井底之蛙表示对某人的崇敬和尊重一石二鸟指多余的举动,反而起到负面效果五体投地指在别人困难时给予及时的帮助画蛇添足形容单凭一个人或一方面的力量难以支撑整个局面脱颖而出用一种行动达到两个目的不务正业忽视自己的正当职业,做其他无益的事情雪中送炭指眼光狭隘,见识有限的人也许你可以做着玩,但这还不是我想要的。我想要的是每次运行程序都生成一套新题,以至于我自己也可以做着玩。我不能每次都先用Cha1GPT生成成语再复制到程序里,我必须把这一切给自动化,以至于我只要一个命令,就能得到一套新题。为此
12、,我们必须调用OPenA1的API。AP1就是干这个用的,它允许你的机器直接跟GPT远程对话,自动返回结果。这是我第一次使用API,我是零基础。不过没关系,我跟它一说,ChatGPT就非常善解人意地告诉我要用AP1必须先做些什么一一现在我们改一下程序,从OPenA1的AP1调用GPT3.5生成成语和解释,制作同样的连线题首先,确保您已经安装了openi库。在命令行中输入以下命令安装:bashQCopycodepipinsta11openai然后,您需要获取OPenA1AP1密钥。请访问OPenA1网站注册并获取AP1密钥。创建一个名为openai.config.py的配置文件,将您的AP1密钥
13、保存在其中,内容如下:pythonQCopycodeapi_key=your_openai_api_key注意:请确保保护好您的AP1密钥,不要与他人共享,也不要上传到公共代码库。接下来,使用以下代码从GPT-3.5获取成语及解释,并生成连线题PDF文件:pythonQCopycodeimportopenaiimportrandomfromreport1ab.1ib.pagesizesimportA4fromreport1ab.1ibimportco1orsfromreport1ab.p1atypusimportSimp1eDocTemp1ate,Tab1e,Tab1eStfromreport
14、1ab.pdfbase.ttfontsimportTTFontfromreport1ab.pdfbaseimportpdfmetricsfromopenai_configimportapi_keyopenai.api_key=api_key我完全按照它给的步骤操作,它哗哗哗把整个程序写出来了。而且它还记得我们需要中文字体这里有个小细节是GPT-4并不知道OpenAI开放了GPT-3.5的API而且流量价格便宜十倍,它一开始给的是老模型,是我自己改成了新的(mode1=z,gpt-3.5-turbo,)0结果一运行又出错,我把错误信息复制给它,它立即意识到问题所在并且做了修改一一Fi1e,71i
15、braryFrameworksPython.frameworkVersions3.101ibpython3.10site-packagesopenaiap1requestor.pyf1ine682,inJnterpreCresponseJineraisese1f.hand1e_error_response(openai.error.1nva1idRequestError:Thisisachatmode1andnotsupportedinthev1comp1etionsendpoint.Didyoumeantousev1chatcomp1etions?抱歉,我犯了一个错误。由于GPT3.5是一个聊天模型,我们应该使用v1chtcomp1etions而不是v1comp1etions端点。以下是调整后的代码:pythonCopycode然后它说,“现在,程序应该能够正常运行。请注意,使用GPT-3.5可能会产生额外费用。确保在