在下方“干货”之后,有音频内容文字版
本期“干货”
我用ChatGPT开发的“老友记随机选集器”(截图)
扫描下方二维码,或点击文章最后的“阅读原文”即可体验
应用地址:(也可以点击文章最后的“阅读原文”)
https://scx-2020.github.io/Friends-Episode-Generator/
本期文稿
(本期文稿通过视频转文字生成,有不少错误,请大家以视频内容为准)
1.大家好,欢迎来到白聊,我是老白。大家可能已经看到了今天的节目和往常不太一样,今天是一期视频节目,因为想和大家聊的东西,今天用音频用播客的形式已经没法展现了,所以就做了一期视频节目。
2.我要跟大家聊的东西是什么?我标题里写的我用chat GPT做了一个老友记随机选集器,它是一个网站应用一个网站页面,今天就想借这个节目跟大家聊聊制作的过程,还有一些体会,在正式开始本期节目之前,像往常一样提醒大家,在微信公众账号的正文里,我会给大家总结一些信息的干货,还有一些图片之类的资料,当然今天最重要的干货就是这个视频,同时我还会把我节目的文稿也放进微信公众账号里,所以大家如果更愿意看文字,可以微信搜索白聊,关注我的微信公众账号,直接看文字版的内容,微信公众账号ID我也写在了节目下方的简介里,大家也可以通过ID搜索关注。
3.首先我们先看一眼我做的老友记随机选集器到底是一个什么东西,现在大家看到的就是随机选机器打开之后的样子,上面首先有一个标题,标题下边是一个按钮,上面写着赶紧给我推荐一集,然后点击之后就出现了推荐的具体的集数,可以看到这推荐的是第七季的第四集。
4.然后下边是这一集的标题,下面是这一集的简介,简介下面有一个评分,评分完了是播出的日期,然后从标题到播放日期的这一段的信息,是来自 Imdb的公开的资料库,最下边还有一个按钮,按一个跳转链接,就是在b站去观看这一集,点击之后就可以跳到b站的相应的页面,如果你有b站的会员就能看到具体的集数了,回到这个页面就可以看到我再点这个按钮就可以出现不同的集数,这些都是随机出现的,整个随机选机器这个页面都是我用拆GPT生成的,听过上期节目的小伙伴肯定都知道,我其实之前已经尝试过去做应用了,但是失败了,现在能看到画面上的我当时给拆的GPT,左边是我给拆的GPT,当时下的命令,右边是它根据我当时的命令生成了这个页面,左边可以看到我当时的命令其实首先很复杂,我是从这个页面设计开始讲的,我们首先网页最顶端要有一张图,然后图上下边会有一个按钮,那按钮下边又有什么选题要求,然后下边有我列出来了很多这种我筛选的条件,最后然后又有一个按钮等等,我给他设置了一个非常复杂的需求,遇到了一个什么样的问题,就是拆GPT它其实在输出答案的长度其实是有限制的,所以当时我遇到的问题就是根据我这个需求生成的页面的代码就拆GDP它是无论如何都没法把所有的代码都显示完全所以最后我生成的页面是右边这一个半成品,它的功能其实是没有实现的,待会我会把我这次跟拆GDP沟通的整个过程都展现给大家,大家就会发现其实我的首先这个功能上大家也刚才看到成品了,功能上已经没有了筛选的条件了,然后我让他生成的过程给他下了命令,思路也不一样了,就不是从设计页面的角度就不会告诉他我要头顶有一张图,然后下边有一个按钮已经不是这么说的了,但是拆GPT还是理解了我的需求,生成了刚才看到的成品,说说我为什么要做这期节目,我觉得第一,我相信很多小伙伴可能都会有这个问题就是说我不懂技术能不能用拆GPT以及拆PPT用起来会不会很难,可能很多小伙伴以前很少接触这一类的AI的应用,尤其其实看到了很多应用,可能大家最早看到的都是像米尼、 stables、diffusion就这种作图软件,然后要跟他其实还是他有点那种机械化思维,需要有很多下命令,然后设置参数的这种过程。
5.但是拆PPT其实包括现在的这些AI作图的软件,实际上大家用自然语言去跟他沟通,就已经可以实现很多目标了。
6.所以第一个问题不懂技术能不能用拆GPT,这个答案是可以的,完全不懂,就用自己的自然语言去跟他沟通就好了。但是这个过程当中其实是有一些技巧,或者说有一些熟能生巧的过程的,拆GDP使用起来会不会很难,其实也因人而异。
7.但是大家听我刚才的表述也能感受到,其实只要你用好自然语言,就是你平常怎么说话,想清楚自己的需求,然后再加上一点点的技巧,或者说跟机器沟通的这种方式掌握跟机器沟通的方式,用起来不会特别难,当然这个也分具体情况,比如说我要去做一个像我这样做一个应用去写代码,像我这种完全没有代码经验,完全不懂技术的人,其实做起来虽然这个应用很简单,但其实做起来遇到的坑非常多,待会大家也可以看到,如果我本身懂技术,我本身就是一个程序员,我相信用拆PPT的话,你一定是会用的更好,会避免很多可能基本的问题能避免的。
8.第二是说为什么要掌握th t以及aaah一系列这种像刚才提到的有major minu stable diffusion,然后还有什么?其实现在还有很多类似拆PPT,比如国内的文信易言,然后再比如说其实当时opi当初有一群人辞职了,也做了一个叫做cloud的类似于chbt的工具也非常好用,但我始终还是相信如果能够应用好学习好拆GPT之类的工具,一定是能够帮助我们大幅提升我们的工作生活相关的这种效率,是对我们的生活有很大帮助的。
9.而且我上期其实也提到过一个观点,其实我认为拆GPT它就像我们当初的个人电脑,或者说像office软件一样,它在未来可能会是这种非常基本的应用软件,大家去学习就好了。
10.正好现在大家如果去打字去写文件,一定是用电脑不会再去用打字机,这其实就是一个自然的升级的迭代的过程。大家首先不用担心说自己会被淘汰,当然怎么不被淘汰,其实就是适应好当前的潮流,把最新的工具学好就行。当然就一个前提就是我刚才说的,因为学这些东西并不难,稍微花点时间,大家去回想一下自己最早学怎么用电脑,怎么去用智能手机,其实都有一个学习的过程,然后学习的过程其实门槛并没有想象中的那么高。
11.说回到我做的老友记随机选集器,我做这个选题器就是做编码开发应用,总共简单来说可以分成4步,第一步就是写网页代码,建页面实现功能。
12.第二步就是写了两个Python的阿冲脚本,分别扒取了mdb上的剧情信息和b站的播放链接,所谓爬虫脚本就是从页面上爬信息的这种程序。
13.第三步我这是失败的一步,其实我曾经也试图去写一个脚本,把刚才第二步扒取的 Mdb上的信息和b站的播放链接,让它自动合并,然后能够输出成一个网页的代码,但是这一步失败了。
14.最后我是手动合并的,其实就是把两个信息输两个已经拍好的信息,然后复制粘贴到一起。
15.然后第四步是部署在了 get up上。刚才大家看到那个页面就是已经部署在get up上面的一个公开的页面,到时候我会把老友记随机选集器的链接写在我的微信公众账号里,也会写在节目简介里,大家也都可以去使用。
16.当然说的只有4部说得很简单似的,其实这就有点像说把大象放到冰箱里,总共分几步三步开冰箱门放进去,然后关冰箱门,其实这个过程中遇到的坑非常多,我总共花了2个晚上,当然时间加起来可能差不多1010多个小时的时间,见了这个东西。
17.还是那句话,如果是可能对一个专业的程序员来说,他不用拆GPT,直接写可能我猜都用不了这么久,如果是有拆GDP帮忙,然后自己本身又懂技术懂代码,可能用的时间会更少。
18.那好,接下来我们就去看看当时我是怎么跟拆GPT共同合作,当然其实主要是拆GPT干的了,怎么合作,做好的应用怎么做的,老友记随机选机器。
19.现在大家看到的我跟拆GDP当时的对话,从第一句开始,不好意思一上来先写了一个错别字,我就跟他说我说我想开发一款应用,你可以帮我吗?拆GPT说了当然可以,你告诉我你想做的应用的类型以及要用的帮助,我会帮你,然后我就说了一下我的最基本的需求,我直接用大白话写的,我是一个老友记影迷,我经常会遇到这样一种问题,就是我想随机选择以及老友记看,所以我现在就想开发这样一个应用,让应用可以帮我挑选。
20.我要做的就是点击一下按钮,然后应用就可以随机显示出一集老友记聚集的集数。Hb说了,这听起来是一个简单而有趣的应用,这夸了我一下。
21.接下来是一些步骤跟建议,帮助您可以开始开发应用程序,他给的建议是什么?首先要确定目标平台是不是是一个移动应用,还是一个web应用,都需要在哪些设备上运行,什么要考虑功能,然后要写代码之前要做什么,其实后边这几个我根本都没有细看,我就直接跟他说,我说请你帮我一步步实现这个过程。
22.他说当然可以,接下来他又列了一堆,说你要怎么做都需要,比如说什么又要确定目标平台和开发环境,又要获取数据,然后又要编写代码,然后还给出了一些代码的示例。
23.但是我也没有认真看他说的这些,我直接因为他第一句说的是要确定您的目标平台和开发环境,所以我就直接问了他,我说你说的第一步关于目标平台和开发环境哪个开发起来更简单一些?
24.我完全不懂编程,但是其实说个背景刚才也提到了,我其实之前已经试过用拆PPT去做应用了,其实当时也想过很多方向,比如说一开始想做一个手机APP,发现其实工程量复杂程度都是我接受不了的,所以其实早就想好了要做一个外部应用,但是在这儿其实有点像在考验拆GBT我让他再帮我做一个选择,到底要怎么做?拆PPT。
25.根据我的问题,我说哪个开发起来更简单一些,尤其是在我不懂编程的这种情况下,他又给了好多建议,其实我也完全没有耐心去把完全去看完。当然他这里边就提到一个就是说你得学学一点编程,这样才能做这个东西。
26.我直接就跟TP说了,我说我不想学习编程,我只想靠你完成编码的部分,这个时候拆GDP直接拒绝了我,他就说很抱歉,我不能替您完成编码工作,我只可以提供一些技术和编程方面的建议和指导,但是要开发一个完整的应用,需要大量工作,你需要自己聘请一个开发人员或者团队,我就跟他说了,我说那不行,你先完全靠你来帮我做,我就先做一个web应用,这个看起来更简单一点,在这儿拆jpt就被我说服了,他就说作为开始我们可以使用 html css和JavaScript来做一个基本的外部应用程序来实现您的需求。
27.然后他就给出了具体的步骤,然后也给出了具体的代码,这个就都写在这儿。
28.分成了几块,其实也是我通过跟拆PPT去学习,在上一次的时候学习到了知识,比如说基本的页面的框架是用 html的语言,下面如果你想形成具体的功能,就要用 JavaScript,然后再有其实还有一些 css代码,它是进一步去实现页面的样式布局等等这些东西。
29.当然这个时候你看它的代码其实还没有生成的非常完整,所以我就跟他说你请你继续我们继续完成 web应用的程序的实现,它完善了代码,它就自己会总结说我都做了哪些工作,然后完善了html的代码,然后又完善了JavaScript代码,然后我发现这块还是没写完,你看他这一句没写完,说请确保您在不同的这句话没说完。
30.然后我说又说一个继续又要调试,又要什么巴拉巴拉。我就问他,我说你刚才生成了两段代码对吧?
31.刚才已经有了这两段了,一个是html,一个是JavaScript。
32.我说这两段代码我应该复制到什么地方,他说你需要保存两个不同的文件,一个是 html的,一个是 JavaScript,后缀是点GS,然后他也给了非常详细的指导,就是说应该粘贴到复制粘贴到任何文本编辑器里边,然后保存为然后 JavaScript也是你要复制粘贴到文本编辑器,然后保存成什么样的文件名,然后还要确保这两个文件首先文件名扩展名要正确,然后还要在同一个文件夹里,然后就可以在浏览器里打开 index,这个页面文件就可以来运行了。
33.当时我按照他给的指导,已经存好了两个不同的文件,然后也在同一个文件夹内发现打开之后不行,我就直接把我的这个问题反馈给他了,我刚才按照你说的步骤已经保存好了两个文件,在浏览器里打开这个index,页面之后点击按钮,但是没有反应,于是他就说,说如果你已经按照这个步骤还编写了两段代码,然后在浏览器打开,然后按钮没反应这一块,先把我之前的问题先重复了一下,明确我这个问题他是不是理解了,然后他就说可能是由于什么样的问题导致的,他就提出了一个解决方案。
34.接下来又沟通,他又提到了各种各样的新加的代码,然后我就问他,我说你给我这个代码我应该加在什么位置,你只告诉我们一段,我并不懂编码,但我不知道该加在什么位置,他又开始说要加到哪儿,然后又写了新的代码的内容,然后这一下我看问题变得更复杂了,我更不知道该怎么做了。
35.所以我就给他明确了一下,细化了一下这个问题,我就说你刚才写了这么一段内容,我应该是加在哪,然后这时候他也说说对不起,我误解了您的问题,然后应该是加在哪儿,然后又给了相应的代码的东西,我在这儿我也还是完全没有兴趣,没有耐心把他说的都看全。
36.所以我就直接跟他说,我说你能不能帮我生成一个完整的代码,我能干的事儿只有复制粘贴,我不能去找这个代码里边哪一行,然后要加在哪儿,然后要写一段新的什么东西。
37.然后他就说当然可以请使用以下完整的html, css JavaScript这跟刚才又不一样了,因为刚才只给了html和JavaScript代码,在这儿又多了一个css的代码,这个不知道它到底是怎么一个思考的过程,反正刚才没给,然后现在给了三段代码,到这儿就是有第一段html,然后有一个css的代码,然后有一个JavaScript这三段代码,然后他说请将上述三个分别保存为三个不同的文件,然后将它们放在同一个目录下,然后这个时候你去打开index, html的页面,就能看到一个随机选机器,在这儿你看我回复他就是说程序已经可以运行了,我应该如何发布它。
38.我们先看一下拆GPT给我生成的第一版,刚通过刚才代码生成的第一版,老友记随机选集器它是一个什么样的功能?现在看到的就是第一版老友记选集器,其实基本功能已经有了,上边首先有一个标题,然后它还有一个功能介绍,点击这个下边按钮就能随机推荐一个老友记的集数,然后我点这个generate它就出现了一个第八季第二十二集,其实到这步为止就已经完成了一个我最基本的需求了,但是我觉得不应该止步于此,所以就又给他提了好多新的需求。
39.我们回到刚才的页面,我们就看到我其实这时候问他是我应该如何发布它,工信已经完成了应用开发,然后你可以怎样,然后给他,这就是我最后使用的方法。
40.当然他还提供了什么独立服务器托管平台等等,我在这问了他一个非常关键的问题,我说以上哪个是免费的,然后拆GPT就挨个告诉我说get up这个是免费的托管平台,你要布置独立服务器,或者你做一个托管平台都需要有一定费用。
41.当然下面我就写你告诉我怎么用 get up去发布它,他也给了我一个非常详细的指导,我其实也是按照他的步骤一步一步去问,比如他第一步去说要建一个新的存储库,然后我就问他,我说怎么去建一个新的存储库,他就告诉我,你看页面上右上角应该是什么点,一个加号,然后怎么样输入名称blah blah,然后给了把存储库建成之后,对吧?
42.然后我问他我说下一步要做什么,然后他又告诉我怎么去把这个代码上传到get up上,这些其实我都没有看,我觉得太复杂了,不应该这么做。
43.我就问他,我说这个操作是不是可以直接在网页端完成,他就说也可以,你不用前面这还要输入代码什么这些,我根本不会,然后他就说这个,然后他就告诉我你可以在 get up的网页上,其实我当时心想我说你怎么不早说,你直接说这个不就完了吗?
44.然后他还是把具体的步骤都告诉给我了,然后中间其实也出现了一些小的问题,然后我就说有的选项,他说的选项我发现没有,然后他又给了一个反馈是说对不起我中间有什么失误对吧?
45.说抱歉,我有一个信息没有更新,这个之后我做了一个域名的设置,这个其实是我多此一举,我就不多说了,反正后来他也给了一些相应的这些指导出现了,其实中间也出现了一些问题,当然有些其实是我本身操作有问题,这个超出了拆PPT给他指导的操作,其实根本就没有必要,然后下边到这儿发现我已经部署完成了,非常感谢,我也表示一下感谢,到这儿其实是我把拆PPT给我的第一个版本,刚才大家看到只能出现选集,只推荐第几季第几集的这一个版本,发做了一个发布,跟我们最早刚才看到的最后的版本就是有剧情具体信息,然后还能跳转到b站去看的那个版本是完全不一样的,但是实际上基本的操作已经完成了,其而且其实到这儿已经是一个可用的版本了。
46.所以我在接下来我就问他,我说能不能让刚才的设计更好看一点,比如说你大家还记得我上一次最早之前做那个版本,我是希望上边有一个配图的,在这儿我就跟他说能不能有一个配图,当然其实最后大家知道结果我这个不知道为什么也没有实现,但是拆GBT它根据我的需求做了很多的丰富。
47.咱们接下来继续看就是拆PPT首先给了一些视觉效果的代码,又重新把这些代码又生成了一下,我说这个代码应该复制到哪,然后他又开始跟我说你应该在哪加一个大地的标签,然后再加一个标签,然后等等,我就觉得太复杂了,我这根本不会还是请你给我一个结合了刚才的优化的代码,一个完整的代码,把完整代码给我,我直接复制粘贴,这个其实是我整个一直的操作都是这样,然后他终于给了一个完整的代码,发现到这个代码没写完,又出现了我们当初最早的这些问题。
48.这个之后我说请继续完成代码,其实在这我就可以插一句,如果我这么说其实是会有问题的,你看下面就会发现他又说请完整代码,他把其实我本身的意思是说你继续刚才这个已经写到这了对吧?你把这个写完了就完了,但是拆GDP它的理解是说又给了一个所有的代码,就是从头从最一开始的第一行开始写先写,然后在这又都写出来,发现他还是写到这儿,写完了,我也意识到了我刚才说的问题,所以在这儿我又把我的问题明确更新了一下。
49.我说 Javascript代码似乎不完整,请把JavaScript代码重新生成一个完整的在这儿拆GPT,它还是理解错了,它直接生成了一个含有JavaScript html的代码,当然我也不知道还是是我说的有问题,还是他理解的一个问题,反正是一个html的代码,所以我在这儿也跟他说请生成单独的JavaScript代码,所以它在这儿终于理解了,我意思以下是JavaScript代码,但是他给的新代码出现了一个新的问题,我使用了新的代码之后,好像程序无法运行了,然后他又说对不起听到你的问题,请你告诉我具体有什么报错的信息,然后我就跟他说我点了这个按钮,因为其实没有信息,就是程序运行不了了,没有任何报错,我只是跟他描述了一下,我点了这个按钮之后,他是没有反应的,他又开始寻找问题,然后给了一大堆的说法,于是我就想干脆利落简单一点处理这个问题。
50.这样你把完整的 htmlcss然后JavaScript这三段代码都在生成一次,我完整更新一次,所以他又从头开始写这个代码,然后我说写的到这儿明显,我说好像不完整,然后他说抱歉不好意思,又出现什么问题,又开始生成,在这就可以明显看到这上面这个代码这一段是JavaScript,然后又是明显没有生成完整,所以我就跟他说,我说请再重新生成一下JavaScript的部分。
51.我在这儿意识到一个什么问题,就是因为你看拆GBT他一直在试图把所有的剧集名,然后一个简介全都写进在碗里,当然我不知道拆GDP他是自己从哪儿就搜集到这些信息,但是如果要写,因为老友记大家知道总共有236集,所以如果他要是把这些信息都写进代码里边,肯定是没法写完整的,以现在拆GPT它显示内容的长度的限制,我上次其实就卡在这儿了,他也一直想把所有信息都写进去,但实际上如果写进去是显示不完整的,所以我在这儿就告诉他,我说你不用去写 title和它引用的内容了,我说不需要显示了,你只显示技术跟级数就可以了。
52.他说好的以下是重新生成的代码,仅显示技术和级数,下边又开始有代码,到这会看见这个代码还是不完整,只写到了第一季的第二十二集,后边还是没写出来。
53.所以我觉得可能还是我的命令有问题,还是他没有明确的get到,或者说我没有明确的说出来,有些信息你是不用放进来的,所以我再一次明确了我的需求,我说请再生成一下在JavaScript的部分,每集的名字和简介,直接引用next上相应的内容就好,不用把每集的名字都写进代码里。
54.在这说一下引用耐飞的信息,为什么我要说是因为其实我已经用拆GPT给的新代码生成了一个新的页面,这个页面长什么样就是这样。
55.大家可以看到跟刚才第一版长成这样的这个版本已经完全不一样了,这说明可能拆GDP已经实现了我刚才的需求,就是我说想要页面更美化更好看一些,所以它加了底色,然后字体然后按钮的位置都不一样了,点击之后它又自动添加出一个什么功能,就是可以在耐飞上去看,点击直接转到耐飞的页面,在这打不开我就不打了,当然功基本功能还是有的,推荐第一季第一集,比如说然后有一个跳转链接,这个是拆GDP自己在我没有提到这个功能的情况下,他自己主动加上的,我觉得这个功能挺好,那就保留。
56.所以我给他接下来的命令我就提到你去引用耐飞上的相应内容就行了,这样也把之前的代码生成不完整的问题,也希望能通过这个命令把它解决掉。
57.于是拆PPT就开始说说好的以下是更新后的代码,然后我每集的名字和简介直接从奶飞上获取,不需要在代码中手动输入,他又给了这些代码。
58.于是在这儿我就想到一个问题,我说在国内其实看耐飞看不了,这样我需要你再重新生成一下代码,在JavaScript的部分,每集的名字和简介直接引用哔哩哔哩.com的相应内容,然后拆PPT说了对不起,我无法为您引用比例的内容,因为您要自行了解它的API接口,然后需要您写相关代码,然后需要找相关的信息再去才能实现这个功能。
59.我说为什么刚才可以引用耐飞上的呢?然后他给了一个不知道反正哪来的答案,我也没有去细究这个到底是什么意思。
60.我就进一步追问他,我说刚才的 JavaScript引用了奈飞上的内容,为什么现在不能引用宾利宾利,然后他又给了一些信息,然后我说然后我也没有耐心再去跟他纠缠这个问题,然后我就跟他说说,那你先引用还是引用耐飞上的内容,你要显示出具体的剧集的名字,然后 HTTP这回好像理解了我的意思,然后就说好的请参考以下生成的这三段代码,这里边直接引用了耐飞的相应内容,并且在JavaScript里边添加了具体的剧集的名字,然后又开始生成代码,生成到最后JavaScript,然后在这部分然后又是没有写完,所以我这个时候脑子转了一下,我还是想让他就只写JavaScript代码,但是我只跟他说,如果说继续的话,它有可能又是开始从html,然后css然后又JavaScript,那这么着就可能永远都进行不下去了。
61.所以我在这儿做了一个什么事儿,我在这儿先把JavaScript这个代码这儿是一个完整的循环,算是复制,然后在下边粘贴,我说JavaScript代码,因为没有写完,我说请按照以下格式把刚才复制的一个完整的部分复制粘贴在这儿,然后请按照这个格式把这个代码写完。
62.接下来拆GPT不知道抽了什么风,然后生成了一个完全不知道是什么的东西,然后我就跟他说对不起,你好像理解错了。
63.我希望你按照下面的格式生成完整的JavaScript代码,不过这个title和summary的部分可以不完整写进代码,而是通过代码的方式直接引用 necklace上面的内容,然后又把这一段一个完整的循环写在这里边,然后拆PPT也认识到自己之前的错误了。
64.但是他说到有一个问题是说耐飞上面的内容是需要 API接口来调取的,那就是需要一个 API接口,需要一个第三方的接口来调取信息,当然需要授权,需要耐飞的许可才可以,否则是违法。然后我说那懂了,你还是直接把信息写进来,就不去做这种调用了。
65.所以如果是这样的话,请再麻烦你生成一下全新的 JavaScript的代码,于是拆GBT又开始从头生成第一集第一集第二集,然后叭叭叭这些下来,写到这儿会看到他只写到了第七集第一集的第七集,我就跟他说这个代码只写到第一集第七集,请把它继续写完。
66.在这儿不知道为什么拆GDP,突然意识到自己有一个消息长度的限制,然后说无法生成完整,说我将分多条为你发送完整的代码,然后你可以逐条复制粘贴,结果他在那写到第一季第九集,然后他自己并没有把多条的信息发出来,我就又通过一个命令提示我说你刚才只写到了第一季的第九集,请你把这个之后的代码写完,然后他没想到他又开始从第一季的第一季开始写,那我就只好再给他下命令,我说请继续把第一季第九集之后的代码写完,结果拆GDP又开始抽风,他又开始从头写,第一季第一集开始写写,然后这时候我又提醒他,我说因为这个消息长度限制,你每次都无法完成,请把代码分段分成多次发给我,因为刚才他自己说会分段发给我,我以为他自己本身有这个功能,但实际上它其实并不小,于是他又从头开始写到了第一季的第十六集,所以我就跟他说,我说你刚才写到了第一季第十六集请你继续分段完成以上,这回不知道他怎么就明白了。
67.开始继续写了,从第一集、第十六集、17集、18,然后又开始往下写,到这儿是写到了第一季的第二十四季,现在我觉得已经摸到一点点规律了,因为刚才我就写的是刚才代码写到了第一季的第十六集,请继续分段。赶紧继续利用命令,刚才代码写到第一季第二十四集,请继续以分段的方式完成以上代码和刚才的命令是一模一样的。
68.所以拆GDP终于又继续从第一季24集开始往后写了,第二季的第十二集到这儿,我就又开始琢磨,好像这么一直弄下去显得有点傻,是不是能有一些更快的更简单的方法能把这个事情做完,比如说它的剧集的名称和简介的部分,这些信息是不是可以自动从哪收集过来,然后自动填充进来,就不用它这么一行一行去写。
69.因为其实我当时也在担心一个问题,如果继续这么下去,会不会到了哪一步,这个程序又写不下去了,我之前的这么一步一步来的收集的信息其实又全都白费了,这些工作就都白做了。
70.所以我就给他下了一个命令,我说请继续刚才的代码先不用写剧集介绍,只把代码最后结尾部分写出来,我当时就想如果先把这些信息完整的代码写进来,其实中间像这些第几季第几集,然后剧集的名称,这个简介其实都是重复的,我把这些信息再单独整理出来,然后填充进来,让拆GDP怎么生成一个程序也好,还是什么样的东西,把这些信息再填进去,那就可以避免是说我这么一步一步来,让他继续从第二季第十二集开始往后生成,中间哪一步卡住了,我工作可能就白做了,倒不如现在先把程序都写完,中间这些信息这些重复的信息,我再去收集填充就好了,所以我给他命令只把代码最后结尾部分写出来,于是拆GDP就开始往下生成,不知道为什么这回跟之前的方式都不一样,没有这个代码的区域了,但是我觉得他写的这一段东西我看懂了,也是代码的东西,所以我就把它复制粘贴到了我的记事本里代码的部分,然后我想到 JavaScript这个是完整的了,前面会不会还有什么问题呢?
71.我就说你根据刚才的我这些需求,你再自己整理一下,把剩下两段代码也都更新一下,然后他就又给更新了两段新的代码,结果更新完了之后,我发现这三个放在一起点击按钮,没有反应,然后拆GPT又开始找问题,给了一个解决方案,就是把命令改成命令,我改了之后发现还是不行,然后他又给了一大串的解决方案要怎么做,然后我就想与其这么改,不如再把 JavaScript的代码重新生成一下,然后为了避免他又把所有的聚集信息又都写一遍,然后这个代码显示不完整,所以我特意还嘱咐一句,我说中间关于剧集的介绍,可以先以一集内容做示意,不用显示所有236集的内容,但是他应该是没听懂,所以生成新的代码又开始第一季第一集,然后名字是什么,然后这个介绍是什么,然后还有链接,但是好在他这一次只生成到了第一季的第七集,所以这个代码还是完整的。
72.不过我转念又一想,因为刚才只是生成了JavaScript,如果只生成这一段代码,会不会又跟 html和css的代码又配不上了,所以我一想干脆让他把这三段代码再都重新生成一下,这样就防止这三段代码对不上中间出问题。
73.这一块我又给他特别嘱咐了一下,我说 JavaScript你可以只用第一季的前三集做示意,然后跳转链接还是要用b站的链接,就等于我把之前的所有的需求又统合到一起,然后有几个重点给他明确的说出来,比如说只展示第一季前三集,然后要用b站链接,省得他把乃飞的链接又放上来了,所以他接下来又开始生成代码,其实这个事做到这儿已经是非常接近我们刚才看到的最终的成品了,接下来反正又生成代码,中间其实又出现了几次错误,包括他的理解错误,或者说也有我的下的命令又不够清晰,出现了错误,总之就一直在反复又在不停的生成代码,重复的生成。
74.其实拆GDP它有一个非常咱们算是很好的地方,你怎么跟他说,不断的追问他,然后让他不断的反攻,他都不会生气,这个是一个非常好脾气的人,这要换成真人的话估计早就疯了。
75.所以在这儿一直不停的生成新的代码,然后中间其实有些地方我就会告诉他哪些代码没有问题,然后哪些代码有问题,你需要怎么去调整,所以他就又开始其实他的理解我感觉也是在一步一步的在进化,他能更清楚的知道我要什么,然后生成新的代码,然后中间可能又出现了各种新的问题,但是这个问题其实已经变得非常小了,然后这个代码还在生成过程中,其实到了这一步的时候,我标出来的这一步页面设计功能已经全部都完成了,只不过我后来转到了mdb上,我去收集他的网页上的聚集的信息的时候,我发现mdb上还有评分和上映日期的信息,所以我又回到拆GBT让他帮我在页面上把这两个信息也加上。
76.然后我就根据现在已经有的代码,就为了让他能更清楚的把只加这两个信息不去加别的,所以我又之前的代码复制了下来,然后写上请在以下代码基础上加上这两个信息,防止他理解错,所以他就开始加上这些新的信息生成了新的代码。到这儿为止,我页面上所有要展现的信息要实现的功能已经全都完成了。
77.再到下边的步骤,其实是已经我收集完 b站的链接,然后mdb上的所有聚集信息,我都收集完整之后,才又进入到这个页面,给他下了新的命令,所以接下来我们看我是怎么去收集mdb和b站链接这些信息的。
78.在这儿我又跟拆GDP开启了一个全新的对话,因为就跟刚才的那个是另外一回事了,所以我在这儿给他下了一个新的需求,我说请帮我设计一个Python的自动执行的脚本,提取页面上因为是老友记在mdb上的信息,然后在这个页面上老友记的信息需要将剧集的名字、评分简介、上映日期都提取出来,并生成一个txt的文档,然后差CP就帮我按我的需求开始写 Python的代码行,写完之后,然后这个过程其实中间又出现了好多新的问题,关于Python重脚本的问题,其中最重要的一个问题就是总是提取不到剧集的名字,其他的都能正常提取,就包括他的简介什么评分这些都没问题。
79.其实也找了半天解决方法,差CP也帮忙igh更新代码等等。
80.其实中间还有些问题是我自己的操作问题,我虽然问了chip应该怎么操作,但其实是我自己把代码写错了,写在了不该写的位置,所以我回到这一步,这个名字提取了,我又给他提了新需求,你帮我把第几季第几集的信息也给弄出来,但是这个其实它又给更新了新的代码,但是没有完成就没有实现我的需求。
81.不过整体来说这一块也是费了半天劲,终于把这个需求给解决了。
82.接下来我们可以看一下拆GDP它写的Python脚本的这个样子这个文件就是拆GPT他写的脚本,我双击运行之后,现在它会弹出来一个运行的界面,当然这个界面大家看不见,运行完了之后就自动出现了一个文本文件,这个点开之后就能看见这个聚集的信息,就都在 txt文件里了,现在是第一季的信息,现在聚集的信息已经有了,还差b站的链接,所以我这又给大家下了一个新的命令,我想在哔哔哩的页面,其实就是老友记的第一季他的聚集的页面,然后提取每一集老友记的链接,请帮我写一个Python的脚本代码,然后他又开始帮忙写。
83.其实在过程中又是出现了很多问题,咱们就不在这细说了。
84.比如说中间出现了问题,链接提取不出来,我也不知道这个代码它具体是一个怎么运作的方式,反正就是其中有一块信息,它跟其他的部分不太一样,就死活提取不出来PSP的文件是空白的,然后不断的去排查相应的问题,然后拆GDP也给了很多不靠谱的答案,都是不靠谱的,是因为根本没有解决实际的问题,都差不多,直到这一步我必须得发挥自己的主观能动性了,我就检查了一下页面元素,这个其实也是我刚才在提取老友记的他的聚集信息的时候跟拆GDP学的一些招数,只不过没展现给大家,反正在这个时候我就自己去检查一下所谓的叫页面元素的这个东西,然后找到了和播放链接相关的部分,然后把代码贴给了他,然后我让拆GDP自己去从中找问题去找,为什么?
85.播放链接提取不出来,然后又通过好几步反复不行还是不行,然后他又给新的还是不行,问题跟之前一样,死活也提取不出播放的链接。
86.再到后边我就又说我们从头来一遍,我现在已知的信息是什么,然后我发现剧集的播放链接在哪一段代码里,请根据这个信息你再从头帮我写一下爬虫的代码,然后他又开始生成,然后发现还是不行,又开始排查问题,他会告诉我说有哪几个问题,怎么有可能是哪些解决方法,我挨不挨个去试试了呢?
87.第三个因为我不知道怎么去用它什么正则表达式什么之类的东西,我说我不会你帮我用第三种方法尝试,然后他又给了我新的代码,运行代码之后给了这种错误的提示,然后他又根据这个错误的提示输入给他之后,然后他会发现问题有可能是什么,你需要怎么去做,然后又有新的错误提示,然后又告诉我新的解决方法是什么,在这个过程中我是完全傻瓜式操作,他说让干什么就干什么,然后还是不行,死活链接就提取不出来,然后这时候他又给了新的提示怎么去做,其中就有一句话,这句话是通过这些信息,你可以什么?
88.确定正确的元素选择器,然后将其更新到Python代码中。然后这句话我根本不知道是什么意思,所以我就把这句话复制下来,问他具体怎么操作,然后他又给了新的提示,然后给了新的代码。
89.一由于他又是给了一句代码,我不知道该插在哪,所以我就告诉他请给我一个完整的代码,并告诉我具体的操作,然后他又开始给了我新的代码,然后我又开始弄,发现还是不行,然后又反复,然后直到真正找到了这个问题,就是所谓的元素选择器的问题。
90.当然了到现在我也没搞明白这个元素选择器是个什么东西,它的概念是什么,但是没关系,直接把问题抛给拆GDP,他就可以帮你去解决。然后反正又反复不行,不行还是不行,再让他检查问题在哪儿,然后生成的文档是空,然后他又给了5步,你需要检查是什么?然后我说12五我都自己做了,然后三四需要更新代码,你帮我再更新一下全新的代码,然后又不行又给问题最后终于在更新了,加了一个不知道是一个什么东西,然后安装了一个这个东西之后,终于可以了,这样必然链接也全都得到了。
91.B站提取链接的运行过程,跟刚才我们看的 mdb的聚集信息的提取的过程其实是一样的,我直接给大家看一下提取的,结果提取之后在一个 txt文档里就能看到所有的链接,当然我这个也是去分g这是第一季的所有的链接,然后后面还有第二季,第三季总共10个文档,所以现在每一集的具体的信息,包括它的名字简介、评分,还有上映的日期,然后再加上现在看到的文档里边b站的链接,要展现出来的信息已经我都获取到了,所以我接下来就开始想,是不是有可能再让拆GPT帮我写一个新的脚本代码,能把我获得的这两部分信息合并到一起,而且是按照网页上它呈现的代码,自动按照格式输出成一个完整的信息的代码,所以我就开启了和拆GDP的第三轮对话,我直接把我的需求说了,我想请你帮我设计一个Python的程序脚本,我要把两个不同的txt文档里的信息合并,并且按照一个固定的格式输出,你可以帮我完成设计这个脚本吗?
92.他就开始帮我写这个代码,但是这一步具体的细节就不给大家展示了,其实这个对话也好长,我把各种的这个代码的格式,然后信息的形式我全都发给他了,然后希望他帮我写代码,但是其实试了好多轮,到最后都没有完成我这个需求,没有把脚本写出来怎么运行都不行,后来我一想还是先完成后完美先把应用给做出来,而且这两个信息其实就是一个复制粘贴的过程,所以最后这一步是没有完成的。
93.所以我把所有的信息复制粘贴到一起,然后变成代码,生成新的页面之后又出现了新的问题,所以我又回到了和拆PPT最一开始的关于建页面的对话里,然后继续向他请教问题。
94.在这一块我就写我这个代码已经都复制好了,然后发现它运行不了,所以我让拆PPT去检查一下这个代码有什么问题,但是拆PPT告诉我这段代码没有语法问题,这个是一个可以运行不应该出问题的这么一个页面一个代码。
95.但是我跟他说,我说这个页面点击按钮没有反应,他就说有可能是什么问题,然后我又给他去解释有什么样的问题,然后他又告诉我有可能是出了什么样的东西什么的问题,然后我就发现这个页面上有一个错误的提示是什么?
96.无法定义 real这个词,这个之后其实出现了n多的一模一样的问题,就是这种无法定义某一个词的问题,其实也是在跟拆GDP的不停的对话当中,我才发现有一个其实快捷的解决方法,因为其实在这儿拆GBT它给我了一些解决方法,其实我在这儿其实是没有看懂的,说实话,只是按照他给的步骤非常机械的去调整,但实际上他的问题在哪?大家可以看到这一句话里边,其实具体的代码的问题我也说不出来,专业的名词我说不出来,但是就是说因为有这个引号,它在引用的时候需要有一个变化,不能出现,它引用的部分是一个展现出来的信息,然后两个引号就变成了一句话,然后这两个引号就变成了一句话,所以中间的 Real world这个东西它变成了一个代码的部分,原本应该summary的部分都在引号里是应该完全展示出来的,但是由于有了这两个引号,它的信息就变成了一个不一样的东西。
97.所以其实最简单的解决方法是说在引号前面加一个反斜杠就能解决了,但是其实我没有意识到,我到后边才想到了是这个解决方法,当然也是通过跟HTTP的这种持续的对话找到解决方案。
98.后边其实我反复有好多去报错的问题,有类似的这种提示,然后拆PPT其实也给了很多这种解释,然后解决方法,但是其实他也是在跟我的不停的这种对话当中,给到了越来越接近一个最简单的解决方案的过程,之后的过程我就不给大家都展现出来了,然后其实因为我自己找到这个问题之后,就也没再问拆GBT了,你看到这儿我其实就写完了,最后我其实又给了他一个新的需求,就是说让这个页面可以适配手机屏幕,但是这个其实一个不重要的功能,而且最后写出来效果也不是很明显,但是因为基本的功能基本的效果已经完全都实现了,所以这个就也无所谓了。
99.最后给大家看一下所有对话结束,应用程序开发完成,我们回到我们最开始看到的这个东西,就可以看去推荐。
100.刚才所有的过程,我刚才说过的,就是第一步把这个页面建好,然后反复去收集mdb上相关的信息,然后去收集每一集的在b站上的链接,然后把信息整合到一起形成代码,然后最后再输入进来,让它能够形成一个完整的带有所有信息的应用。
101.这个就是我开发老友记随机选集器的整个的过程。
102.最后我们再说一些我的感受。
103.首先第一个就是提一个好问题太重要了,很多时候拆GDP不是不知道答案,而是咱们的提问有问题,通过我刚才的这种沟通,大家可能也会有点这种感受,包括其实我最一开始我上一次在上一期节目里在提到我的构想的时候,其实就是当时我的预设有问题,我一开始就要想我要做一个页面,我要先从这个页面它长成什么样,开始做告诉拆GPT这头顶要有个图,然后下边有个按钮,但是实际上思路就是错的。
104.所以这一次换了一个思路之后,其实在页面的生成,大家如果还记得第一个版本它生成已经能用的版本的时候,其实是做得非常快的,只不过是因为后来我又想要增加剧集的名字,要增加剧集的简介,要增加评分等等,要增加这些信息,又要加跳转链接功能,这个需求又复杂了,这个页面才开始出现了后边我遇到的那些问题,所以有的时候我们需要改变一下自己的预设,改变一下自己的思路,这样才能让他更好的理解我们,当然这可能也跟拆GPT它本身的这种理解能力有限有关系。
105.所以这也就要求我们在用拆GBT的时候跟他沟通的时候,我们就要不停的去调整我们问题的角度,可以去追问他,这样才有可能获得一个更好的答案。
106.然后甚至在我们追问也得不到答案的时候,不妨推倒重来,这个就是跟人的合作可能很难做到的一点,就是把我们之前所有的成果完全推翻,让他从头开始做,这个要是人的话可能早就疯了,但是拆GDP是可以的。
107.告诉他如果大家还记得我在跟他沟通的过程中有过好几次,会说我们从头再来,你去综合一下我之前提到的所有信息,请把这些信息综合之后,再去重新输出代码,重新把这个事做一遍,这个其实就是一个无限穷举的这么一个过程。
108.当然了这个就是土翘槽,就是说比如说我第一个也写了,由于我们的很多预设是错的,其实这不仅是我们跟拆GDP之间会沟通有问题,想想我们人跟人之间有时候沟通出现了很多问题,这个是因为我们的提问或者说我们沟通的立场,我们的很多预设其实是不一样的,所以我们人跟人沟通也会出现这样的问题。
109.还有像第三条,很多人日常工作里其实说实话在我看来没什么技巧,其实也是在无限穷举的这么一个过程,我们日常工作里肯定没有那么多的精力去穷举,但是拆GDP他是有这样的好脾气和这样的能力去帮你去重举,去不断去做,当然这其实也是开玩笑的,但是我还是那句话,有了拆GPT,其实确实是可以帮助我们很大程度去提升我们的工作效率,让我们获得一个优势,我觉得还是那句话,我们不用担心自己被替代,也不要去抗拒去学习这些新东西,这就好像当初有了电脑,有了word,有了office,有了PPT这些新的软硬件,让我们去学习去适应它,然后把它当成一个工具,去提升我们的工作效率,提升我们的生活质量,然后这样我们可以留出更多的时间去干我们自己想做的事儿。
110.好,今天的话题就先聊这么多,大家有兴趣可以持续关注,期待未来能和大家多多交流,也期待大家可以把这个节目和账号推荐给更多朋友。感谢各位收听,咱们下期再见。
就这么多
咱下期见
网友评论